数字图像处理 使用C#进行图像处理三
2023-09-14 09:01:35 时间
八、灰度图像二值化
1、三角法
/*
1. 图像转灰度
2. 计算图像灰度直方图
3. 寻找直方图中两侧边界
4. 寻找直方图最大值
5. 检测是否最大波峰在亮的一侧,否则翻转
6. 计算阈值得到阈值T,如果翻转则255-T
//三角法图像二值化
*/
public void Triangle()
{
//图像数据,需要是灰度图,否则需要自己转灰度
System.Drawing.Bitmap bmpHist = new Bitmap(@"C:\\Users\\xiao\\Desktop\\123.bmp");
//灰度等级
int[] countPixel = new int[256];
//记录最大的灰度级个数
int maxPixel;
//是否翻转
bool isflipped = false;
//锁定8位灰度位图
Rectangle rect = new Rectangle(0, 0, bmpHist.Width, bmpHist.Height);
System.Drawing.Imaging.BitmapData bmpData = bmpHist.LockBits(rect,
System.Drawing.Imaging.ImageLockMode.ReadWrite, bmpHist.PixelFormat);
IntPtr ptr = bmpData.Scan0;
int bytes = bmpHist.Width * bmpHist.Height;
byte[] grayValues = new byte[bytes];
System.Runtime.InteropServices.Marshal.Copy(ptr, grayValues, 0, bytes);//灰度值数据存入grayValues中
byte temp
相关文章
- C# IsBackground作用
- c#数组赋初值_C#数组初始化
- C#之ArcGIS二次开发
- c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- c# 多线程并发-金三银四面试:C#.NET面试题高级篇2-多线程
- 在 C# 中调用 MySQL 存储过程详解数据库
- c#循环中产生伪随机数
- C#一个WCF简单实例
- c#深拷贝与浅拷贝的区别分析及实例
- C#泛型与非泛型性能比较的实例
- c#中的interfaceabstract与virtual介绍
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- C#Ini文件操作实例
- c#生成高清缩略图的二个示例分享
- C#的WEBBROWSER与JS交互小结
- C#中的委托介绍
- C#实现绘制面形图表的方法详解