【问题标题】:Detect a cutout/semicircle in an image检测图像中的切口/半圆
【发布时间】:2017-07-06 21:47:34
【问题描述】:

下面是一个二进制图像,我想在其中检测“山丘”、半圆、切口......在下面的红色圆圈中。检测不一定要精确,我只需要知道图片中有这样的东西。我正在考虑一种算法,该算法将使用一种线扫描方法并计算线上的黑色像素并用某种“聪明”来评估它,但在此之前我想知道我是否遗漏了任何可能的技术更容易或更强大。我已经尝试过 HoughCircles,但没有好的结果,因为圆圈的半径很大,而且有很多(houghCircles 将灰度图像作为输入)。

【问题讨论】:

  • 我不知道你来自哪里,但我来自哪里,半圆看起来不一样;)
  • 您能否更具体地说明您要提取哪些信息?
  • @YvesDaoust 正如您自己猜测的那样,这是一个缺陷检测。我不需要确切的特征。我只需要找出其他漂亮的矩形形状是否存在缺陷。

标签: c++ opencv image-processing


【解决方案1】:

在这种简单的情况下,计算像素应该没问题。如果您面对更复杂的场景以及您不想考虑的其他事情,您应该考虑使用 blob 检测器。 此方法搜索连接像素的区域。一旦有了斑点,您就可以轻松地按大小、形状、位置对它们进行分类,这有助于去除不需要的东西。

https://www.learnopencv.com/blob-detection-using-opencv-python-c/

这是一个非常基本的技术。在继续之前,请阅读有关图像处理基础的书籍。这将使生活更轻松。

【讨论】:

  • 您的建议基本上是寻找轮廓并寻找该区域?我想避免这种情况。
  • @Croolman:如果您追求几何特征,例如曲率半径,那么如果不看...形状(因此是轮廓)就很难做到这一点。
  • @Croolman 你不必这样做,但如果你必须以某种方式描述那些黑色区域,因为你可能不得不过滤掉你不感兴趣的东西,你就无法避免它。如果你只是想知道有没有东西,计算像素就足够了。
【解决方案2】:

正如@piglet 所说,这是一个blob 分析的案例。

如果您想进一步表征和分类缺陷,您必须计算形状的一些几何特征,例如面积、直径、伸长率……并将它们输入分类器/神经网络。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多