OpenCV—刚体点克隆的平移查找

OpenCV—刚体点克隆的平移查找,opencv,Opencv,我有两张图片,分别是sourceImg和refImg 我提取了如下特征: cv::GoodFeaturesToTrackDetector detector; std::vector<cv::KeyPoint> sourceKeyPoints, refKeyPoints; detector.detect(sourceImg, sourceKeyPoints); detector.detect(refImg, refKeyPoints); cv::跟踪检测器的良好特性; std::矢量

我有两张图片,分别是sourceImg和refImg

我提取了如下特征:

cv::GoodFeaturesToTrackDetector detector;
std::vector<cv::KeyPoint> sourceKeyPoints, refKeyPoints;
detector.detect(sourceImg, sourceKeyPoints);
detector.detect(refImg, refKeyPoints);
cv::跟踪检测器的良好特性;
std::矢量源关键点,参考关键点;
检测器。检测(源img、源关键点);
检测器。检测(refImg、refKeyPoints);
我想找到对象从refImg到sourceImg的转换。没有旋转或透视变化,只有简单的二维平移。可能有一些噪音

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

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

有人能告诉我关于描述符和匹配的正确方向吗


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

您可以从中尝试
FlannBasedMatcher
类。使用此选项匹配描述符(任何类型),然后使用最佳匹配查找您的单应性。

这很有用,谢谢。对于哪些特征提取器最适合使用哪些描述符,有什么指导原则吗?@BillWilliamson特征检测/提取方法通常与描述符计算方法相关,因此我建议您使用任何给定提取器的相应描述符(即,在使用SIFT检测器选择的特征处计算SIFT描述符)。或者,如果您想询问每个描述符使用哪种匹配技术,很遗憾,我无法帮助您。