2017-03-31 79 views
1

我已经阅读了很多关于使用SIFT和蛮力匹配如thisthis将图像与多个图像进行匹配的问题。 是否可以做多种一对一的匹配?我想要做的是以下几点。从SIFT BF-Match的多个图像中找到最匹配的图像

  1. 通过查询图像循环中的一个目录
  2. 每个图像提取SIFT关键点和描述符
  3. (与SIFT再次)做一个匹配每列车/模板图像
  4. 得到模板图像(例如最小欧几里德距离?)
  5. 使用此最佳模板图像并计算此模板图像和当前查询图像之间的仿射变换。

直到现在,我成功了,直到第3步,并坚持在那一点。

我使用的是Opencv 2.7.12和python 2.7。由于此版本中没有drawMatches,因此我正在使用此实现。 https://stackoverflow.com/a/26227854/6677891

+0

你可以在你从BF-比赛获得比赛运行RANSAC,从[这里]测试单应矩阵的有效性(http://stackoverflow.com/questions/14954220/how-to-check-if-obtain-homography-matrix-is-good)或[here](http://stackoverflow.com/questions/42505299/finding-if-two-images-are-similar/42515173# 42515173)并进行转换。当然,欧几里德也应该工作。我有点不明白你为什么被卡住 –

+0

@RickM。是的,我可以解决它。谢谢。 – gaya

+0

我的解决方案有帮助吗? –

回答

0

第1步:对您从BF-Match获得的匹配运行RANSAC。

步骤2:测试单应性矩阵的有效性/善等here

步骤3:如果所述单应性矩阵是好的,transform

Ofcourse欧几里德应太