Opencv+Python笔记(五)图像阈值化处理

图像阈值化可以理解为一个简单的图像分割操作,阈值又称为临界值,它的目的是确定出一个范围,然后这个范围内的像素点使用同一种方法处理,而阈值之外的部分则使用另一种处理方法或保持原样。
阈值处理有2种方式,一种是固定阈值方式,又包括多种处理模式,另一种是非固定阈值,由程序根据算法以及给出的最大阈值计算图像合适的阈值,再用这个阈值进行二值化处理

1.固定阈值方式(threshold)

Opencv API:

ret, dst = cv2.threshold(src, thresh, maxval, type)

输入:1.src:输入的图像(只能为单通道图像,例如灰度图);2.thresh:阈值。通过阈值水平的像素被接受,不通过的则不接受,阈值判断时,是以小于等于阈值和大于阈值作为分界条件;3.maxVal:maxval是阈值化后的最大值;4.type:二值化操作的类型,包含以下5种类型
函数返回值:ret表示实际使用的阈值即threshold,dst表示输出图像

在这里插入图片描述

类型说明
cv2.THRESH_BINARY超过阈值部分取maxval(最大值),否则取0
cv2.THRESH_BINARY_INV不超过阈值的像素设置为maxVal,超过的设置为0 上一种的反转
cv2.THRESH_TRUNC大于阈值部分设为阈值,否则不变 trunc截断 即用阈值来截断
cv2.THRESH_TOZERO小于或等于阀值的设为0,其余部分不变
cv2.THRESH_TOZERO_INVTHRESH_TOZERO的反转

2.自适应阈值方式(adaptiveThreshold)

根据图像上的每一个小区域,计算与其对应的阈值,从而使得同一幅图像上的不同区域采用不同的阈值,在亮度不同的情况下得到更好的结果。该函数用来对灰度图应用自适应阈值,取决于传递给它的自适应方法。需要传递几个参数,包括最大阈值,块大小(可以是3、5、7等)以及一个将从计算得到的块均值中减去的常量值,该值可以为0。

Opencv API:

dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)

src: 需要处理的源图像。
maxValue: 当像素值超过阈值时,所赋的最大值。
adaptiveMethod: 自适应阈值算法的类型,目前支持ADAPTIVE_THRESH_MEAN_C 和 ADAPTIVE_THRESH_GAUSSIAN_C两种类型。
thresholdType: 阈值的类型,目前支持THRESH_BINARY 和 THRESH_BINARY_INV两种类型。
blockSize: 自适应阈值算法使用的块大小,必须是一个奇数。
C: 从均值或加权均值中减去的常量,用于调节阈值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值