您可以尝试用零填充较小的图像,使其具有与较大图像相同的尺寸。例如
%Start with rows:
if size(I1,1) > size(I2,1) %I1 has more rows so pad I2
pad = zeros (size(I1,1) - size(I2,1), size(I2,2));
I2 = [I2 ; pad]; %Append the rows of zeros to the bottom of I2
else %I2 has more rows so pad I1
pad = zeros (size(I2,1) - size(I1,1), size(I1,2));
I1 = [I1 ; pad]; %Append the rows of zeros to the bottom of I1
%Pad the columns
if size(I1,2) > size(I2,2) %I1 has more rows so pad I2
pad = zeros (size(I2,1), size(I1,2) - size(I2,2));
I2 = [I2 , pad]; %Append the columns of zeros to the left of I2
else %I2 has more rows so pad I1
pad = zeros (size(I1,1), size(I2,2) - size(I1,2));
I1 = [I1 , pad]; %Append the columns of zeros to the left of I1
我还没有测试过,所以你可能需要摆弄一下才能得到完美的尺寸,比如 size(I2,2) - size(I1,2) + 1 而不是 size(I2,2) - size(I1 ,2),诸如此类。
但是您需要首先弄清楚您正在尝试做的事情的逻辑。在您的应用程序中使用零填充可能没有意义。我的代码垫也在底部和左侧,但您可能想要一直填充,以便您的图像位于新图像的中心。