自适应阈值处理与Otsu处理和阈值 Otsu 处理得对比和区别

自适应阈值处理与Otsu处理—OpenCV-Python

传统数字图像处理–图像分割–阈值处理类别下自适应阈值处理与Otsu处理的概念和比较

自适应阈值处理

对于色彩均衡的图像来说,直接使用一个阈值就能完成对图像的阈值化处理。但是,有时图像的色彩是不均衡的,如果只用一个阈值,就无法得到清晰有效的阈值分割结果图像。

所以这一节我们介绍自适应阈值处理**(阈值是变化的)。在阈值处理时,自适应阈值处理方式通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用阈值对当前像素进行处理。与普通阈值处理方法相比,自适应阈值处理能够更好地处理明暗差异较大**的图像。

函数原型:

dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethold, thresholdType, blickSize, C)

参数:

  • dst:自适应阈值处理后的结果图像
  • src:原始图像
  • maxValue:最大值
  • adaptiveMethold:自适应方法
  • thresholdType:阈值处理方式,该值只能是cv.THRESH_BINARY,或者cv.THRESH_BINARY_INV
  • blockSize:计算像素阈值时,在像素周围的取的临近区域大小,通常取值为3, 5, 7
  • C:常量,自适应阈值等于每个像素由参数blocksize所指定邻域的加权平均值减去常量C

自适应阈值处理方法 adaptiveMethold 有两种

cv2.ADAPTIVE_THRESH_MEAN_C:邻域所有像素点的权重是一致的
cv2.ADAPTIVE_THRESH_GAUSSIAN_C:与邻域各个像素点到中心点的距离有关,通过高斯方程得到各个像素点的权重值

dst = cv2.adaptiveThreshold(src_img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5, 3)

阈值 Otsu 处理

OTSU可以帮我们遍历所有可能的阈值,从而找到最佳的阈值

t, result_img = cv2.threshold(src_image, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)

  • 在普通阈值操作函数cv2.threshold()中,对参数type的类型多传递一个参数cv2.THRESH_OTSU,即可实现Otsu方式的阈值分割
  • 必须要把阈值设定为0
  • 返回的t是Otsu方法计算得到并使用的最优阈值, 返回值 result_img 是阈值处理后的结果图像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值