はじめに
画像を上から下に順次表示していくアニメーションを作成する方法について説明する。
解説
モジュールのインポートなど
バージョン
画像データの読み込み
サイズが(614, 614, 3)のRGB画像を読み込む。読み込んだ画像をimshowで表示すると以下のようになる。
画像の低解像度化
pyramid_gaussianで画像の低解像度化を行う。pyramid_gaussianの詳しい使用法については下記記事で解説した。
[scikit-image] 25. 一定倍率で縮小された連続画像を生成(transform.pyramid_gaussian)
ここでは、skimage.transformのpyramid_gaussianによる一定倍率で縮小された連続画像の生成方法について説明する。
アニメーション(size = 20×20)の場合
画像の準備
画像として低解像度化したpyramid[5](size = 20×20)を用いる。
順次表示するためのデータを準備
RGBの各配列を1次元化し、配列の1部をnp.nanとした画像データを作成し、リストへ入れていく。
RGB画像の再構築
RGB配列を結合して一つにする。
アニメーションを表示
update関数内で、RGB配列を読み込み、reshapeで2次元形式にしたのちに、set_dataでデータをセットし、画像を表示する。
アニメーション(size = 39×39)の場合
画像のサイズを変えた場合は以下のようになる。
アニメーション(size = 77×77)の場合
アニメーション(size = 154×154)の場合
コードをダウンロード(.pyファイル)
コードをダウンロード(.ipynbファイル)
参考
Module: transform.pyramids — skimage v0.8.0 docs
matplotlib.animation.FuncAnimation — Matplotlib 3.9.3 documentation
matplotlib.pyplot.imshow — Matplotlib 3.9.2 documentation
コメント