MATLAB:改变 2 个图像的蒙太奇方向

MATLAB: changing montage orientation of 2 images

我正在尝试使用 MATLAB 打开仅包含顶部和底部的两张图像的蒙太奇。 MATLAB 默认为 left/right 方向。我试过 montage(images, 'Size', [2 1]) 但这仍然给我 left/right 方向,只是在下面添加了一个空白行。

montage 默认为您提供 left/right 蒙太奇,您无法更改。如果要将图像堆叠在一起,假设图像大小相同,请使用 cat。假设您的图片名为 AB,只需这样做:

C = cat(1, A, B);
imshow(C);

但是,如果您的图像 大小不同,那么我们可以做的是确保列大小相同,创建新图像以对列进行 zeropad 和然后将它们堆叠在一起。假设 AB 的通道数相同:

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);

前四行决定了每个图像的行和列。接下来我们创建一个空白图像,其中行数只是两个图像的总和,但列数是两个图像的 larger。这是为了适应列中最大尺寸的图像。我们还确保我们将输出转换为与 A 相同的 class(或假设类型相同的 B)。完成后,您只需将第一张图片放在 C 的顶部,然后将第二张图片放在 C 的底部,偏移 rows1([= 的行数14=]).