【问题标题】:Hough Circle on binary images二值图像上的霍夫圆
【发布时间】:2016-08-21 16:23:49
【问题描述】:

我正在尝试创建一个总能找到我的 3 个颜色球的通用函数。 (红色、黄色和白色)。我花了很多时间寻找解决方案,而且很难...... 目前,首先,我使用 Canny 过滤器(我使用 Otsu 方法来确定较低和较高的参数),然后通过递增 param2 来调用 Hough Circle 方法,直到找到 3 个圆圈。

while (!findCircles){
    Imgproc.HoughCircles(hough, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 100, 200, low, 20, 100); //find3Circles = true;  
    if (circles.cols() == 3){
        findCircles = true;
    }       
    low++;
 }

效果不太好……

如果有人投票支持我的问题,我可以发布图片(我没有足够的分数......)请,如果有人找到解决方案,很高兴告诉我。

【问题讨论】:

  • “效果不是很好……”这没什么帮助。
  • 我想我们大多数人都理解你不能上传图片,但是你可以更好地描述什么“不好”,因为这是主观的。

标签: c++ opencv image-processing hough-transform


【解决方案1】:

我认为你的方法应该基于寻找颜色,而不是形状,或者至少你应该盯着寻找颜色然后寻找形状。 Here 有一篇很好的文章(它使用旧的 OpenCV API,但其他一切都很好)描述了如何在 OpenCV 中执行基于颜色的对象跟踪。一般的想法很简单 - 将图像转换为 HSV 颜色空间,使用 inRange 函数查找可能是您的对象的像素,然后跟踪它们(很可能您必须过滤像素 - 找到最大轮廓或形状接近圆形的轮廓)。请注意,您需要调用 inRange 函数 3 次(每个球一次)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 2014-05-12
    相关资源
    最近更新 更多