利用python在hsv空间中识别黑色背景下的红绿蓝三种颜色
时间: 2024-03-27 09:41:38 浏览: 22
以下是一个简单的示例代码,用于在黑色背景下识别红绿蓝三种颜色:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('test.jpg')
# 将图片转换到HSV空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义颜色范围
lower_red = np.array([0, 50, 50])
upper_red = np.array([20, 255, 255])
lower_red2 = np.array([340, 50, 50])
upper_red2 = np.array([360, 255, 255])
lower_green = np.array([60, 50, 50])
upper_green = np.array([100, 255, 255])
lower_blue = np.array([100, 50, 50])
upper_blue = np.array([140, 255, 255])
# 根据阈值构建掩膜
mask_red1 = cv2.inRange(hsv, lower_red, upper_red)
mask_red2 = cv2.inRange(hsv, lower_red2, upper_red2)
mask_red = mask_red1 + mask_red2
mask_green = cv2.inRange(hsv, lower_green, upper_green)
mask_blue = cv2.inRange(hsv, lower_blue, upper_blue)
# 对原图像和掩膜进行位运算
res_red = cv2.bitwise_and(img, img, mask=mask_red)
res_green = cv2.bitwise_and(img, img, mask=mask_green)
res_blue = cv2.bitwise_and(img, img, mask=mask_blue)
# 显示图像
cv2.imshow('Original', img)
cv2.imshow('Red', res_red)
cv2.imshow('Green', res_green)
cv2.imshow('Blue', res_blue)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,`test.jpg`是需要处理的图片文件,首先将图片转换到HSV空间,并分别定义红、绿、蓝三种颜色的HSV值范围。然后通过`cv2.inRange()`函数根据阈值构建掩膜,最后对原图像和掩膜进行位运算得到处理结果。运行以上代码,可以在窗口中看到原图像和分别识别出的红、绿、蓝三种颜色的图像。