我有两个图像sourceImg,refImg。
我提取了这样的特征:
cv::GoodFeaturesToTrackDetector detector;
std::vector<cv::KeyPoint> sourceKeyPoints, refKeyPoints;
detector.detect(sourceImg, sourceKeyPoints);
detector.detect(refImg, refKeyPoints);
我想找到一个对象从refImg到sourceImg的翻译。没有旋转或透视变化,只有简单的二维平移。可能有一些噪音。
当两个集合都提取了相同数量的特征时,findHomography()可以很好地处理噪声。
我的问题是,当功能的数量不同时,我该怎么办?
有人能为我指出描述符提取器和匹配的正确方向吗?
注:由于专利原因,我不能使用SURF/SIFT。
您可以尝试OpenCV中的FlannBasedMatcher
类。使用它来匹配描述符(任何类型),然后使用最佳匹配来找到你的单应性。