opencv匹配边缘图像 [英] opencv matching edge images

查看:139
本文介绍了opencv匹配边缘图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究该项目,其中一部分是识别相机上记录的对象.因此,更具体一点:

I am working on the project and part of it is to recognize objects recorded on camera. So to be more specific:

  • 我正在使用OpenCV

  • I am using OpenCV

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

I have correctly setup camera and am able to retrieve pictures from it

我已经编译并尝试了OpenCV的许多演示

I have compiled and experimented with number of demos from OpenCV

我需要一个比例和旋转不变的算法进行检测

I need a scale- AND rotation- invariant algorithm for detection

原始对象的图片仅可用作边缘图像

Pictures of original objects are ONLY available as edge-images

到目前为止,我所看到的所有特征检测/提取/匹配算法在处理灰度图像(如照片)时都工作得很好,但是由于我的项目规格,我需要处理边缘图像(有点像canny edge的输出)检测器),通常是BW,仅包含在图像中找到的边缘.在这种情况下,我尝试使用的算法(SURF,SIFT,MSER等)的性能会大大降低.

All feature detection/extraction/matching algorithms I have seen so far are working reasonably well with gray-scale images (like photos), however due to my project specs I need to work with edge images (kinda like output of canny edge detector) which are typically BW and contain only edges found within the image. In this case the performance of algorithms I was trying to use (SURF, SIFT, MSER, etc) decreases dramatically.

因此,实际的问题是:是否有人遇到过专门针对匹配边缘图像的算法,或者是否存在可以提高SIFR/SURF/性能的特定设置?为了更好地处理这种输入.

So the actual question is: Has anyone come across algorithm that would be specific for matching edge images or is there a certain setup that can improve performance of SIFR/SURF/? in order to work well with that kind of input.

我将提供任何建议或指向任何相关资源的链接

I would appretiate any advice or links to any relevant resources

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

PS: this is my first question of stackoverflow

推荐答案

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

Edge images have a problem: The information they contain about the objects of interest is very, very scarce.

因此,可能找不到分类边缘图像的通用算法.但是,如果您的图像简单,清晰且特定,则可以采用多种技术对其进行分类.其中:查找轮廓,然后按形状,区域,定位,跟踪进行选择.

So, a general algorithm to classify edge images is probably not to be found. However, if your images are simple, clear and specific, you can employ a number of techniques to classify them. Among them: find contours, and select by shape, area, positioning, tracking.

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

A good list of shape information (from Matlab help site) includes:

  • 区域"
  • 'EulerNumber'
  • 方向"
  • 边界框"
  • 范围"
  • 周长"
  • 'Centroid'
  • '极值'
  • 'PixelIdxList'
  • 'ConvexArea'
  • 'FilledArea'
  • 'PixelList'
  • 'ConvexHull'
  • 'FilledImage'
  • 固态"
  • 'ConvexImage'
  • 图片"
  • 'SubarrayIdx'
  • 离心率"
  • 'MajorAxisLength'
  • 'EquivDiameter'
  • 'MinorAxisLength'
  • 'Area'
  • 'EulerNumber'
  • 'Orientation'
  • 'BoundingBox'
  • 'Extent'
  • 'Perimeter'
  • 'Centroid'
  • 'Extrema'
  • 'PixelIdxList'
  • 'ConvexArea'
  • 'FilledArea'
  • 'PixelList'
  • 'ConvexHull'
  • 'FilledImage'
  • 'Solidity'
  • 'ConvexImage'
  • 'Image'
  • 'SubarrayIdx'
  • 'Eccentricity'
  • 'MajorAxisLength'
  • 'EquivDiameter'
  • 'MinorAxisLength'

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

An important condition to use shapes in your algorithm is to be able to select them individually. Shape analysis is very sensitive to noise, overlap, etc

更新

我发现了一种在这种情况下可能很有趣的论文-它是仅使用形状信息的对象分类器,并且可以应用于Canny图像上-听起来像是您的解决方案

I found a paper that may be interesting in this context - it is an object classifier that only uses shape information, and it can be applied on Canny images - it sounds like it's your solution

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

这篇关于opencv匹配边缘图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆