我正在实现立体匹配,并且作为预处理,我正在尝试在没有相机校准的情况下校正图像。我正在使用冲浪检测器来检测和匹配图像上的特征并尝试对齐它们。找到所有匹配项后,我使用以下函数删除所有不在核线上的内容:
[fMatrix, epipolarInliers, status] = estimateFundamentalMatrix(...
matchedPoints1, matchedPoints2, 'Method', 'RANSAC', ...
'NumTrials', 10000, 'DistanceThreshold', 0.1, 'Confidence', 99.99);
inlierPoints1 = matchedPoints1(epipolarInliers, :);
inlierPoints2 = matchedPoints2(epipolarInliers, :);
figure; showMatchedFeatures(I1, I2, inlierPoints1, inlierPoints2);
legend('Inlier points in I1', 'Inlier points in I2');
问题是,如果我用相同的数据运行这个函数,我仍然会得到不同的结果,导致在相同数据上的每次运行中产生的视差图存在差异。在这里您可以看到一些匹配的结果不同:
更新:我认为差异是由 RANSAC 方法引起的,但是使用 LMedS、MSAC,我仍然在相同的数据上得到不同的结果