openCv-图像阈值(图片黑白化)

本文介绍了在Python中使用OpenCV库进行图像阈值处理的方法,详细解释了cv2.threshold函数的参数及四种阈值类型(BINARY,BINARY_INV,TRUNC,TOZERO,TOZERO_INV),并展示了实际应用示例。
摘要由CSDN通过智能技术生成

图像阈值

就是将图像通道中的数据对比图像阈值,从而化为0,1二值化的操作

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

参数说明, src表示输入的图片, thresh表示阈值, maxval表示最大值, type表示阈值的类型

2. type的类型

1. cv2.THRESH_BINARY   表示阈值的二值化操作,大于阈值使用maxval表示,小于阈值使用0表示
2. cv2.THRESH_BINARY_INV  表示阈值的二值化翻转操作,大于阈值的使用0表示,小于阈值的使用最大值表示
3. cv2.THRESH_TRUNC    表示进行截断操作,大于阈值的使用阈值表示,小于阈值的不变
4. cv2.THRESH_TOZERO   表示进行化零操作,大于阈值的不变,小于阈值的使用0表示
5. cv2.THRESH_TOZERO_INV  表示进行化零操作的翻转,大于阈值的使用0表示,小于阈值的不变
import cv2
import matplotlib.pyplot as plt

img = cv2.imread('./xing.jpg')

# 1.进行阈值二值化操作,大于阈值127的,使用255表示, 小于阈值127的,使用0表示        thresh-binary
ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
# 2. 进行阈值二值化翻转操作, 大于阈值127的,使用0表示,小于阈值127的,使用255表示   thresh-binary-inv
ret, thresh2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)
# 3. 进行截断阈值表示,大于阈值127的使用127表示,小于阈值127的不变                  thresh-thunc
ret, thresh3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC)
# 4. 对阈值进行0值化表示,大于127的不变,小于127阈值的,用0表示                     thresh-tozero
ret, thresh4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO)                   
# 5. 对阈值进行0值化反向操作, 大于127的用0表示,小于127的不变                       thresh-tozero-inv
ret, thresh5 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV)              


images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
titles = ['ORIGINAL', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']

for i in range(6):
    plt.subplot(2, 3, i+1)
    plt.imshow(images[i])
    plt.title(titles[i])
plt.show()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值