博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win8Metro(C#)数字图像处理--2.34直方图规定化
阅读量:6963 次
发布时间:2019-06-27

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

原文:



[函数名称]

WriteableBitmap HistogramSpecificateProcess(WriteableBitmap src, WriteableBitmap dst)

[算法说明]

[函数代码]        ///         /// Histogram specification process.        ///         /// The source image.        /// The image to get histogram to use.        /// 
public static WriteableBitmap HistogramSpecificateProcess(WriteableBitmap src, WriteableBitmap dst)38图像直方图规定化 { if (src != null) { int w = src.PixelWidth; int h = src.PixelHeight; byte[]histMap=HistogramMap(dst); WriteableBitmap histImage = new WriteableBitmap(w, h); byte[] temp = src.PixelBuffer.ToArray(); for (int i = 0; i < temp.Length; i += 4) { temp[i] = (byte)(255 * histMap[temp[i]]); temp[i + 1] = (byte)(255 * histMap[temp[i+1]]); temp[i + 2] = (byte)(255 * histMap[temp[i+2]]); } Stream sTemp = histImage.PixelBuffer.AsStream(); sTemp.Seek(0, SeekOrigin.Begin); sTemp.Write(temp, 0, w * 4 * h); return histImage; } else { return null; } } public static byte[] HistogramMap(WriteableBitmap src) { if (src != null) { byte[] temp = src.PixelBuffer.ToArray(); byte gray; int[] tempArray = new int[256]; int[] countPixel = new int[256]; byte[] pixelMap = new byte[256]; for (int i = 0; i < temp.Length; i += 4) { gray = (byte)(temp[i] * 0.114 + temp[i + 1] * 0.587 + temp[i + 2] * 0.299); countPixel[gray]++; } for (int i = 0; i < 256; i++) { if (i != 0) { tempArray[i] = tempArray[i - 1] + countPixel[i]; } else { tempArray[0] = countPixel[0]; } pixelMap[i] = (byte)(255 * tempArray[i] * 4 / temp.Length + 0.5); } return pixelMap; } else return null; }[图像效果]
你可能感兴趣的文章
JDK工具(一)–Java编译器javac
查看>>
Cassandra数据模型设计
查看>>
JDBC Java SQL Server 连接
查看>>
Maven部署Struts2环境详解
查看>>
日常记录-js篇
查看>>
使用 Java Native Interface 的最佳实践
查看>>
关于 Perl 与 Python 的起源和特点
查看>>
taobao npm registry
查看>>
jenkins------结合maven将svn项目自动部署到tomcat下
查看>>
我的友情链接
查看>>
MySQL二进制包使用mysql_upgrade版本更新升级MySQL 5.7
查看>>
css3文本溢出显示控制
查看>>
MySQL 可优化的一些参数详解
查看>>
JAVA中的内存映射文件
查看>>
磁盘管理1(磁盘碎片、磁盘格式转换)
查看>>
H5本地存储一
查看>>
LinuxMBR修复,引导修复。
查看>>
2016年上半年系统集成中项3月28日作业
查看>>
Redhat6.5(红帽6.5)配置yum本地源
查看>>
Unity3D动画存储插件
查看>>