MATLABで画像を回転する方法
方法
imrotate(I,angle,method,bbox)
I
: 回転する画像だ。angle
: 回転角度で、単位は度だ。method
: 補間方法だ。’nearest’, ‘bilinear’, ‘bicubic’がある。何も入力しない場合は’nearet’が適用される。
X = phantom('Modified Shepp-Logan',64);
figure()
imagesc(X)
title('X')
Y1=imrotate(X,30,'nearest','crop');
Y2=imrotate(X,30,'bilinear','crop');
Y3=imrotate(X,30,'bicubic','crop');
figure()
subplot(1,3,1)
imagesc(Y1)
title('Y1 - nearest')
subplot(1,3,2)
imagesc(Y2)
title('Y2 - bilinear')
subplot(1,3,3)
imagesc(Y3)
title('Y3 - bicubic')
bbox
: 出力画像のサイズを指定する。’loose’は、回転した画像で元のサイズを超える部分まで出力されるように出力画像のサイズを大きくする。‘crop’は、最初の画像のサイズに合わせて回転した画像を切り取って出力する。何も入力しない場合は’loose’が適用される。
X = phantom('Modified Shepp-Logan',64);
figure()
imagesc(X)
title('X - 64*64')
Y1=imrotate(X,30,'nearest','loose');
Y2=imrotate(X,30,'nearest','crop');
figure()
subplot(1,2,1)
imagesc(Y1)
title('Y1 - loose 88*88')
subplot(1,2,2)
imagesc(Y2)
title('Y2 - crop 64*64')