cv.threshold 函数是 OpenCV 在图像处理中常用的一个函数,用于将一副灰度图像进行阈值分割。该函数可以将图像的像素值与用户指定的阈值进行比较,并根据像素值与阈值的大小关系对图像进行二值化处理。
cv.threshold 函数的函数原型如下:
```python
retval
dst = cv.threshold(src
thresh
maxval
type[
dst])
```
具体参数说明如下:
- `src`:源图像,灰度图像,即输入图像。
- `thresh`:阈值,用于将像素值与之进行比较的值。
- `maxval`:*值,用于进行像素值的二值化处理,将大于阈值的像素值设置为该值。
- `type`:阈值分割类型,用于指定图像是进行二值化还是反二值化,以及二值化类型的选择。
阈值分割类型有以下几种选择:
- `cv.THRESH_BINARY`:二值化操作,对于图像中的每个像素值,大于阈值的像素值设置为 `maxval`,小于等于阈值的像素值设置为 0。
- `cv.THRESH_BINARY_INV`:反二值化操作,对于图像中的每个像素值,大于阈值的像素值设置为 0,小于等于阈值的像素值设置为 `maxval`。
- `cv.THRESH_TRUNC`:截断操作,对于图像中的每个像素值,大于阈值的像素值设置为阈值,小于等于阈值的像素值保持不变。
- `cv.THRESH_TOZERO`:反二值化操作,对于图像中的每个像素值,大于阈值的像素值保持不变,小于等于阈值的像素值设置为 0。
- `cv.THRESH_TOZERO_INV`:二值化操作,对于图像中的每个像素值,大于阈值的像素值设置为 0,小于等于阈值的像素值保持不变。
返回值说明:
- `retval`:计算得到的阈值值。
- `dst`:输出图像,灰度图像,即阈值分割后的二值化图像。
除了返回值外,该函数还可以通过参数 `dst` 来传入一个与源图像形状相同的矩阵,用于指定输出图像的大小。
下面是一个使用 cv.threshold 函数对一副图像进行二值化处理的示例代码:
```python
import cv2 as cv
import numpy as np
# 读取图像
img = cv.imread('input.png'
0)
# 对图像进行二值化处理
ret
thresh = cv.threshold(img
127
255
cv.THRESH_BINARY)
# 显示原图和阈值分割后的图像
cv.imshow('Original'
img)
cv.imshow('Thresholded'
thresh)
cv.waitKey(0)
cv.destroyAllWindows()
```
该示例代码中,通过 `cv.imread` 函数读取一副图像,并将其转换为灰度图像。然后,使用 `cv.threshold` 函数对图像进行二值化处理,将像素值大于 127 的像素设置为 255,小于等于 127 的像素设置为 0。*,使用 `cv.imshow` 函数分别显示原图和阈值分割后的图像。
以上就是 cv.threshold 函数的简要介绍。希望对你理解该函数有所帮助!