はじめに
画像の非線形変換である渦巻き(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上にアニメーションを表示できる。
参考
Swirl — skimage 0.25.1 documentation
コメント