博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win8 Metro(C#)数字图像处理--2.58双峰法图像二值化
阅读量:6009 次
发布时间:2019-06-20

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

原文:



[函数名称]

  双峰法图像二值化 WriteableBitmap  PeakshistogramThSegment(WriteableBitmap src)

///         /// Peaks histogram method of image segmention.        ///         /// The source image.        /// 
public static WriteableBitmap PeakshistogramThSegment(WriteableBitmap src) 双峰法阈值分割 { if (src != null) { int w = src.PixelWidth; int h = src.PixelHeight; WriteableBitmap dstImage = new WriteableBitmap(w, h); byte[] temp = src.PixelBuffer.ToArray(); byte[] tempMask = (byte[])temp.Clone(); //定义灰度图像信息存储变量 int[] srcData = new int[w * h]; //定义直方图存取变量 int[] histValues = new int[256]; //定义双峰位置变量h1,h2,对应的灰度变量t1,t2,谷底灰度变量t int h1 = 0, h2 = 0, t1 = 0, t2 = 0, t = 255; //定义阈值变量 int Th = 0; for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { srcData[i + j * w] = (int)((double)tempMask[i * 4 + j * w * 4] * 0.114 + (double)tempMask[i * 4 + 1 + j * w * 4] * 0.587 + (double)tempMask[i * 4 + 2 + j * w * 4] * 0.299); histValues[srcData[i + j * w]]++; } } for (int i = 0; i < 256; i++) { if (i < 129) { if (histValues[i] > t1) { h1 = i; t1 = histValues[i]; } } else { if (histValues[i] > t2) { h2 = i; t2 = histValues[i]; } } } for (int n = h1; n <= h2; n++) { if (histValues[n] < t) { Th = n; t = histValues[n]; } } for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { temp[i * 4 + j * w * 4] = temp[i * 4 + 1 + j * w * 4] = temp[i * 4 + 2 + j * w * 4] = (byte)(srcData[i + j * w] < Th ? 0 : 255); } } Stream sTemp = dstImage.PixelBuffer.AsStream(); sTemp.Seek(0, SeekOrigin.Begin); sTemp.Write(temp, 0, w * 4 * h); return dstImage; } else { return null; } }
你可能感兴趣的文章
Android内存优化全解析
查看>>
从EventBus学习扩展Weex事件机制
查看>>
VSCode前端开发神器工具
查看>>
【PPT已更新】360互联网技术训练营第九期——360容器技术解密与实践
查看>>
Python轻量级数据分析库DaPy
查看>>
揭开react hook神秘面纱
查看>>
观察者模式与它在源码中的运用
查看>>
【Geek招募】
查看>>
JS浅谈Number数值转换
查看>>
让信息流广告成为ROI狙击手的终极全策略!
查看>>
vue感悟:解决编译过后在本地直接打开,找不到css或者背景图片的问题
查看>>
flex-basis与width在布局中的作用
查看>>
前端面试手记
查看>>
走进前端的过程--方向式学习
查看>>
ES6学习笔记一(let和const)
查看>>
iOS多线程的那些事儿
查看>>
老马的春天:SDWebImage源码详细解读系列
查看>>
【分享实录】BANCOR算法详解及代码实现
查看>>
vue基础(1)--instance对象
查看>>
月薪8k 和 月薪38K的程序员差距在哪里?
查看>>