opencv pyhton检测红绿灯
时间: 2023-09-23 20:11:19 浏览: 62
你可以使用OpenCV和Python来检测红绿灯。下面是一个简单的步骤:
1. 导入所需的库:
```python
import cv2
import numpy as np
```
2. 读取图像并进行预处理:
```python
image = cv2.imread('image.jpg')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
```
3. 定义红绿灯颜色的范围:
```python
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
lower_green = np.array([50, 100, 100])
upper_green = np.array([70, 255, 255])
```
4. 进行颜色过滤:
```python
red_mask = cv2.inRange(hsv, lower_red, upper_red)
green_mask = cv2.inRange(hsv, lower_green, upper_green)
```
5. 对过滤后的图像进行形态学操作:
```python
kernel = np.ones((5, 5), np.uint8)
red_mask = cv2.morphologyEx(red_mask, cv2.MORPH_OPEN, kernel)
green_mask = cv2.morphologyEx(green_mask, cv2.MORPH_OPEN, kernel)
```
6. 检查红绿灯是否存在:
```python
red_light = cv2.bitwise_and(image, image, mask=red_mask)
green_light = cv2.bitwise_and(image, image, mask=green_mask)
if cv2.countNonZero(red_mask) > cv2.countNonZero(green_mask):
print("红灯")
else:
print("绿灯")
```
这是一个简单的红绿灯检测示例,具体的实现可能因场景和需求而有所不同。
阅读全文