3

したい :

  1. 画像(サイズ512x512)を45度回転します。
  2. その上でいくつかの処理を行います。
  3. 画像を-45度回転します。

私の問題は、45度と-45度の回転を適用すると、画像のサイズが変化し、同じにしたいということです。

4

2 に答える 2

2

画像を回転させる通常の手順は、画像を拡大し、画像を回転して縮小することです。このようにして、回転したときに表示される暗い余白を回避できます。

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');
于 2012-11-29T05:28:44.473 に答える
1

あなたはそれをすることはできません。それは意味がありません。簡単な実験:

  1. 正方形の紙を手に入れ、白い壁にかざします
  2. 壁に正方形の境界線を描く
  3. 一枚の紙を45度回転させます
  4. 回転した紙を囲む壁に別の正方形を描きます
  5. 一枚の紙を壁から取り出して、なぜそれができないのかを観察してください
  6. 忘れないように壁に跡を残してください
于 2012-11-29T04:59:05.147 に答える