我正在尝试使用 MATLAB 打开仅包含顶部和底部的两个图像的蒙太奇。MATLAB 默认为左/右方向。我已经尝试过 montage(images, 'Size', [2 1]) 但这仍然给了我左/右方向,但只是在下面添加了一个空白行。
问问题
100 次
1 回答
0
montage
默认为您提供左/右蒙太奇,您无法更改。如果要将图像堆叠在一起,假设图像大小相同,请使用cat
. 假设您的图像被调用A
and B
,只需执行以下操作:
C = cat(1, A, B);
imshow(C);
但是,如果您的图像大小不同,那么我们可以做的是确保列大小相同,创建新图像以对列进行零填充,然后将它们堆叠在一起。假设两者A
和B
具有相同数量的通道:
rows1 = size(A, 1);
cols1 = size(A, 2);
rows2 = size(B, 1);
cols2 = size(B, 2);
C = zeros(rows1 + rows2, max(cols1, cols2), size(A, 3), class(A));
C(1:rows1, 1:cols1, :) = A;
C(rows1+1:end, 1:cols2, :) = B;
imshow(C);
前四行确定每个图像的行和列。接下来我们创建一个空白图像,其中行数只是两个图像的总和,但列数是两个图像中较大的一个。这是为了适应列中最大尺寸的图像。我们还确保将输出转换为与A
(或B
假设相同类型)相同的类。完成后,您只需将第一张图像放在 的顶部C
,然后将第二张图像放在C
偏移rows1
量( 的行数A
)的底部。
于 2015-05-26T16:33:13.630 回答