[scikit-image] 87. 画像を回転させる方法(skimage.transform. rotate)

python

はじめに

画像処理において、回転は基本的かつ重要な操作の一つです。本記事では、Pythonの画像処理ライブラリscikit-imageのrotate関数を使って画像を回転させる方法を詳しく解説します。

[scikit-image] 86. EuclideanTransformで画像の中心を原点として回転する(skimage.transform.EuclideanTransform)
skimage.transformのEuclideanTransformでユークリッド変換(剛体変換)により、画像を中心を原点として回転させる方法について説明する。

コード

解説

モジュールのインポートなど

バージョン

画像の読み込み

下記サイトのロケットの画像を用います。

ロケットのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

原点を画像中心として回転

まず、回転角度をrot変数で定義します。transform.rotate(img, rot[i], resize=True)関数を使用して、各角度で画像を回転させます。回転した画像はimgs.append(im)でリストに追加していきます。resize=Trueパラメータにより、回転後の画像が切れないよう自動的にキャンバスサイズが調整されます。

画像の表示

plt.subplots(nrows=2, ncols=3)関数を使用して2行3列のサブプロットを作成し、それぞれに異なる角度で回転させた画像を表示しています。

resize=Falseの場合

resize=Falseの場合、回転後に画像からはみ出した部分は切り取られます。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

scikit-imageのrotate関数は、画像回転に必要な機能を柔軟に提供しています。基本的な回転から高度な設定まで、さまざまなニーズに対応できる強力なツールです。画像処理パイプラインの一部として、または機械学習のデータ拡張として活用することで、より効果的な画像処理が可能になります。

実際の使用にあたっては、回転角度、リサイズの有無、回転中心の設定など、目的に応じたパラメータ調整を行いましょう。また、補間方法やモード設定によって出力画像の品質と処理速度のバランスを取ることができます。

参考

skimage.transform — skimage 0.26.0rc0.dev0 documentation

コメント