cv2.inRange 过滤黄色
时间: 2023-05-25 20:06:46 浏览: 301
以下是使用 cv2.inRange 函数过滤黄色的示例代码:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('image.jpg')
# 将图片从 BGR 颜色空间转换为 HSV 颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义黄色的颜色范围
lower_yellow = np.array([20, 100, 100])
upper_yellow = np.array([40, 255, 255])
# 使用 cv2.inRange 过滤黄色
mask = cv2.inRange(hsv, lower_yellow, upper_yellow)
# 用掩码来获取原始图像中的黄色区域
yellow_img = cv2.bitwise_and(img, img, mask=mask)
# 显示图片
cv2.imshow('original', img)
cv2.imshow('yellow', yellow_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先将图片从 BGR 颜色空间转换为 HSV 颜色空间。然后,我们定义了一个颜色范围,该颜色范围可以用来筛选出所有黄色像素。最后,我们使用 cv2.inRange 函数来应用颜色筛选器,生成一个掩码。然后使用掩码来获取原始图像中的黄色区域。
在最后一行,我们用 cv2.imshow 函数来显示原始的彩色图片和黄色图片。等待用户按下任何按键之前,图片会一直显示。最终,我们释放内存并关闭所有窗口。
注意:颜色范围[20,100,100] - [40,255,255] 是非常粗略的估计。在实际应用中,您可能需要使用不同的参数进行调整,以找到正确的颜色范围,以过滤出所需的颜色。
阅读全文