函数原型
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()
总结
- 二值化cv2.threshold一般用于处理灰度图,所以要先获取到灰度图。
- type参数可以直接传入01234来选择对应的算法,也可以选择下面的写法:
cv2.THRESH_BINARY 表示阈值的二值化操作,大于阈值使用maxval表示,小于阈值使用0表示
cv2.THRESH_BINARY_INV 表示阈值的二值化翻转操作,大于阈值的使用0表示,小于阈值的使用最大值表示
cv2.THRESH_TRUNC 表示进行截断操作,大于阈值的使用阈值表示,小于阈值的不变
cv2.THRESH_TOZERO 表示进行化零操作,大于阈值的不变,小于阈值的使用0表示
cv2.THRESH_TOZERO_INV 表示进行化零操作的翻转,大于阈值的使用0表示,小于阈值的不变