红绿灯灰度图识别 Python opencv
时间: 2023-10-16 12:11:02 浏览: 106
python红绿灯检测opencv识别红绿灯信号灯检测
5星 · 资源好评率100%
以下是一个简单的红绿灯灰度图识别Python opencv代码示例:
```python
import cv2
# 读取灰度图像
img_gray = cv2.imread('traffic_light.jpg', cv2.IMREAD_GRAYSCALE)
# 调整图像大小
img_gray = cv2.resize(img_gray, (400, 400))
# 二值化处理
ret, img_binary = cv2.threshold(img_gray, 90, 255, cv2.THRESH_BINARY)
# 检测圆
circles = cv2.HoughCircles(img_binary, cv2.HOUGH_GRADIENT, 1, 50, param1=80, param2=30, minRadius=20, maxRadius=80)
# 显示图像
cv2.imshow('gray', img_gray)
cv2.imshow('binary', img_binary)
if circles is not None:
circles = circles[0]
for circle in circles:
x, y, r = circle
cv2.circle(img_gray, (x, y), r, (0, 0, 255), thickness=2)
cv2.imshow('result', img_gray)
print('red light detected')
else:
print('no red light detected')
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,主要步骤包括:
1. 读取灰度图像并调整大小
2. 对图像进行二值化处理
3. 使用HoughCircles函数检测圆
4. 如果检测到圆,认为检测到了红灯,否则认为没有检测到红灯。
在代码中,我们可以调整HoughCircles函数的参数来适应不同的图像场景。例如,我们可以调整param1和param2来控制检测到圆的精度和数量,调整minRadius和maxRadius来控制检测到的圆的大小范围。
阅读全文