ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#-OpenCvSharp二值化阈值

2022-08-17 11:00:17  阅读:168  来源: 互联网

标签:OpenCvSharp 阈值 C# Cv2 panda ThresholdTypes Otsu 二值化


本文链接:https://blog.csdn.net/qq_40344307/article/details/90741857

Mat panda = Cv2.ImRead("panda.png",ImreadModes.Grayscale);//必须为灰度图单通道
//1.简单阈值分割
//ThresholdTypes.BINARY	二进制阈值化,非黑即白
//ThresholdTypes.BINARY_INV	反二进制阈值化,非白即黑
//ThresholdTypes.TRUNC	截断阈值化 ,大于阈值设为阈值
//ThresholdTypes.TOZERO	阈值化为0 ,小于阈值设为0
//ThresholdTypes.INV	反阈值化为0 ,大于阈值设为0
Cv2.Threshold(panda,panda,127,255,ThresholdTypes.Binary);
//2.自适应阈值分割
//简单阈值算法使用全局阈值,但一副图像的不同位置光照情况可能不同,全局阈值会失去很多信息。这种情况下采用自适应阈值。
//自适应会根据图片一小块区域的值来计算对应区域的阈值。
//Block Size---图片中分块的大小。
//C---阈值计算方法中的常数项
//AdaptiveThresholdTypes.MEAN_C	通过平均的方法取得平均值
//AdaptiveThresholdTypes.GAUSSIAN_C	通过高斯取得高斯值
Cv2.AdaptiveThreshold(panda,panda,255,AdaptiveThresholdTypes.MeanC,ThresholdTypes.Binary,11,2);
//3. Otsu’s 二值化(大津阈值分割法)
//Otsu’s 二值化是对一副双峰图像自动根据其直方图计算出一个阈值。(对于非双峰图像,这种方法得到的结果可能会不理想)。
//这里用到到的函数还是 cv2.threshold(): cv2.THRESH_OTSU。
//这时要把阈值设为 0。然后算法会找到最优阈值,这个最优阈值就是返回值 retVal。如果不使用 Otsu 二值化,返回的retVal 值与设定的阈值相等。
Cv2.Threshold(panda,panda, 0, 255, ThresholdTypes.Otsu);

 

标签:OpenCvSharp,阈值,C#,Cv2,panda,ThresholdTypes,Otsu,二值化
来源: https://www.cnblogs.com/KenZpp/p/16594302.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有