我正在尝试使用(C++)OpenCv筛选特征提取。我需要使用SIFT提取特征,将它们在原始图像(例如书)和场景之间匹配,然后计算摄像机姿态。筛选提取 - opencv
到目前为止,我发现使用SURF的this algorithm。有谁知道我可以从哪里开始使用的基本代码,或者可能是将SURF链接中的算法转换为SIFT的方法?
在此先感谢。
编辑: 好吧,我找出了一个筛选问题的解决方案。现在我正在试图确定相机的姿势。我试图使用:solvePnP,任何人都可以帮助我一个例子吗?
我正在尝试使用(C++)OpenCv筛选特征提取。我需要使用SIFT提取特征,将它们在原始图像(例如书)和场景之间匹配,然后计算摄像机姿态。筛选提取 - opencv
到目前为止,我发现使用SURF的this algorithm。有谁知道我可以从哪里开始使用的基本代码,或者可能是将SURF链接中的算法转换为SIFT的方法?
在此先感谢。
编辑: 好吧,我找出了一个筛选问题的解决方案。现在我正在试图确定相机的姿势。我试图使用:solvePnP,任何人都可以帮助我一个例子吗?
查看新的OpenCV文档网站的feature2d tutorial section。 有代码显示的教程:
如果你设法找到了图像和场景之间的匹配,那么我建议你申请简历:: findHomography()。它将使用4个匹配作为输入来计算单应性矩阵。
您可以直接从单应矩阵转换为相机姿态。
对于使用SIFT而不是SURF,我将SurfFeatureDetector
更改为SiftFeatureDetector
和SurfDescriptorExtractor
至SiftDescriptorExtractor
。对于某些图像,我发现组合SURF检测器< - > SIFT描述符会产生相对准确的结果,但您应该根据您的要求尝试其他组合(FAST检测器 - FREAK描述符或ORB检测器 - BRISK描述符)。
请按照本教程为解决你的问题的一部分单应: Feature Matching and Homography
而且,也许这将帮助:Pose Estimation
谢谢,但这样的例子是SURF。我需要SIFT,或者将SURF算法转换为SIFT。 – Filipe 2012-07-07 20:07:03