【Python+OpenCV】二值化函数cv2.threshold()的用法详解


函数原型

Python: cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst

参数说明

传入参数:

  • src: 输入图片
  • thresh: 阈值,取值范围0~255
  • maxval: 填充色,取值范围0~255
  • type: 二值化使用什么类型的算法,常见type为0(cv2.THRESH_BINARY)

其中type的值有如下对应关系:

阈值小于阈值的像素点大于阈值的像素点
0置0置填充色
1置填充色置0
2保持原色置灰色
3置0保持原色
4保持原色置0

返回值:

  • retval: 返回输入的thresh
  • dst: 返回二值化后的图片

用法举例

import cv2
img1 = cv2.imread("") #填自己的图片路径

#灰度化处理
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)

#根据所需填充颜色,这里是填充白色,只要不是黑色(0)就填充白色(255)
retval,thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY)

cv2.imshow("a",thresh)
cv2.waitKey(0)
cv2.destroyWindow()

总结

  1. 二值化cv2.threshold一般用于处理灰度图,所以要先获取到灰度图。
  2. type参数可以直接传入01234来选择对应的算法,也可以选择下面的写法:
cv2.THRESH_BINARY   表示阈值的二值化操作,大于阈值使用maxval表示,小于阈值使用0表示

cv2.THRESH_BINARY_INV  表示阈值的二值化翻转操作,大于阈值的使用0表示,小于阈值的使用最大值表示

cv2.THRESH_TRUNC    表示进行截断操作,大于阈值的使用阈值表示,小于阈值的不变

cv2.THRESH_TOZERO   表示进行化零操作,大于阈值的不变,小于阈值的使用0表示

cv2.THRESH_TOZERO_INV  表示进行化零操作的翻转,大于阈值的使用0表示,小于阈值的不变
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
cv2.threshold函数OpenCV库中用于图像二值化处理的函数。它的具体用法如下: cv2.threshold(src, thresh, maxval, type[, dst]) -> retval, dst 其中,src代表输入图像,thresh代表设定的阈值maxval代表最大阈值,type代表二值化的类型,dst代表输出图像。函数会返回两个值:retval和dst。 在使用函数时,需要先将彩色图像转换为灰度图像,可以使用cv2.cvtColor函数将彩色图像转为灰度图像。然后,再通过调用cv2.threshold函数进行二值化处理。 具体的代码示例可以参考下面的代码: import cv2 import numpy as np # 读取照片 img = cv2.imread('D:\\Patrick_Star.jpg') # 图像缩放 img = cv2.resize(img, None, fx=0.1, fy=0.1) cv2.imshow('img', img) # 灰度处理 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow('gray', gray) # cv2.threshold()二值化 _, thres = cv2.threshold(gray, 180, 255, cv2.THRESH_BINARY_INV) cv2.imshow('thres', thres) # 展示图片 cv2.waitKey(0) cv2.destroyAllWindows() 在这个例子中,我们首先读取一张图片,并进行缩放。然后使用cv2.cvtColor函数将彩色图像转换为灰度图像。最后,通过调用cv2.threshold函数将灰度图像进行二值化处理,将图像中灰度值大于180的像素设为255(白色),其余设为0(黑色)。最后,展示处理后的图像。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [cv2.threshold具体用法,参数分析是什么](https://blog.csdn.net/weixin_35753291/article/details/128872422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [python-opencv-cv2.threshold()二值化函数详解](https://blog.csdn.net/weixin_57194935/article/details/124582432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十小大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值