はじめに
skimage.transformのrotateで画像を中心を原点として回転させる方法について説明する。なお、ユークリッド変換による方法は下記記事で解説した。
![](https://sabopy.com/wp/wp-content/uploads/2020/05/Euclideantrans_rot_centre-160x90.jpg)
[scikit-image] 86. EuclideanTransformで画像の中心を原点として回転する(skimage.transform.EuclideanTransform)
skimage.transformのEuclideanTransformでユークリッド変換(剛体変換)により、画像を中心を原点として回転させる方法について説明する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2020/06/space_rockets.jpg)
解説
モジュールのインポートなど
バージョン
画像の読み込み
下記サイトのロケットの画像を用いる。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTniQJxjCYr0zX9RW5qZVYQKBzKCXh1Tfd5w5I6p2cnuYUcek6wbP71JUdepQ1rFwp48VGurGWtBsIm7PF2WhNpTGjpg3uWnmZX1xe7NzlTapN0IPkzEgAzwn1KMlM2N3djqEnf500fwg/s400/space_rocket.png)
ロケットのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
![](https://sabopy.com/wp/wp-content/uploads/2020/06/space_rocket.jpg)
原点を画像中心として回転
回転角をrotで定義する。
im = transform.rotate(img, rot[i],resize=True)でそれぞれの回転角で画像を回転し、
imgs.append(im)で画像データをリストに加える。
resize=Trueとすることで画像がはみ出すことがないようにサイズ調整がされる。
画像の表示
fig, ax = plt.subplots(nrows=2,ncols=3)で2行3列のグラフを作成して、それぞれの角度で回転した画像を表示する。
![](https://sabopy.com/wp/wp-content/uploads/2020/06/space_rockets.jpg)
resize=Falseの場合
resize=Falseの場合、回転してはみ出した部分は欠損することになる。
![](https://sabopy.com/wp/wp-content/uploads/2020/06/space_rockets_noresize.jpg)
参考
skimage.transform — skimage 0.24.1rc0.dev0 documentation
コメント