opencv匹配边缘图像

时间:2012-07-20 11:52:13

标签: opencv image-recognition edge-detection

我正在研究这个项目,其中一部分是识别摄像机上记录的物体。所以更具有特异性:

  • 我正在使用OpenCV

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

  • 我已经编译并试验了一些来自OpenCV

  • 的演示
  • 我需要一个用于检测的尺度和旋转不变算法

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

到目前为止我见过的所有特征检测/提取/匹配算法都能很好地处理灰度图像(如照片),但是由于我的项目规格,我需要处理边缘图像(有点像canny edge的输出)检测器)通常是BW并且仅包含在图像内发现的边缘。在这种情况下,我试图使用的算法(SURF,SIFT,MSER等)的性能显着下降。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

良好的形状信息列表(来自Matlab帮助网站)包括:

  • 'Area'
  • 'EulerNumber'
  • 'Orientation'
  • '的BoundingBox'
  • 'Extent'
  • '周边'
  • 'Centroid'
  • 'Extrema'
  • 'PixelIdxList'
  • 'ConvexArea'
  • 'FilledArea'
  • 'PixelList'
  • 'ConvexHull'
  • 'FilledImage'
  • 'Solidity'
  • 'ConvexImage'
  • 'Image'
  • 'SubarrayIdx'
  • 'Eccentricity'
  • 'MajorAxisLength'
  • 'EquivDiameter'
  • 'MinorAxisLength'

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

<强>更新

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

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