opencv中的threshold
时间: 2023-09-20 17:13:27 浏览: 82
在OpenCV中,threshold函数用于将图像进行二值化处理。它基于指定的阈值将图像的像素值分为两个类别,一类是大于阈值的像素,另一类是小于等于阈值的像素。
函数原型如下:
```python
retval, threshold = cv2.threshold(src, thresh, maxval, type[, dst])
```
参数解释:
- `src`:输入图像,单通道灰度图像
- `thresh`:阈值
- `maxval`:当像素值超过阈值时设置的新值
- `type`:二值化操作的类型,有以下几种:
- cv2.THRESH_BINARY:超过阈值的像素设置为`maxval`,否则设置为0
- cv2.THRESH_BINARY_INV:超过阈值的像素设置为0,否则设置为`maxval`
- cv2.THRESH_TRUNC:超过阈值的像素设置为阈值,否则保持原值
- cv2.THRESH_TOZERO:超过阈值的像素保持原值,否则设置为0
- cv2.THRESH_TOZERO_INV:超过阈值的像素设置为0,否则保持原值
- `retval`:由函数返回的阈值(在Otsu二值化方法中可能会有所不同)
- `threshold`:输出二值化图像,与输入图像大小相同
示例使用:
```python
import cv2
img = cv2.imread('image.jpg', 0) # 以灰度模式读取图像
retval, threshold = cv2.threshold(img, 128, 255, cv2.THRESH_BINARY)
cv2.imshow('Thresholded Image', threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个示例将图像进行二值化处理,阈值为128,超过阈值的像素值设置为255,类型为`cv2.THRESH_BINARY`。然后显示二值化结果。
阅读全文