博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win8 Metro(C#)数字图像处理--2.43图像马赛克效果算法
阅读量:7079 次
发布时间:2019-06-28

本文共 2663 字,大约阅读时间需要 8 分钟。

原文:



[函数名称]

  图像马赛克效果        MosaicProcess(WriteableBitmap src, int v)

[算法说明]

  图像马赛克效果其实就是将图像分成大小一致的图像块,每一个图像块都是一个正方形,并且在这个正方形中所有像素值都相等。我们可以将这个正方形看作是一个模板窗口,模板中对应的所有图像像素值都等于该模板的左上角第一个像素的像素值,这样的效果就是马赛克效果,而正方形模板的大小则决定了马赛克块的大小,即图像马赛克化的程度。

[函数代码]

       ///         /// Mosaic process.        ///         /// The source image.        /// The threshould to control the result of mosaic process.        /// 
public static WriteableBitmap MosaicProcess(WriteableBitmap src, int v)图像马赛克效果 { if (src != null) { int w = src.PixelWidth; int h = src.PixelHeight; WriteableBitmap srcImage = new WriteableBitmap(w, h); byte[] temp = src.PixelBuffer.ToArray(); byte[] tempMask = (byte[])temp.Clone(); int dR = 0; int dG = 0; int dB = 0; int dstX = 0; int dstY=0; dR = tempMask[2]; dG = tempMask[1]; dB = tempMask[0]; for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { dstX = i; dstY = j; if (j % v == 0) { if (i % v == 0) { dB = tempMask[dstX * 4 + dstY * w * 4]; dG = tempMask[dstX * 4 + 1 + dstY * w * 4]; dR = tempMask[dstX * 4 + 2 + dstY * w * 4]; } else { temp[dstX * 4 + dstY * w * 4] = (byte)dB; temp[dstX * 4 + 1 + dstY * w * 4] = (byte)dG; temp[dstX * 4 + 2 + dstY * w * 4] = (byte)dR; } } else { temp[dstX * 4 + dstY * w * 4] = temp[dstX * 4 + (dstY - 1) * w * 4]; temp[dstX * 4 + 1 + dstY * w * 4] = temp[dstX * 4 + 1 + (dstY - 1) * w * 4]; temp[dstX * 4 + 2 + dstY * w * 4] = temp[dstX * 4 + 2 + (dstY - 1) * w * 4]; } } } Stream sTemp = srcImage.PixelBuffer.AsStream(); sTemp.Seek(0, SeekOrigin.Begin); sTemp.Write(temp, 0, w * 4 * h); return srcImage; } else { return null; } }

[图像效果]

你可能感兴趣的文章
烂在肚子里的救命知识!看看吧!
查看>>
week 3
查看>>
导出的Java程序无法连接数据库的问题解决方案
查看>>
Windows Linux系统U盘制作工具
查看>>
oracle体系结构之 DB高速缓存池
查看>>
我的友情链接
查看>>
华为Agile Controller-Campus web界面admin管理员密码不对无法登陆
查看>>
遇到多个构造器参数时要考虑用构建器
查看>>
windos 8 虚拟光驱/硬盘技术
查看>>
WLC和汇聚交换机的配置
查看>>
使用python-gitlab的API V4来批量创建projects
查看>>
CLR.Via第三版第二章 生成、打包、部署和管理i应用程序及类型(
查看>>
Play Framework 2.3.x开始
查看>>
rz sz上传下载工具使用指南
查看>>
Spring与Ehcache简单自定义监听器配置
查看>>
关于ha高可用性的安装,ClusterIP和tomcat的配置
查看>>
我的系统我做主-----深度裁剪红帽5.8系统过程演示(只有5M哦)
查看>>
nosql的使用
查看>>
Lync 小技巧-48-Lync 语音邮箱-英文提示-自动助理-中文提示
查看>>
windows系统管理(一)vmware的安装及vmware下windows server 2008系统安装
查看>>