我正在实现立体匹配算法,作为预处理,我尝试在没有相机标定的情况下进行图像校正。 我使用surf检测器检测和匹配图像上的特征,并尝试对齐它们。之后,我找到所有匹配点,并使用以下函数删除不在极线上的点:
[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');
问题在于,如果我使用相同的数据运行此函数,仍然会得到不同的结果,在相同数据上每次运行都会导致结果偏差图中的差异。 预计匹配点仍然相同,但是内点在每次运行中都有所不同。 在此处您可以看到一些匹配结果不同的情况:
rnd('default')
。 - chappjc