Visionによる二値化、差分をとるプログラム
動画を二値化し差分を取り粒子数を表示させるプログラム
流れとしては以下のようなものです。
- 1,aviファイルを読み込む
- 2,フレームごとに表示
- 3,グレースケール化
- 4,二値化
- 5,フレーム数の差分を取る(動いてる粒子だけ見る)
- 6,穴などのごみを取ってきれいにする
- 7,毎ループごとに粒子数をカウントする
- 8,ファイルに書き込む
図の数字と対応しながらそれぞれの役目を説明します。
- ①動画ファイルの読み込みを行っています(LabVIEW上でヘルプ→サンプルを検索→「avi」などで検索しコピーすると楽です)
- ②名称「IMAQ AVI READ FRAME」フレーム数を指定すると画像ファイルを返してくれます。whielループに入れてフレーム数を増やせば動画になってくれます。
- ③名称「IMAQ Extract Single Color Plane」RGBに対して強度(Intensity)について0~255に変換、つまりグレースケール化してます。
- ④名称「IMAQ threshold」閾値を入力し二値化しています。
- 以上の②~④の操作を25フレームずらしてもう一つ作っておきます。
- ⑤名称「IMAQ subtract」二つの二値化した画像を読み込み差分を返します
- ⑥ごみ取りを行ってます。穴を埋めるなどです。
- ⑦名称「IMAQ Particle Analysis Report」粒子数や粒子サイズ、重心座標などのデータを返します。ここでは粒子数を用います。
- ⑧結果をループ毎に書き出します
8bit_difference.vi(78.9KB)