cv2阈值处理

一、全局阈值:
为整个图片指定一个阈值,函数为cv2.threshold(src, thresh, maxval, type, dst=None)
src: 原图(灰图)
thresh: 阈值
maxval: 给#THRESH_BINARY and #THRESH_BINARY_INV模式使用的最大值
type:二值化的类型
  • cv2.THRESH_BINARY           超过阈值部分取maxval(最大值),否则取0
  • cv2.THRESH_BINARY_INV    THRESH_BINARY的反转
  • cv2.THRESH_TRUNC            大于阈值部分设为阈值,否则不变
  • cv2.THRESH_TOZERO          大于阈值部分不改变,否则设为0
  • cv2.THRESH_TOZERO_INV  THRESH_TOZERO的反转

二、自适应阈值:
前面介绍的是全局性的阈值,整个图像的像素都以此阈值为基准。而自适应阈值可以看成是一种局部性的阈值,指定一个区域大小,此区域内的阈值为区域里面像素的平均值(或加权和)减去第六个参数C
adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C, dst=None):
src:原图(灰图)
maxValue:像素值上限
adaptiveMethod:自适应方法
  •  cv2.ADAPTIVE_THRESH_MEAN_C :领域内均值 
  •  cv2.ADAPTIVE_THRESH_GAUSSIAN_C :领域内像素点加权和,权重为一个高斯窗口
thresholdType:只有两个 cv2.THRESH_BINARY 和cv2.THRESH_BINARY_INV
blockSize: 规定正方形领域的大小
C:常熟C,阈值等于指定正方形领域的均值或加权和减去这个常熟
这种方法效果更好,相当于各区域动态自适应调整自己的阈值,而不是整个图像用同一个阈值 

猜你喜欢

转载自blog.csdn.net/u011070767/article/details/80639556