cv2.inRange 用法
时间: 2023-05-25 21:06:43 浏览: 78
cv2.inRange() 用于在图像中将像素值在特定范围内的像素设置为白色(255)或黑色(0)。语法如下:
```python
retval = cv2.inRange(src, lowerb, upperb[, dst])
```
参数说明:
- `src`:需要处理的输入图像,要求为单通道,即灰度图像
- `lowerb`:要过滤的最小值
- `upperb`:要过滤的最大值
- `dst`:输出图像,如果不指定则创建一个和 `src` 相同大小的图像
返回值是一个二进制掩模(Binary Mask),即黑白像素组成的图像,白色像素的值为255,黑色像素的值为0。
示例:
```python
import cv2
img = cv2.imread('image.jpg') # 读取图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转为灰度图像
# 定义过滤范围
lower = 50
upper = 150
mask = cv2.inRange(gray, lower, upper) # 过滤灰度图像
cv2.imshow('Original Image', img) # 原始图像
cv2.imshow('Gray Image', gray) # 灰度图像
cv2.imshow('Filtered Image', mask) # 过滤后的图像
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上面的示例将灰度图像中像素值在范围 [50,150] 的像素设置为白色,其余像素设置为黑色,并且可视化输出过滤前后的图像。