opencv python cv2.inRange()
时间: 2024-05-10 16:16:29 浏览: 4
`cv2.inRange()` 是 OpenCV 库中的一个函数,用于将图像中的像素值限定在指定范围内。它会将图像中的每个像素与指定的下限和上限进行比较,如果像素值在下限和上限之间,则该像素被保留,否则被舍弃。函数原型如下:
```python
cv2.inRange(src, lowerb, upperb[, dst])
```
其中,`src` 参数是输入图像,可以是单通道或多通道的,数据类型为 `np.uint8`;`lowerb` 和 `upperb` 是指定的下限和上限,类型为 `Scalar`,可以是单个值或者一个包含多个值的元组或列表;`dst` 是可选的输出图像,数据类型和输入图像相同。
下面是一个示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('test.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(hsv, lower_red, upper_red)
cv2.imshow('Original Image', img)
cv2.imshow('Mask', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们读取了一张图片,并将其转换为 HSV 颜色空间。然后定义了一个红色范围的下限和上限,并使用 `cv2.inRange()` 函数生成一个蒙版。最后将原始图像和蒙版都显示出来。这个例子中,我们将图像中的红色部分提取了出来,其他部分都被过滤掉了。