python cv2.threshold 二值化
时间: 2023-07-02 15:11:20 浏览: 160
`cv2.threshold()` 是 OpenCV 中用于实现图像二值化的函数。它可以将一张灰度图像转换为二值图像,即将图像中的像素值全部转换成 0 或 255,实现图像的全局阈值分割。
函数原型为:
```python
cv2.threshold(src, thresh, maxval, type[, dst])
```
其中,参数含义如下:
- `src`:要处理的原始图像,必须是单通道的灰度图像。
- `thresh`:设定的阈值,当像素值大于阈值时,设定为 `maxval`,反之设定为 0。
- `maxval`:设定的最大值,通常为 255。
- `type`:二值化类型,有以下几种选择:
- `cv2.THRESH_BINARY`:二值化,当像素值大于阈值时,设定为 `maxval`,反之设定为 0。
- `cv2.THRESH_BINARY_INV`:反二值化,当像素值大于阈值时,设定为 0,反之设定为 `maxval`。
- `cv2.THRESH_TRUNC`:截断,当像素值大于阈值时,设定为阈值,反之不变。
- `cv2.THRESH_TOZERO`:截至到 0,当像素值大于阈值时,不变,反之设定为 0。
- `cv2.THRESH_TOZERO_INV`:反截至到 0,当像素值大于阈值时,设定为 0,反之不变。
- `dst`:输出的目标图像,可选参数。
以下是一个简单的例子:
```python
import cv2
img = cv2.imread('test.jpg', 0) # 以灰度图像的方式读入图片
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
cv2.imshow('thresh', thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们读入了一张名为 `test.jpg` 的图片,将它转换为灰度图像,并将阈值设定为 127。通过 `cv2.threshold()` 函数将这张图片进行二值化处理,并将结果显示在窗口中。
阅读全文