【问题标题】:Detecting horizontal round edges in color images检测彩色图像中的水平圆边
【发布时间】:2013-06-24 05:10:10
【问题描述】:

我正在尝试检测彩色图像中包含椭圆形顶部的区域。

这是我画的一些例子:

http://i.imgur.com/fh6udfL.jpg

http://i.imgur.com/3qLBrVn.jpg

您将如何实现这一目标?我在图像处理方面缺乏经验,但我愿意阅读和学习。我主要使用 OpenCV 和 C++,但我也可以使用其他库。

【问题讨论】:

    标签: opencv image-processing computer-vision edge-detection


    【解决方案1】:

    一般来说,你问的问题是个大问题。在现实世界的图像中,您需要找到每个椭圆形,区分哪个有顶部(直到您容忍和考虑的角度?)。然后你需要很好地分割这些形状,以便找到顶部为椭圆形物体的区域。

    但是,如果您需要像示例中那样查找更简单的图像,但仍然是更通用的方法,您可以首先使用任何边缘检测(例如 Canny)来获取边缘。然后,对曲线和椭圆使用霍夫变换。但我认为没有功能或库。所以你可能需要实现你自己的霍夫变换。为此,您必须确定椭圆形顶部的确切含义。对于您的两个图像,如果您成功找到椭圆形顶部,只需获取它下方的区域即可。但是为了获得更通用的信息,您可能希望使用更复杂的方法在其下分割形状。

    对于霍夫变换; http://en.wikipedia.org/wiki/Hough_transform#Circle_Detection_Process 并将其与省略号一起使用 http://en.wikipedia.org/wiki/Randomized_Hough_transform

    【讨论】:

      【解决方案2】:

      其实在opencv中有一个检测圆圈的功能。

      使用 hough transform 和低参数 2 - 因为您应该检测仅给出顶部的圆圈。

      另一种方式应该是这样的;

      1-低通滤波器(高斯模糊,在opencv doc里面搜索)

      2- color filter - optional (如果你知道就使用你的对象的颜色,否则尝试从pixel(image.width/2 , 0)获取颜色)

      3- canny 边缘检测(再次参考文档)

      4- 查找轮廓(再次参考文档)

      5- 如果您的轮廓最好具有较大的区域并包括像素(image.width/2 , 0)-您将在此处使用 pointPolygonTest- 那么您的底部会有一个斑点。

      6- 检测此 blob 是否为“椭圆形”是一个大问题;但是您可以使用“椭圆度”的属性进行一些过滤;

      • 椭圆曲线有 1 个且只有 1 个峰值点。应该只有 1 个轮廓像素具有最大高度。
      • 椭圆曲线的任何 3 个点都不能代表一条线。这不难实现,但对算法来说很复杂。

      【讨论】:

      • 据我所知,opencv 中的圆形检测器无法检测椭圆形状。由于它们的数学定义会不同吗?抱歉,我不喜欢 OpenCV
      【解决方案3】:

      我会建议一种比圆形霍夫变换更简单的方法。 从上面的图片中,我看到椭圆的颜色是统一的,而其余的 图像没有。

      1. 选择合适的色彩空间(可能是 HSV)
      2. 以灰度作为色调或饱和度 - 这些将描述图像中的颜色(而不是像素的强度)
      3. 计算 (2) 的梯度
      4. 梯度 = 0 的像素属于椭圆形

      【讨论】:

      • 虽然这种方法可以帮助这两张图片,但问题不是“我想在这些颜色背景不均匀的照片中找到这两个颜色均匀的物体”,它会欺骗成功数据库,如果你只是改变颜色,那会发生什么?
      • 好吧,如果解决方案过度拟合训练集并且不能推广到整个数据集,那么它只是“作弊”。改变颜色会改变色调和饱和度,但不会对(色调\饱和度的)渐变产生不利影响。
      • 通过改变颜色,我的意思是改变颜色和背景颜色像不透明的灰色来制作形状
      【解决方案4】:

      椭圆检测可以参考this post。这两种方法都基于霍夫变换,可以根据需要轻松调整。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-14
        • 2011-12-25
        • 2021-09-01
        • 2020-09-05
        • 2020-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多