エクセルVBAで画像処理

posted in: Processing | 0

画像処理ソフトとして広く知られているのはProcessingですが、実はエクセルを用いることによっても画像処理を行うことができます!

この方法につきましては、以下のYouTube動画で解説しました

本記事ではこの方法のエッセンスについて軽く解説します

画像処理のステップとしては

 ①グラフの描画

 ②VBAによる時間の進行処理と、これに伴うグラフの描画更新

の2つがあります。

さらに、①のグラフの描画を行うためには

 (i) 座標の指定

 (ii) 任意の関数の結果出力

 (iii) 描画条件の設定

が必要となります。このうち(i)については、描画範囲となるセルに対し、例えば原点であれば”(0,0)”といった座標を記述し指定します。

(ii)と(iii)については、例えばsinカーブを得たい場合であれば、sin関数の出力結果に加え、その結果と座標の値を比較したうえでこれらの値が十分に一致するようであれば描画を適用する、といった仕組みを設定する必要があります。

これについてはセルの”条件付き書式設定”から行うことができます。

以下では、例としてsinカーブと円状の波形が時間発展していく様子をエクセルで描画しております。

1. sinカーブ

動画では詳しく触れませんでしたが、座標の指定をする際は”(x座標, y座標)”という形式で各セルに対応する座標を表示しておくことが重要です!このように一つのセルに対し、xとyの二つ分の情報を入れておけば、あとでMID関数とFIND関数を組み合わせることでx座標かy座標のそれぞれを選択的に得ることが出来ます。得られたどちらかの座標は再び描画用の計算に用いるという仕組みになります。(上画像中の関数のコピペはYoutube動画の概要欄からどうぞ)

2. 円状の波形

円状の波形の表示は上記の通りやや複雑な関数ですが、鍵となっているのはSEQUENCE関数です。

時間が増大すると、SEQUENCE関数の中の列数も増大するので、これに対応して円の数も増えるという仕組みです。

ファイル

本記事で紹介したエクセルファイルについては以下からダウンロード可能です。

マクロの有効化が必要となりますので、xlsm入りzipのダウンロードを推奨しますが、xlsxのダウンロードも可能としてありますので、この場合はマクロの設定を自らで行ってください。

エクセルによる画像処理:1. xlsm入りzipのダウンロード、2. xlsxのダウンロード

以上、読んでいただきありがとうございました。

コメントを残す