Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化
原文:Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化
[函数名称]
简单统计法图像二值化 WriteableBitmap StatisticalThSegment(WriteableBitmap src)
/// <summary>
/// Statistical method of image segmention.
/// </summary>
/// <param name="src">The source image.</param>
/// <returns></returns>
public static WriteableBitmap StatisticalThSegment(WriteableBitmap src) ////Ostu法阈值分割
{
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 eX = 0;
int eY = 0;
int sumEF = 0;
int sumE = 0;
int eMax = 0;
//定义阈值变量
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);
}
}
for (int j = 1; j < h - 1; j++)
{
for (int i = 1; i < w - 1; i++)
{
eX = srcData[i - 1 + j * w] - srcData[i + 1 + j * w];
eY = srcData[i + (j - 1) * w] - srcData[i + (j + 1) * w];
eMax = Math.Max(eX, eY);
sumE += eMax;
sumEF += eMax * srcData[i + j * w];
}
}
Th = (int)(sumEF / sumE);
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;
}
}
Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化的更多相关文章
- Win8 Metro(C#)数字图像处理--2.58双峰法图像二值化
		
原文:Win8 Metro(C#)数字图像处理--2.58双峰法图像二值化  [函数名称] 双峰法图像二值化 WriteableBitmap PeakshistogramThSegment( ...
 - Win8 Metro(C#)数字图像处理--4图像颜色空间描述
		
原文:Win8 Metro(C#)数字图像处理--4图像颜色空间描述  图像颜色空间是图像颜色集合的数学表示,本小节将针对几种常见颜色空间做个简单介绍. /// <summary> / ...
 - Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法
		
原文:Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法  [函数名称] 部分彩色保留函数 WriteableBitmap PartialcolorProcess ...
 - Win8 Metro(C#)数字图像处理--2.47人脸红眼去除算法
		
原文:Win8 Metro(C#)数字图像处理--2.47人脸红眼去除算法  [函数名称] 红眼去除 RedeyeRemoveProcess(WriteableBitmap src) ...
 - Win8 Metro(C#)数字图像处理--2.75灰度图像的形态学算法
		
原文:Win8 Metro(C#)数字图像处理--2.75灰度图像的形态学算法 前面章节中介绍了二值图像的形态学算法,这里讲一下灰度图的形态学算法,主要是公式,代码略. 1,膨胀算法 2,腐蚀算法 3 ...
 - Win8 Metro(C#)数字图像处理--3.2图像方差计算
		
原文:Win8 Metro(C#)数字图像处理--3.2图像方差计算 /// <summary> /// /// </summary>Variance computing. / ...
 - Win8 Metro(C#)数字图像处理--3.3图像直方图计算
		
原文:Win8 Metro(C#)数字图像处理--3.3图像直方图计算 /// <summary> /// Get the array of histrgram. /// </sum ...
 - Win8 Metro(C#)数字图像处理--3.4图像信息熵计算
		
原文:Win8 Metro(C#)数字图像处理--3.4图像信息熵计算 [函数代码] /// <summary> /// Entropy of one image. /// </su ...
 - Win8 Metro(C#)数字图像处理--3.5图像形心计算
		
原文:Win8 Metro(C#)数字图像处理--3.5图像形心计算 /// <summary> /// Get the center of the object in an image. ...
 
随机推荐
- [Grid Layout] Use auto-fill and auto-fit if the number of repeated grid tracks is not to be def
			
What about the situation in which we aren’t specifying the number of columns or rows to be repeated? ...
 - 微信公众号开发之怎样将本机IP映射成外网域名
			
近期一个项目须要用到微信公众号的网页授权登录,在研究这个公众号的时候遇到各种困难,现将自己的一些心得总结一下. 我想进行微信公众号开发遇到的第一个困难就是微信公众号必须输入一个外网能够訪问的域名,在网 ...
 - bootsrap+jquery+组件项目引入文件的常见报错
			
做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌张,终结起来也就几种类型的错误,在开发中每次遇到错误都善于总结,下次在看到就会胸有成竹知道是什么情况了,以下是在开发过程中总结的一些错误以及错 ...
 - Linux中mv重命名作用及打包war压缩文件及分配权限
			
1.Linux中的重命名文件使用mv命令 touch a.txt 新建一个文件 mv a.txt b.txt 重命名文件为b.txt mkdir abc 新建一个目录 mv abc abd 重命名文件 ...
 - 回顾Oracle几个用到的基本语句
			
create table t_name(id number,name varchar2(10)); drop table t_name; select * from table_name where ...
 - jQuery Media Plugin 现在插上实线的视频播放服务
			
jQuery Media 一个简短的引论 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWGluZ0tvbmcyMnN0YXI=/font/5a6L5L2T ...
 - 【30.00%】【vijos 1909】寻找道路
			
描述 在有向图 G 中,每条边的长度均为 1,现给定起点和终点,请你在图中找一条从起点到 终点的路径,该路径满足以下条件: 路径上的所有点的出边所指向的点都直接或间接与终点连通. 在满足条件 1 的情 ...
 - TensorFlow 实战(一)—— 交叉熵(cross entropy)的定义
			
对多分类问题(multi-class),通常使用 cross-entropy 作为 loss function.cross entropy 最早是信息论(information theory)中的概念 ...
 - Linux限制资源使用的方法
			
很多人说virmach不好,老是suspend,我从未被suspend过,建站也很稳定,所以我就来说说怎么操作(其实就是遵循他们的TOS,如果你是abusive user,滚粗): 先读读TOS,核心 ...
 - 【37.50%】【codeforces 732D】Exams
			
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...