我需要在Matlab中加入两个图像。两个二进制图像是左右图像,其间有一些重叠,我需要在Matlab中合并它们以制作单个图像(就像全景图像除了图像只是2D线条图并且没有噪声,例如重叠区域是完全相同)。
因此,如果我想从两个图像中找到公共列,然后创建一个新图像,如
new_image = [left_image(excluding-the-common-columns) right_image]
然后只是绘制它。
我试图使用' intersect'方法,但到目前为止我所取得的只是找到共同的元素,而不是常见的列。
如何在这些图像中找到常用列?
答案 0 :(得分:1)
您可以使用ismember()
查找两个阵列共有的行。只需转置矩阵即可获得相同的列功能。像这样:
im = imread('forest.tif');
left = im(:, 1:300);
right = im(:, 200:end);
a = ismember(left', right', 'rows');
first_common_index = find(a, 1);
joined = [left(:, 1:first_common_index), right];
然后做
figure
subplot(2,2,1);
imshow(left, []);
title('Left')
subplot(2,2,2);
imshow(right, []);
title('Right')
subplot(2,2,[3,4]);
imshow(joined, []);
title('Joined')
给出