C言語による画像処理入門:画像の反転と回転

画像の反転と回転

入力された画像を・左右反転・上下反転・回転します。

元画像
左右反転した画像
上下反転した画像
反時計回りに90度回転した画像

 原理方法

(1)main.c の適当なところに下記を追加
    printf("8. 画像の左右反転\n");
    printf("9. 画像の上下反転\n");
    printf("10. 画像の回転\n");

(2)main.c の switch(select) 関数に下記を追加
 // 画像の左右反転
 case 8 :
  printf("画像の左右反転\n");
  hreversing(image); // 画像を左右反転する処理
  break;
 // 画像の上下反転
 case 9 :
  printf("画像の上下反転\n");
  vreversing(image); // 画像を上下反転する処理
  break;
 // 画像の回転
 case 10 :
  printf("画像の回転\n");
  rotate(image); // 画像を回転する処理(90°固定)
  break;

(3)image.c に void hreversing( Image image) 関数を追加
     void hreversing()

(4)image.c に void vreversing( Image image) 関数を追加
     void vreversing()

(5)image.c に void rotate( Image image) 関数を追加
     void rotate()




課題:

(1)元画像から下記のような画像を生成してください。
 

(2)元画像から下記のような中心に配置された画像を生成してください。
 

(3)入力した画像を下記のように、時計回りに90°回転してください。
 

(4)発展課題:元画像の中心に、任意の外部入力角度を回転してください。
  下の例は時計回り30度を回転した結果である(画像の解像度や縦横比の変更は無)。
 
元画像
時計回り30度回転した画像