cv2.inRange
时间: 2023-06-25 09:04:22 浏览: 70
`cv2.inRange` 函数是一个 OpenCV 的图像处理函数,用于从图像中提取特定颜色范围内的像素。它接受三个参数:输入图像、颜色范围下界和颜色范围上界。函数返回一个二值化图像,其中在颜色范围内的像素被设置为白色(255),而在颜色范围之外的像素被设置为黑色(0)。这个在特定颜色范围内提取像素的过程通常被称为颜色分割。
函数原型如下:
```python
cv2.inRange(src, lowerb, upperb[, dst])
```
其中:
- `src`:要处理的输入图像
- `lowerb`:颜色范围下界,一个包含三个元素的列表或元组,分别代表蓝色、绿色和红色分量的下限值
- `upperb`:颜色范围上界,一个包含三个元素的列表或元组,分别代表蓝色、绿色和红色分量的上限值
- `dst`:可选参数,输出图像,如果不提供,则函数会创建一个与输入图像大小和类型相同的图像
示例代码:
```python
import cv2
import numpy as np
img = cv2.imread("image.jpg")
lower_blue = np.array([100, 50, 50])
upper_blue = np.array([130, 255, 255])
mask = cv2.inRange(img, lower_blue, upper_blue)
cv2.imshow("Original Image", img)
cv2.imshow("Mask", mask)
cv2.waitKey(0)
```
在这个示例代码中,我们读取了一张名为 `image.jpg` 的图像,并从其中提取出蓝色范围内的像素。我们使用了 `cv2.inRange` 函数来实现这一点,将颜色范围下界设置为 `[100, 50, 50]`,将颜色范围上界设置为 `[130, 255, 255]`。这个范围包含了大部分蓝色像素的颜色分量。我们将函数的输出结果显示在屏幕上,其中只有在蓝色范围内的像素被设置为白色,而其他像素则为黑色。