0

我有 2 个图像 sourceImg,refImg。

我已经提取了这样的特征:

cv::GoodFeaturesToTrackDetector detector;
std::vector<cv::KeyPoint> sourceKeyPoints, refKeyPoints;
detector.detect(sourceImg, sourceKeyPoints);
detector.detect(refImg, refKeyPoints);

我想找到一个对象从 refImg 到 sourceImg 的翻译。没有旋转或透视变化,只有简单的二维平移。可能会有一些噪音。

当两个集合提取的特征数量相同时,findHomography() 可以正常工作,甚至可以很好地处理噪声。

我的问题是,当功能数量不同时我该怎么办?

有人可以为我指出关于 DescriptorExtractor 和匹配的正确方向吗?

注意:出于专利原因,我不能使用 SURF/SIFT。

4

1 回答 1

0

你可以试试OpenCVFlannBasedMatcher的课程。使用它来匹配描述符(任何类型),然后使用最佳匹配来查找您的单应性。

于 2013-02-21T20:53:10.003 回答