与SIFT匹配(概念)

时间:2011-02-07 12:43:49

标签: sift

我有两张现实世界的照片。 (重要)我大致知道一个现实世界到另一个世界的转变。由于纹理问题,我在两个图像之间没有得到足够的匹配。如何通过使用SIFt将转换信息考虑在内以获得更多正确的匹配。 任何想法都会有所帮助。

4 个答案:

答案 0 :(得分:1)

你尝试过其他选择吗?你确定SIFT是答案吗?首先,OpenCV提供SIFT等工具。 (目前,我对OpenCV的评价不够高。)

如果我解决了这个问题,我会先尝试:

  1. 缩小您的两张图片以减少“纹理”的影响,即cvPyrDown。
  2. 执行一些特征检测:边缘检测等.OpenCV提供Harris角点检测器等。谷歌“cvGoodFeaturesToTrack”了解一些细节。
  3. 如果您对转换充满信心,请利用先验信息,并在与转换后的位置相对应的社区中查找要素。
  4. 如果您仍想查看SIFT或SURF,OpenCV也会提供这些功能。

答案 1 :(得分:1)

如果您知道变换,则应用变换,然后将SURF / SIFT应用于变换后的图像。这是在大视角变化中扩展特征描述符/匹配器的稳健性的一种标准方法。

答案 2 :(得分:0)

还有另一种选择:

在筛选参数中,对比度阈值设置为0.04。如果你减少并将其设置为较低(0.02,0.01),SIFT会找到更多匹配的内容:

SIFT(int nfeatures = 0,int nOctaveLayers = 3,double contrastThreshold = 0.04 ,double edgeThreshold = 10,double sigma = 1.6)

答案 3 :(得分:0)

我认为第一步是尝试使用SIFT算法的设置来找到与您的问题相关的最佳效率。

更有效地使用SIFT的另一种方法是将颜色信息添加到SIFT。因此,您可以将描述符中使用的点的颜色信息(RGB)添加到其中。例如,如果您的描述符大小为10x128,则表明您在每个描述符中使用了10个点。现在,您可以提取并添加三列,并使每个点的大小为10x(128 + 3)[R-G-B]。通过这种方式,SIFT算法将更有效。但请记住,您需要对描述符应用权重,并使最后三列比其他128列更强。实际上我不知道你的情况是怎样的。但这种方法对我帮助很大。你可以看到这种修改使SIFT成为比以前更强大的方法。 可以找到类似的实现here