红绿灯检测
本设计中红绿灯检测程序主要有detectColor.py文件和TLState.py两个文件。
在detectColor.py文件中主要是检测被TLState.py分割出来的灯的颜色,首先利用OpenCV中的cv2.cvtColor(image,cv2.COLOR_ BGR2HSV)函数,将图片从BGR格式转换为HSV格式。之后利用cv2.inRange()函数设阈值去除背景部分,再进行中值滤波,最后计算非零像素点数,取其像素点最多的那个对应的结果作为最终结果。
在TLState.py文件中,进行灰度处理,之后利用cv2.HoughCircles()函数进行霍夫圆环检测。将检测到的圆环送入detectColor.py文件中的detectColor()函数中进行颜色检测。
补充知识点
1、cv2.cvtColor函数将图片从BGR格式转换为HSV格式
具体用法
hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)
RGB颜色空间以R(Red:红)、G(Green:绿色)、 B(Blue:蓝)
HSV颜色空间,用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;
2、**cv2.inRange()**函数设阈值,去除背景部分
本次目标是将一副图像从rgb颜色空间转换到hsv颜色空间,颜色去除白色背景部分
用法
mask = cv2.inRange(hsv, lower_red, upper_red) #lower20===&g