Abstract: As a review workshop held at Iwate prefectural university, I created a program to obtain the total number of 5 dice. It would be nice if you could use it as a simple sample program.
Webカメラを使って現場で画像処理
岩手県立大学で2016年5月27日に開催された講習会の復習として5個のさいころの数の合計を求めるプログラムを作成しました。簡単なサンプルプログラムとして活用いただければうれしいです。
使用機材:UCAM-C0220FE (ELECOM)、LabVIEW 2014、NI Vision
ツールメニューからVison Assistantを起動します。
カメラで画像を取り込んで画像ブラウザに格納します。
処理関数のカラータブでカラープレーン抽出を選び、明度プレーンを指定します。
カラープレーン抽出1がスクリプトに追加されます。
処理関数:マシンビジョンのパターンマッチングを選択します。これは指定したテンプレート画像をもとに画像の中で一致する部分を探す関数です。
テンプレート画像は「新規テンプレート画像」ボタンを押して作成します。中央の「一の目」のサイコロをテンプレートにします。
緑色の画像がテンプレートになります。
早速、発見された部分が赤く表示されます。テンプレート自身なので、まあ当然ですが、もう一個の「一の目」のサイコロは発見されていません。
設定タブを選ぶと、検出するマッチ数を増やしたり、回転パターンを検索することができます。
マッチ数を5にするともう一個も無理やりですが検索されました。
回転パターンを検索する、角度は+/- 90度にするときちんとテンプレートを回転させてマッチしてくれます。
スクリプトにパターンマッチングが追加されました。
このスクリプトはファイルメニューから保存します。拡張子は「.vascr」となります。
ツールメニューから「LabVIEW VIを作成...」を選ぶと、VIの中で操作したい制御器・表示器を選択できます。
一応、これでLabVIEWのダイアグラムが生成されて、それらしいフロントパネルが表示されます。
ダイアグラムは超汚ないので、好みで直しましょう。
「一の目」以外のテンプレートも作って、ループで1から6までを検索するプログラムに書き換えます。
フロントパネル
(テンプレートのファイルパスは相対パスにしなかったのでテンプレートファイルを置く場所に応じて変更する必要があります。)
テンプレートは「TemplateImages.zip」で添付しました。完成したVIは「SnapDiceCounter.zip」で添付しました。
NI Visionは高価なソフトウェアですが、工場のラインのすぐそばにいる人が簡単に使いこなせるとすれば、値段以上の働きをするのではないかと思います、ラインの組み直しとか、予期せぬ外光で検出できなくなったとか、その都度専門のソフトウェア屋さんを呼ぶことを考えるとね。