在上一个博文中,高斯滤波后对灰度值用canny检测边缘。调整canny参数,检测边缘。下面换一种方式,即先二值化后,再findContours检测检测轮廓。
图像二值化
cv2.threshold(), cv2.adaptiveThreshold(), Otsu’s thresholding.
简单阈值划分
cv2.threshold(InputArray src, int threshold, int maxValue, int thresholdType)
函数返回两个量,retVal和阈值转换后的图像thresholded image。其中,第一个值retVal是在使用Ostu时,返回Ostu最优阈值;否则,则返回自己设置的阈值,例如127。
- scr 输入图像
- thresholf 分割阈值
- maxValue 超过阈值后设定为最大值
- thresholdType 阈值类型,一共有5种类型表示二值化的图片处理方式。cv2.THRESH_BINARY和cv2.THRESH_BINARY_INV是最常见的两种,前者表示大于阈值的取最大值(255),小于阈值的取最小值0;后者,小于阈值的取最大值(255),大于阈值的取最小值0。
自适应阈值划分
cv2.adaptiveThreshold((InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
- src:输入图
- dst:输出图,大小与原图一致
- maxValue:最大值,同上
- adaptiveMethod:
自适应方法,分为局部均值法CV_ADAPTIVE_THRESH_MEAN_C和高斯均值法CV_ADA

本文介绍了图像识别中用于数字识别的二值化技术,包括简单阈值划分、自适应阈值划分和Otsu's Binarization。通过对比不同方法在处理光照不均等问题上的效果,探讨了Otsu's Binarization在选择最佳阈值以最大化类间方差方面的作用。
最低0.47元/天 解锁文章
9389

被折叠的 条评论
为什么被折叠?



