您可以尝试用零填充较小的图像,使其与较大的图像具有相同的尺寸。例如

%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我没有测试过,所以你可能需要调整一下才能使尺寸完美,比如尺寸(I2,2) - 尺寸(I1,2)+ 1而不是尺寸(I2,2) - 尺寸(I1) ,2),那种事。

但是你需要首先弄清楚你想要做的事情的逻辑。使用零填充可能在您的应用程序中没有意义。此外,我的代码填充在底部和左侧,但您可能想要一直填充,以便您的图像位于新图像的中心。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐