我正在尝试在图像和图像所在的场景之间实现模式匹配。我遇到了一些不包含角的图像的问题,因为SURF无法找到关键点。
有人知道在没有角的图像中检索关键点的任何算法或方法吗?换句话说:当这个图像不包含角落时,我如何在另一个图像中找到一个图像?
我正在使用 Matlab。先感谢您,
我正在尝试在图像和图像所在的场景之间实现模式匹配。我遇到了一些不包含角的图像的问题,因为SURF无法找到关键点。
有人知道在没有角的图像中检索关键点的任何算法或方法吗?换句话说:当这个图像不包含角落时,我如何在另一个图像中找到一个图像?
我正在使用 Matlab。先感谢您,
Matlab 中的计算机视觉系统工具箱包括特征检测、提取和匹配。除角点特征外,还包括有向梯度的线、边、直方图。工具箱中还有一个关于点特征匹配的示例(名称称为角点,但实际上不是)。
如果您追求最简单的算法,您基本上可以尝试仅使用图像边缘(而不是角落)的 Genaralized Hough 变换。
对于真正无纹理的对象,以下内容可能会指导您:
1)如果你愿意使用 kinect 之类的 RGBD 相机,Hinterstoisser 已经提出了一个非常好的算法来做到这一点:
http://cvlabwww.epfl.ch/~lepetit/papers/hinterstoisser_pami11.pdf
2)如果没有,您可以使用 BOLD 功能(线束检测器)。这将假设您的模板由线要素组成,而不是角。这篇论文读起来也很舒服:
http://vision.deis.unibo.it/fede/papers/iccv13_pre.pdf
请注意,我提供的论文是在 LineMod(或 Line2D)之后发表的,它已经在 OpenCV 中: http ://ar.in.tum.de/pub/hinterstoisser2011linemod/hinterstoisser2011linemod.pdf
这取决于哪些类型的功能对您有用。如果角落没有用/没有特色,你应该去别处看看。例如,可能类似于 blob 的功能将适合您的需要。查看关于特征检测器的维基百科文章http://en.wikipedia.org/wiki/Feature_detection_(computer_vision)。这是一个很好的起点,可以让您了解什么是组和假设。如今,有许多工具箱集成了许多这些算法。例如,最近的 MATLAB 版本已经包含用于计算机视觉的工具箱。