小さな画像にゼロを付けて、大きな画像と同じ寸法になるようにすることができます。例えば
%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)、そのようなもの。
しかし、まず自分がしようとしていることの論理を理解する必要があります。あなたのアプリケーションでゼロで埋めても意味がないかもしれません。また、私のコードパッドは下部と左にありますが、あなたのイメージが新しいイメージの中心にくるように、パッドをしっかりとしたいかもしれません。
出典
2012-04-17 07:11:25
Dan
+1。他の選択肢は、より大きな画像をより小さな画像のサイズに切り出すことである。 –
ええ、作付けは可能ですが、情報が失われている可能性は低いです。しかし、他のオプションがあります。たとえば、パディングは0にはなりません。画像をエッジや他の形の外挿に反映させるかもしれません。しかし、それは完全に文脈上のものです。 – Dan
画像処理ツールボックスでは、代わりに 'padarray'を使うことができます。 – Jonas