[matplotlib animation] 45. skimage.transform.swirlのradius変化アニメーション

matplotlib Animation

はじめに

画像の非線形変換である渦巻き(skimage.transform.swirl)のパラメータ(radius)を変化させたときの画像の変化をmatplotlib FuncAnimationのアニメーションで表示する。
radiusを増加させることで、旋回の及ぶ範囲が拡大していくことが確認できる。

コード

解説

モジュールのインポート

バージョン

画像の読み込み

読み込んだ画像をimshowで表示すると下のようになる。

渦巻画像の作成

radiusを変化させた渦巻画像を作成し、リストに入れてゆく。

[scikit-image] 24. 画像の非線形変換(渦巻き模様:transform.swirl)
ここでは、skimage.transformのswirlを用いた画像の非線形変換(渦巻き)について説明する。

アニメーションの設定

逐次、現在の画像を消して新しい画像を表示するという方法でアニメーション表示をするので、ax.cla()により、古い画像を消す。

ax.imshow(swirled_imgs[num])で渦巻画像を順次表示していき、タイトルに変化するradiusの値を表示する。

アニメーションの表示

40stepアニメーション関数を実行して、250 ms間隔で順次図をかえていくので、10 secのアニメーションとなる。
HTML(ani.to_html5_video())とすればjupyter notebook, lab上にアニメーションを表示できる。

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

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

参考

Swirl — skimage v0.19.2 docs

コメント