基于Hough变换的HSV灰度转换

2024-10-02 00:28:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从我的自动机器人的摄像头中过滤掉一个红绿灯。我把捕捉到的帧转换成HSV颜色空间,对它们进行阈值化,直到我能够检测出与红绿灯大致一样“红”的所有红色物体,然后应用Hough变换找出其中的红灯(显然是一个圆圈)。在

现在的问题是,我发现Hough变换只适用于单通道图像,而我似乎在处理三个通道的图像,所以我尝试使用以下代码将HSV阈值图像转换为灰度-

imgFinal = thresholded  #initialising the variable with the thresholded image.
framenew = cv2.cvtColor(threshNew, cv2.COLOR_HSV2GRAY)  

但是,在运行时,我得到一个错误,说“module”对象没有属性“COLOR HSV2GRAY”。我找到了几个关于这个话题的问题,但没有一个能回答我的问题。我只需要探测到红绿灯,我试着把频道分开,但我不知道该怎么走。我也愿意接受任何其他方法。
谢谢您!在

注:这可能是离题的,但你们都建议这个项目使用哪种语言?C++还是Python?我已经为两者编写了代码,只是不知道该用哪一个。我目前正在我的windows8.1个人电脑上开发它,但它需要运行在树莓皮3最后的项目。在


Tags: the项目代码图像颜色机器人阈值cv2
1条回答
网友
1楼 · 发布于 2024-10-02 00:28:03

HSV的V通道有点像灰度图像,但它与bgr2灰度图像不同。在

这是由BGR2GRAY计算得到的灰度图像:

enter image description here

当这是HSV图像的V通道时:

enter image description here

如果你需要更好的东西,你可以随时将你的HSV图像转换回BGR,并用openCV代码将BGR转换成灰色。在

相关问题 更多 >

    热门问题