cv2.threshold函数用法
时间: 2023-10-14 15:13:50 浏览: 46
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()` 是一个用于图像阈值化的函数,它可以将图像中的像素值进行二值化或多值化处理,使像素值只保留在特定的范围内。`cv2.threshold()` 函数的用法如下:
```python
retval, dst = cv2.threshold(src, thresh, maxval, type)
```
其中:
- `src`:表示输入图像,必须为灰度图像。
- `thresh`:表示设定的阈值。
- `maxval`:表示当像素值超过阈值时,所赋予的新值,一般为一个白色像素值(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,否则不变。
`cv2.threshold()` 函数返回两个值:
- `retval`:表示在二值化和反二值化时使用的阈值。
- `dst`:表示输出图像,与 `src` 大小相同,像素值为二值化后的值。
下面是一个简单的例子,演示如何使用 `cv2.threshold()` 函数对一张灰度图像进行二值化处理:
```python
import cv2
# 读取灰度图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 二值化处理
retval, dst = cv2.threshold(img, 128, 255, cv2.THRESH_BINARY)
# 显示原图和处理后的图像
cv2.imshow('src', img)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
cv2.threshold函数
cv2.threshold函数是OpenCV中的一个图像处理函数,用于将图像转换为二值图像。它的作用是将图像中的像素值与设定的阈值进行比较,大于阈值的像素点设置为一个值(通常是255),小于阈值的像素点设置为另一个值(通常是0)。具体使用方法如下:
retval, threshold = cv2.threshold(src, thresh, maxval, type)
参数解释:
- 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值和一个threshold图像,retval为设定的阈值。