したい :
- 画像(サイズ512x512)を45度回転します。
- その上でいくつかの処理を行います。
- 画像を-45度回転します。
私の問題は、45度と-45度の回転を適用すると、画像のサイズが変化し、同じにしたいということです。
したい :
私の問題は、45度と-45度の回転を適用すると、画像のサイズが変化し、同じにしたいということです。
画像を回転させる通常の手順は、画像を拡大し、画像を回転して縮小することです。このようにして、回転したときに表示される暗い余白を回避できます。
Matlabはこのプロセスを自動的に実行します。したがって、画像に特定の寸法が必要な場合は、画像を回転させた後、画像の適切な領域を選択する必要があります。
画像を回転させ、元の画像と同じ寸法を維持したい場合は、次のようにします。
img = imread('image.png');
r = numel(img(:,1));
c = numel(img(:,2));
nimg = imrotate(img, 45);
nimg = imrotate(nimg, 45);
n_R = numel(nimg(:,1));
n_C = numel(nimg(:,2));
n_R = n_R+mod(n_R, 2); %to avoid dimensions being in double datatype
n_C = n_C+mod(n_C, 2);
oimg = nimg(((n_R/2)-(r/2)):((n_R/2)+(r/2)), ((n_C/2)-(c/2)):((n_C/2)+(c/2)),:);
imwrite(oimg, 'rot_image.png');
あなたはそれをすることはできません。それは意味がありません。簡単な実験: