cv2.threshold()详解
时间: 2023-05-28 19:07:23 浏览: 101
cv2.threshold()是OpenCV中的一个函数,用于图像二值化处理,将图像转换为黑白二色。该函数的语法格式如下:
cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst
其中,参数含义如下:
- src:输入的原始图像,必须是单通道的灰度图像,即像素值为0-255的二维矩阵。
- thresh:设定的阈值,用于将输入图像中的像素值进行分类。当像素值大于阈值时,将其设为maxval;当像素值小于等于阈值时,将其设为0。
- maxval:指定像素值的最大值,通常为255,表示白色。
- type:指定二值化操作的类型,包括cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO和cv2.THRESH_TOZERO_INV。
- dst:输出的二值化图像,如果不指定,则会直接覆盖原始图像。
- retval:指定的阈值,即输入图像的全局阈值。
cv2.threshold()函数的使用流程如下:
1. 将输入图像转换为灰度图像;
2. 设置阈值thresh和最大像素值maxval;
3. 指定二值化操作的类型type;
4. 调用cv2.threshold()函数进行二值化处理,获取输出图像和阈值retval。
以下是一个使用cv2.threshold()函数进行图像二值化处理的示例代码:
import cv2
# 读取原始图像
img = cv2.imread('test.jpg')
# 将原始图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 设定阈值和最大像素值
thresh = 127
maxval = 255
# 设定二值化操作的类型
type = cv2.THRESH_BINARY
# 进行二值化处理
retval, dst = cv2.threshold(gray, thresh, maxval, type)
# 显示原始图像和输出图像
cv2.imshow('Original', img)
cv2.imshow('Binary', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上述代码中,我们先读取了一张测试图像,并将其转换为灰度图像。然后,我们设定了阈值和最大像素值,并指定了二值化操作的类型cv2.THRESH_BINARY。最后,我们调用cv2.threshold()函数对灰度图像进行二值化处理,并将输出图像显示出来。