【问题标题】:opencv matching edge imagesopencv 匹配边缘图像
【发布时间】:2020-01-27 22:07:31
【问题描述】:

我正在做这个项目,其中一部分是识别相机上记录的物体。所以更具体地说:

  • 我正在使用 OpenCV

  • 我已正确设置相机并能够从中检索图片

  • 我已经编译并试验了来自 OpenCV 的大量演示

  • 我需要一个比例与旋转不变的检测算法

  • 原始对象的图片只能作为边缘图像使用

到目前为止,我看到的所有特征检测/提取/匹配算法都可以很好地处理灰度图像(如照片),但是由于我的项目规格,我需要处理边缘图像(有点像精明边缘的输出检测器),它们通常是 BW,并且仅包含在图像中发现的边缘。在这种情况下,我尝试使用的算法(SURF、SIFT、MSER 等)的性能会急剧下降。

所以实际的问题是:是否有人遇到过专门用于匹配边缘图像的算法,或者是否有某种设置可以提高 SIFR/SURF/ 的性能?为了更好地处理这种输入。

我会感谢任何建议或任何相关资源的链接

PS:这是我关于stackoverflow的第一个问题

【问题讨论】:

    标签: opencv image-recognition edge-detection


    【解决方案1】:

    边缘图像有一个问题:它们包含的有关感兴趣对象的信息非常非常稀缺。

    因此,可能找不到对边缘图像进行分类的通用算法。但是,如果您的图像简单、清晰且具体,您可以采用多种技术对其进行分类。其中:寻找轮廓,按形状、面积、定位、跟踪进行选择。

    一个很好的形状信息列表(来自 Matlab 帮助站点)包括:

    • '区域'
    • '欧拉数'
    • '方向'
    • '边界框'
    • “范围”
    • '周长'
    • “质心”
    • '极值'
    • 'PixelIdxList'
    • “凸区域”
    • '填充区域'
    • '像素列表'
    • “凸包”
    • 'FilledImage'
    • “坚固”
    • '凸图像'
    • “图片”
    • 'SubarrayIdx'
    • “偏心”
    • 'MajorAxisLength'
    • '等效直径'
    • 'MinorAxisLength'

    在算法中使用形状的一个重要条件是能够单独选择它们。形状分析对噪声、重叠等非常敏感

    更新

    我发现了一篇在这方面可能很有趣的论文——它是一个只使用形状信息的对象分类器,它可以应用于 Canny 图像——听起来这是你的解决方案

    http://www.vision.ee.ethz.ch/publications/papers/articles/eth_biwi_00664.pdf

    【讨论】:

    • 非常感谢。那很有帮助。我想我将不得不从特征识别转向形状识别。我之前一直在考虑这个问题,但我真的希望只使用 SIFT/SURF 来解决问题,因为来自相机的输入是一个高质量的图像......
    • 您能否提供包含此列表的 matlab 帮助站点的链接?有参数说明吗?什么时候使用它们等等?
    • 这是一个从 blob mathworks.com/help/toolbox/images/ref/regionprops.html 中提取这些参数的函数它不会对任何内容进行分类,但它可以让您了解可以在轮廓中解释什么。由您决定如何根据此信息对形状进行分类。
    • 如果您发布一些示例图片,您将有很好的机会获得更好、更集中的答案。这只是非常一般的建议
    • 这里是我正在处理的图像示例。第一个是对象的可用图像(只是边缘),第二个是用相机拍摄的照片。第二个是一个非常简单的例子,尽管背景可能不是一种颜色(对象可能是场景的一部分)i47.tinypic.com/122kmm9.pngi45.tinypic.com/2ezh3xd.jpg
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2014-11-18
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多