我有两张现实世界的照片。 (重要)我大致知道一个现实世界到另一个世界的转变。由于纹理问题,我在两个图像之间没有得到足够的匹配。如何通过使用SIFt将转换信息考虑在内以获得更多正确的匹配。 任何想法都会有所帮助。
答案 0 :(得分:1)
你尝试过其他选择吗?你确定SIFT是答案吗?首先,OpenCV提供SIFT等工具。 (目前,我对OpenCV的评价不够高。)
如果我解决了这个问题,我会先尝试:
如果您仍想查看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。