匹配边缘图像的OpenCV

3

我正在开发一个项目,其中一部分是识别摄像头拍摄的物体。更具体地说:

  • 我正在使用OpenCV

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

  • 我编译并尝试了许多来自OpenCV的演示程序

  • 我需要一种旋转和尺度不变的检测算法

  • 原始对象的图像仅以边缘图像的形式提供

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

所以实际问题是:是否有人遇到过针对匹配边缘图像的特定算法,或者是否有某种设置可以改善SIFR/SURF/等算法的性能,以便能够很好地处理这种输入。

我将非常感激任何建议或任何相关资源的链接

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

1个回答

1

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

因此,可能找不到一般性的算法来对边缘图像进行分类。然而,如果您的图像是简单、清晰和具体的,您可以采用许多技术来对它们进行分类。其中包括:查找轮廓,并按形状、面积、位置、跟踪进行选择。

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

  • 'Area'
  • 'EulerNumber'
  • 'Orientation'
  • 'BoundingBox'
  • 'Extent'
  • 'Perimeter'
  • '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


非常感谢,这很有帮助。我认为我将不得不从特征识别转向形状识别。我之前一直在考虑这个问题,但真的希望只使用SIFT / SURF解决问题,因为相机输入是高质量的图像... - Art Gertner
你可以提供 MATLAB 帮助文档的链接吗?其中包括这个列表吗?有关参数的描述是什么?何时使用它们等等? - krzych
1
这是一个从blob中提取参数的函数http://www.mathworks.com/help/toolbox/images/ref/regionprops.html。它不会对任何东西进行分类,但它可以让你了解轮廓中可以解释的内容。根据这些信息,你需要自己找到如何对形状进行分类的方法。 - Sam
如果您发布一些示例图像,您有很大的机会获得更好、更专注的答案。这只是非常一般的建议。 - Sam
这是我正在处理的图像示例。第一个是对象的可用图像(仅边缘),第二个是使用相机拍摄的它的照片。第二个是相当简单的例子,尽管背景可能不是单一颜色(对象可能是场景的一部分)。 http://i47.tinypic.com/122kmm9.png http://i45.tinypic.com/2ezh3xd.jpg - Art Gertner
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接