详细说明cv2.threshold函数
时间: 2023-05-30 16:05:02 浏览: 221
cv2.threshold函数是OpenCV中常用的图像处理函数之一,用于将灰度图像二值化。它的具体参数如下:
cv2.threshold(src, thresh, maxval, type[, dst])
参数含义:
- src:输入图像,必须是灰度图像。
- thresh:阈值,可以是一个固定的数值,也可以是一个自适应阈值算法。
- maxval:当像素值大于阈值时,赋予的新像素值。
- type:阈值类型,包括cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO、cv2.THRESH_TOZERO_INV等。
- dst:输出图像,可选参数。
cv2.threshold函数的作用是将灰度图像二值化,即将像素值大于阈值的像素赋予一个新的像素值,使得图像只有黑白两种颜色。其中,阈值可以是一个固定的数值,也可以是一个自适应阈值算法,阈值类型包括二值化、反二值化、截断、取零和取反等。
示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg',0)
ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
ret,thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
ret,thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
ret,thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
cv2.imshow('Original Image',img)
cv2.imshow('Binary Threshold',thresh1)
cv2.imshow('Binary Threshold Inverted',thresh2)
cv2.imshow('Truncated Threshold',thresh3)
cv2.imshow('Set to 0',thresh4)
cv2.imshow('Set to 0 Inverted',thresh5)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码读取一张图片,将其用cv2.threshold函数分别进行二值化、反二值化、截断、取零和取反操作,并将结果显示出来。可以通过调整阈值和阈值类型来进行不同的二值化操作。
阅读全文