はじめに
この記事では、matplotlibのFuncAnimationを使用して、2つの画像間をスムーズに切り替えるクロスディゾルブアニメーションの作成方法について解説します。Pythonでのアニメーション表現を学ぶ上で役立つ実践的な例を紹介します。
コード&解説
モジュールのインポート
バージョン
画像の読み込み
すみれ丸と兜丸の画像を読み込む。サイズはともに(800, 800, 3)となっています。
画像を表示
読み込んだ画像を表示すると、以下のようになります。

透明度用配列の作成
透明度用の配列として1から0へ変化する2D配列(alpha_a)を作成します。alpha_aはalpha_bを反転させたものとなります。各配列のサイズは(800, 800, 40)です。
クロスディゾルブアニメーションの表示
アニメーション関数内では、ax.imshowでプロットしたim1に対してset_dataメソッドを適用することで画像アニメーションを生成します。set_dataに渡すデータはnp.dstack((img1,alpha_a[:,:,i:i+1]))のように、画像と透明度の配列を結合させることで、滑らかなクロスディゾルブ効果を実現します。
まとめ
matplotlibのFuncAnimationを活用することで、2つの画像間のクロスディゾルブアニメーションを簡単に実装できることを紹介しました。この技術は、プレゼンテーションやデータビジュアライゼーションにおいて、視覚的に魅力的な効果を生み出すのに役立ちます。Pythonの画像処理とアニメーション機能を組み合わせることで、さまざまな創造的な表現が可能になります。
参考

[matplotlib] 114. 画像のアルファブレンド
matplotlib を使った画像のアルファブレンド技術について解説。複数の画像を透明度調整して重ね合わせる方法、imshow 関数の活用法、効果的な視覚化のためのパラメータ設定など、データ可視化に役立つテクニックを紹介します。
matplotlib.animation.FuncAnimation — Matplotlib 3.10.6 documentation
コメント