cv2.threshold函数用法
时间: 2023-10-14 08:13:50 浏览: 87
cv2.threshold函数用于二值化图像,将图像像素值大于阈值的部分赋值为一个指定的值,小于等于阈值的部分赋值为另一个指定的值。函数的使用方法如下:
```
retval, dst = cv2.threshold(src, thresh, maxval, type)
```
其中,src是输入的图像,thresh是阈值,maxval是二值化后的最大值,type是二值化的类型。retval是阈值,dst是输出的二值化图像。
type参数有以下几种取值:
- cv2.THRESH_BINARY:大于阈值的部分赋值为maxval,小于等于阈值的部分赋值为0。
- cv2.THRESH_BINARY_INV:大于阈值的部分赋值为0,小于等于阈值的部分赋值为maxval。
- cv2.THRESH_TRUNC:大于阈值的部分赋值为阈值,小于等于阈值的部分不变。
- cv2.THRESH_TOZERO:大于阈值的部分不变,小于等于阈值的部分赋值为0。
- cv2.THRESH_TOZERO_INV:大于阈值的部分赋值为0,小于等于阈值的部分不变。
例如,将一幅灰度图像二值化:
```
import cv2
img = cv2.imread('test.jpg', 0)
retval, dst = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
cv2.imshow('binary image', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题
cv2.threshold使用方法全部
cv2.threshold()是OpenCV中用于图像二值化的函数。它的使用方法如下:
```python
retval, dst = cv2.threshold(src, thresh, maxval, type)
```
参数解释:
- `src`: 输入的图像,必须是单通道灰度图像。
- `thresh`: 阈值,用于将图像二值化,取值范围为0-255。
- `maxval`: 当像素值大于阈值时,所赋的值,取值范围为0-255。
- `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`: 阈值,返回实际使用的阈值。
- `dst`: 输出的二值化图像。
示例:
```python
import cv2
img = cv2.imread('image.jpg', 0) # 读入灰度图像
ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 二值化操作
ret, thresh2 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU) # Otsu二值化操作
cv2.imshow('Threshold', thresh1)
cv2.imshow('Otsu Threshold', thresh2)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
以上代码中,`cv2.THRESH_BINARY`和`cv2.THRESH_BINARY_INV`分别使用了二值化和Otsu二值化操作。
cv.threshold函数怎么使用
cv.threshold函数用于对一张灰度图像进行阈值处理,将像素值大于或小于指定阈值的像素进行二值化处理,通常用于图像分割、边缘检测等应用。
该函数的使用方法如下:
```python
ret, binary = cv.threshold(src_img, thresh, maxval, type)
```
- src_img:输入的灰度图像;
- thresh:指定的阈值,可以是一个数值或者是一个函数,用于自动计算阈值;
- maxval:二值化后像素的最大值,通常为255;
- type:阈值处理的类型,包括:cv.THRESH_BINARY、cv.THRESH_BINARY_INV、cv.THRESH_TRUNC、cv.THRESH_TOZERO、cv.THRESH_TOZERO_INV、cv.THRESH_MASK、cv.THRESH_OTSU等。
其中,返回值ret为计算得到的阈值,binary为二值化后的图像。
例如,以下代码对一张灰度图像进行二值化处理:
```python
import cv2 as cv
img = cv.imread('example.jpg', 0) # 读入灰度图像
ret, binary = cv.threshold(img, 127, 255, cv.THRESH_BINARY) # 二值化处理
cv.imshow('binary image', binary) # 显示二值化后的图像
cv.waitKey(0)
cv.destroyAllWindows()
```
在上述代码中,首先使用cv.imread函数读入一张灰度图像,然后使用cv.threshold函数对图像进行二值化处理,将像素值大于127的设为255,小于等于127的设为0,最后使用cv.imshow函数显示二值化后的图像。
阅读全文