可以认为该函数是将灰度图片转换为二值图片,我们在将彩色图片转换为灰度图片后,这样就简化了处理复杂度,然后将灰度图片转化为二值图片,就方便我们查找图片中的轮廓了,我们可以认为二值图片就是由像素0和255构成,突出图片的轮廓,0为黑,255为白,该函数接收一个阀值,根据type参数来处理像素点
函数原型
- cv2.threshold(src, thresh, maxval, type, dst=None)
参数说明: - thresh:阀值,取值范围是0~255
- maxval:填充色,取值范围是0~255
- type:阀值类型
值枚举 | 枚举值 | 小于阀值 | 大于阀值 |
---|---|---|---|
cv2.THRESH_BINARY | 0 | 值0 | 置填充色 |
cv2.THRESH_BINARY_INV | 1 | 置填充色 | 置0 |
cv2.THRESH_TRUNC | 2 | 保持原色 | 置灰色 |
cv2.THRESH_TOZERO | 3 | 置0 | 保持原色 |
cv2.THRESH_TOZERO_INV | 4 | 保持原色 | |
cv2.THRESH_MASK | 不支持 | ||
cv2.THRESH_OTSU | 不支持32位 | ||
cv2.THRESH_TRIANGLE | 不支持32位 |
返回二值图片数组
使用示例
import cv2
# 读入图片
img = cv2.imread(path)
# 将图片转换为灰度图片
imggray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 将灰度图片转换为二值图片
_, thresh = cv2.threshold(src=imgray, thresh=50, maxval=255, type=cv2.THRESH_BINARY)
cv2.imshow("thresh", thresh)
cv2.waitKey(0)
cv2.destroyWindow("thresh")