我正在尝试从我的自主机器人的摄像头中过滤掉交通信号灯。我将捕获的帧转换为 HSV 色彩空间,对它们进行阈值处理,直到我可以检测到所有与交通信号灯大致一样“红色”的红色物体,然后我应用霍夫变换来找出其中的红灯(这显然是圆圈)。
现在这里的问题是我发现霍夫变换只适用于单通道图像,而且我似乎正在使用三个,所以我尝试使用以下代码将 HSV 阈值图像转换为灰度 -
imgFinal = thresholded #initialising the variable with the thresholded image.
framenew = cv2.cvtColor(threshNew, cv2.COLOR_HSV2GRAY)
但是在运行时我收到一个错误,说“模块”对象没有属性“COLOR_HSV2GRAY”。我发现了几个关于这个主题的问题,但没有一个是我问题的答案。我只需要检测红色交通信号灯,我尝试分离通道,但我不知道如何继续使用这种方法。我也对任何其他方法持开放态度。
谢谢!
PS-这可能是题外话,但是你们都建议这个项目使用哪种语言?C++ 还是 Python?我已经为两者编写了代码,我只是对使用哪一个感到困惑。我目前正在我的 Windows 8.1 PC 上开发它,但最终项目需要在 Raspberry Pi 3 上运行。