今回のテーマ
みなさん、こんにちは!
デジタルステーション習志野スタッフの小島です。
今日は画像を回転させる方法を紹介をしたいと思います。
回転させる
Pythonで画像データは多次元配列で管理されます。
具体的には画像の縦横と1画素のRGB情報(実際のデータの並びはBGR)の3次元配列で画像を管理しています。
画像の回転とは、この各要素の位置を移動させることを指します。
OpenCV
OpenCVには画像を回転、せん断変形、拡大縮小、移動させることができる関数があります。
それが、warpAffine関数です。
この関数は画像のような配列に対して線形変換を行う行列計算をした結果を返すものです。
今回はこのwarpAffine関数を用いて画像を回転させる方法も説明します。
Pillow
Pillow(Python Imaging Library)はPythonでの基本的な画像操作のみを対象としたライブラリです。
回転やトリミングなどのシンプルな操作だけしかしないような、場面ではPillowでも充分だったりします。
Pillowで画像を回転させるためにはrotate関数を使えば簡単に回転させることができます。
プログラム
OpenCV
warpAffin関数では回転させる角度の情報をもった回転行列が必要です。
その場合には三角関数を用いて以下のようにするか、角度から回転行列を導出してくれるgetAffineTransform関数を使うと便利です。
出力は次のようになります。
Pillow
Pillowでは次のようにするだけで画像を回転させることができます。
出力は次のようになります。
まとめ
今日は画像の回転について簡単に紹介しました。
既存の関数には便利なものが沢山あります。
ですが、手当たり次第に目的に合っているという理由だけで、関数を使っているとしなくてもいい処理をしてしまう場合もあります。
適宜、必要な処理を見定めながら関数を使っていきましょう。
調べてみよう!
回転以外のアフィン変換
warpAffin関数は回転以外の操作もできると紹介しました。
どのような操作ができるのか調べてみよう。
デジタルステーション習志野
〒274-0063 船橋市習志野台4-1-7 習志野駅前郵便局2F