用python写一段代码使OpenCV识别红色并返回值
时间: 2023-08-18 21:09:56 浏览: 96
下面是一个简单的示例代码,使用OpenCV来识别红色并返回值:
```python
import cv2
import numpy as np
# 定义红色范围
lower_red = np.array([0, 50, 50])
upper_red = np.array([10, 255, 255])
lower_red2 = np.array([170, 50, 50])
upper_red2 = np.array([180, 255, 255])
# 读取图像
img = cv2.imread('test.jpg')
# 转换颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 创建掩膜
mask1 = cv2.inRange(hsv, lower_red, upper_red)
mask2 = cv2.inRange(hsv, lower_red2, upper_red2)
mask = mask1 + mask2
# 对图像应用掩膜
res = cv2.bitwise_and(img, img, mask=mask)
# 计算红色像素数
red_pixels = cv2.countNonZero(mask)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Mask', mask)
cv2.imshow('Result', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 返回红色像素数
print('红色像素数:', red_pixels)
```
在这个例子中,我们首先定义了红色的颜色范围,然后读取了一张测试图像。接下来,我们将图像转换到HSV颜色空间,并创建了一个掩膜,用于提取红色区域。我们将掩膜应用到原始图像中,以便只显示红色部分。最后,我们计算了红色像素的数量,并将其打印出来。
阅读全文