我有一个要搜索沿其边缘的曲线的目标图像和一个包含该曲线的模板图像。我需要实现的是在目标图像中找到模板图像中的曲线的最佳匹配,并根据分数来判断是否匹配。这还包括曲线的旋转和大小调整。目标图像可以是 Canny Edge 检测器的输出(如果这能让事情变得更容易的话)。
我正在考虑使用OpenCV(通过使用Python或Processing/Java,或者如果这些功能对所需功能的访问有限,则使用C)来使事情变得实用和高效,但是不知道我是否可以使用任何功能(或它们的组合)在 OpenCV 中可用于完成这项工作。我一直在阅读 OpenCV 文档,起初认为 Contours 可以完成这项工作,但是所有示例都显示闭合形状,而不是我需要将开放曲线与边缘的一部分匹配的情况。
那么有没有办法通过使用 OpenCV 或您建议的任何已知代码或算法来做到这一点?
下面是一些图片来说明问题:
我的第一个想法是广义霍夫变换 http://en.wikipedia.org/wiki/Generalised_Hough_transform。但是我不知道有什么好的实现方法。
我会首先在精明边缘图像上尝试 SIFT 或 SURF。它通常用于查找 2d 区域,而不是 1d 轮廓,但如果您采用轮廓周围的最小边界框并将其用作搜索模式,它应该可以工作。
OpenCV 有一个实现:Features2D + 单应性查找已知对象 http://opencv.itseez.com/doc/tutorials/features2d/feature_homography/feature_homography.html#feature-homography
一个问题可能是获得良好的边缘图像,后面的那些黑色形状可能会分散注意力。
另请参阅 Stackoverflow 的回答:图像处理:“可口可乐罐”识别的算法改进 https://stackoverflow.com/q/10168686/145999
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)