0

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

4

1 回答 1

0

montage默认为您提供左/右蒙太奇,您无法更改。如果要将图像堆叠在一起,假设图像大小相同,请使用cat. 假设您的图像被调用Aand B,只需执行以下操作:

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

但是,如果您的图像大小不同,那么我们可以做的是确保列大小相同,创建新图像以对列进行零填充,然后将它们堆叠在一起。假设两者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);

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

于 2015-05-26T16:33:13.630 回答