public byte[,] Gray(Bitmap b, int Thrshold) //二值化函数
{
byte[,] ImageData = new byte[10000, 10000];
BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
int stride = bmData.Stride;
System.IntPtr Scan0 = bmData.Scan0;
unsafe
{
byte* p = (byte*)(void*)Scan0;
int nOffset = stride - b.Width * 3;
byte red, green, blue;
int nWidth = b.Width;
int nHeight = b.Height;
for (int y = 0; y < nHeight; ++y) //获取数据
{
for (int x = 0; x < nWidth; ++x)
{
blue = p[0];
green = p[1];
red = p[2];
if (p[0] < Thrshold)
{
p[0] = p[1] = p[2] = (byte)(0);
ImageData[x, y] = 1;
}
else
{
p[0] = p[1] = p[2] = (byte)(255);
ImageData[x, y] = 0;
}
p += 3;
}
p += nOffset;
}
}
b.UnlockBits(bmData);
return ImageData;
}
谁能帮忙解释下C#二值化处理图片的代码?thanks!
这代码写的很低效,不过还算清晰。灰度处理那个很简单吧,基本上C#都自动帮你做了,你那代码就是手动遍历其中每个像素然后读取其灰度值(这里代码偷懒直接让C#帮忙计算了)然后重新把像素设置为RGB都是灰度值的颜色而已。二值化的其实也不复杂,也是逐个遍历像素,判断某个像素的亮度是否大于给定阈值,如果...
C# 图像处理技术(二)滤波去噪
1. 中值滤波 中值滤波是一种非线性滤波技术,通过取窗口内像素值的中值来去除图像中的局部噪声,尤其适用于去除椒盐噪声。2. 高斯滤波 高斯滤波通过使用高斯分布的核函数来平滑图像,可以有效去除图像中的高斯噪声,同时保持边缘信息。3. 均值滤波 均值滤波通过计算窗口内像素值的平均值来平滑图像,适用于...
一幅二值化图像中怎么找到气泡的最大轮廓并且显示出来还有最大轮廓的...
可以考虑使用AForge.NET框架
二维码的识别原理是什么?能造假(仿造)吗?
二维条码\/二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念。使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理...
c#图像灰度处理及二值化处理代码解释
这代码写的很低效,不过还算清晰。灰度处理那个很简单吧,基本上C#都自动帮你做了,你那代码就是手动遍历其中每个像素然后读取其灰度值(这里代码偷懒直接让C#帮忙计算了)然后重新把像素设置为RGB都是灰度值的颜色而已。二值化的其实也不复杂,也是逐个遍历像素,判断某个像素的亮度是否大于给定阈值,如果...
c#图像灰度处理及二值化处理代码解释
这代码写的很低效,不过还算清晰。灰度处理那个很简单吧,基本上C#都自动帮你做了,你那代码就是手动遍历其中每个像素然后读取其灰度值(这里代码偷懒直接让C#帮忙计算了)然后重新把像素设置为RGB都是灰度值的颜色而已。二值化的其实也不复杂,也是逐个遍历像素,判断某个像素的亮度是否大于给定阈值,如果...