繁体   English   中英

霍夫变换未检测到正确的圆

[英]Hough transform not detecting correct circle

我正在开展一个项目,我必须检测交通信号灯(显然是圆圈)。 现在我正在使用我从一个地方拾取的样本图像,但是经过我所有的努力,我无法获得检测正确圆(光)的代码。

这是代码: -

# import the necessary packages  
import numpy as np  
import cv2

image = cv2.imread('circleTestsmall.png')
output = image.copy()
# Apply Guassian Blur to smooth the image
blur = cv2.GaussianBlur(image,(9,9),0)
gray = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)
# detect circles in the image
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2, 200)

# ensure at least some circles were found
if circles is not None:
    # convert the (x, y) coordinates and radius of the circles to integers
    circles = np.round(circles[0, :]).astype("int")

# loop over the (x, y) coordinates and radius of the circles
for (x, y, r) in circles:
    # draw the circle in the output image, then draw a rectangle
    # corresponding to the center of the circle
    cv2.circle(output, (x, y), r, (0, 255, 0), 4)
    cv2.rectangle(output, (x - 5, y - 5), (x + 5, y + 5), (0, 128, 255), -1)

# show the output image
cv2.imshow("output", output)
    cv2.imshow('Blur', blur)
cv2.waitKey(0)

我想要检测圆圈的图像 - 图片。我要检测的圆圈突出显示。

这是输出图像: - 输出图像。

我尝试使用高斯模糊半径值和霍夫变换中的minDist参数,但没有取得多大成功。
任何人都能指出我正确的方向吗?

PS-一些主题问题,但对我的项目至关重要 -
1.我的电脑大约需要6-7秒才能显示最终图像。 我的代码是坏的还是我的电脑? 我的规格是 - 英特尔i3 M350 2.6 GHz(第一代),6GB内存,英特尔高清显卡1000 1625 MB。
2.霍夫变换是否会直接在二值阈值图像上工作?
3.这个代码在Raspberry Pi 3上的运行速度是否足够实时? (我得将它安装在一个移动的自动机器人上。)

谢谢!

首先,你应该稍微限制你的参数。

请参阅: http//docs.opencv.org/2.4/modules/imgproc/doc/feature_detection.html#houghcircles

至少为最小和最大半径设置合理的值。 尝试先找到一个特定的圆圈。 如果成功增加了半径公差。

霍夫变换是一种强力方法。 它将为图像中的每个边缘像素尝试任何可能的半径。 这就是为什么它不适合实时应用程序。 特别是如果您没有提供适当的参数和输入。 你没有半径限制atm。 因此,对于每个像素,您将计算数百个(如果不是数千个)圆圈...

在你的情况下,交通灯也不是很圆,所以累积的结果不会很好。 尝试寻找合理尺寸的高度饱和,明亮,紧凑的斑点。 它应该更快,更健壮。

如果限制图像大小,可以进一步缩短处理时间。 我想你可以假设红绿灯总是在你图像的上半部分。 所以省略下半部分。 交通灯总是绿色,红色或黄色。 删除那些不是那种颜色的东西......我想你明白了我的意思......

我认为您应该首先根据红绿灯颜色执行颜色分割。 它将极大地降低投资回报率。 然后,您只能在ROI边上应用Hough变换(因为您需要轮廓)。

另一个限制:只接受内部颜色同质的圆圈。这会抛弃上面例子中的所有虚假命中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM