我在两个不同图像中的点之间有一组对应关系,我想将它们绘制为连接两个原始图像的图像中的线,以显示这些对应关系。我做了以下事情:
function plotInliers(im1, im2, locs1, locs2, corr, inliers)
l1 = locs1(:, 1:2);
l1 = l1(corr(:, 1), :);
l2 = locs2(:, 1:2);
l2 = l2(corr(:, 2), :);
l2 = l2 + repmat([0 size(im1, 2)], size(l2, 1), 1);
im = horzcat(im1, im2);
figure
imshow(im)
hold on
% plot the correspondences: green inliers, red outliers
for ii = 1:size(corr, 1)
hold on
% Check if it is an inlier
if any(ii==inliers), color = 'g'; else color = 'r'; end
plot([l1(ii, 1) l1(11, 2)], [l2(ii, 1) l2(ii, 2)], ...
'Color', color, 'LineWidth', 1)
end
hold off
end
im1/im2是两个图像,locs1/locs2是图像中的重要点,corr是包含索引之间对应关系的数组。
然而,结果是绝对错误的,从某种意义上说,索引似乎是完全错误的。这两张图片都有这个尺寸:[388 517 3]
我还尝试在图像上绘制一条线
line([1 1], [300 800])
但是,再一次,结果是错误的,从某种意义上说,线条不是从第一张图像的第一个像素开始,也不是在第二张像素上结束。我得到的结果是这条线从(或多或少)像素 [1 300] 开始,这条线笔直向下。谢谢您的帮助