LabVIEWは本格的な計測システムのようなビジネスや学術的な用途で使用される場合もあれば、手軽にプログラミングを学ぶといった用途にも適しています。
その中で私が個人的に魅力を感じる機能の一つが画像を扱ったプログラミングの手軽さです。
画像を扱うというとそもそもそういった画像を取得するためにまずカメラを思い浮かべますが「本格的なカメラじゃないと扱えないんでしょ?」なんてことはなく、ハイエンドな性能を持ったカメラでなくてもLabVIEWで扱うことはできます。
この記事では、LabVIEWで画像撮影を行う具体的なイメージを持つために実際のカメラを例にとってプログラムを作るためにどんなことをする必要があるかについて紹介していきます。
なお、紹介しているカメラはLabVIEWと一緒に使用することができるようですが、世の中にあるカメラ全てがLabVIEWと使用できることを保証するわけではないのでご注意ください
ソフトウェアの準備
LabVIEWで画像を扱うには大きく分けて二つのアドオンソフトウェアが必要になります。
一つがVision Acquisition Software(以下VAS)でもう一つがVision Development Module(VDM)です。
VASは画像を取得するソフトと書く通り、カメラ操作を行うことを目的としたソフトであるのに対し、VDMは画像を使用するアプリケーションを開発するためのソフトウェアになっています。
画像は既にあってこれに対し色々な処理を施す、ということであればVDMで事足りるのですが、カメラからの画像を取得するということであればVASが必要になります。
これらのインストールなどについては別記事で紹介しています。
カメラを接続する
この記事で紹介しているのは、ELECOMの「UCAM-C310FBBK」というUSBカメラです。
テレワーク、オンライン学習の推奨商品と書いてありました。家電量販店で2000~3000円程度で購入できると思います。

スペックはこんな感じ。SkypeやWindows Teams、Zoomなどで使用できますと記載がありますが、もちろん(?)「LabVIEWと使用できます」とは書いていません。

気になるところは、LabVIEWで使えるようにするために何か特別な設定が必要かどうか、というところかと思いますが、このカメラの場合PCにつなげるだけでLabVIEWで使用可能になりました。
まず、PCにつなげる前の状態を確認します。NI MAXとDataフォルダ(後述するicdファイルなどが入ったフォルダ)はそれぞれこのようになっています。

そしてこのUSBカメラを接続すると、以下のように表示されるようになりました(カメラの番号は以下の図ではcam18などとなっていますが、環境によって異なります)。

もうこれだけでカメラがNI MAXで使えるようになります。
NI MAXではSnap(一枚画像を取得)、Grab(画像を連続的に取得)やヒストグラムおよび画像の保存も簡易的に行えます。

多くはないのですが、カメラ画像の設定もNI MAXから変えることができます。
これらの設定は、上で確かめたicdファイルに保存されます(icdファイルはUSBカメラ接続時に自動的に生成されます)。

あとはLabVIEW
さて、NI MAXで使用することができることを確認したらもうLabVIEWで使用できる状態なので実際に使ってみます。
このブログでは事あるごとに言っていますが、まずはサンプルを見てみます。なんなら、サンプルでほとんどの機能の実際のプログラム例は確認できるため、あとはそこに少し肉付けしただけでアプリケーションが完成してしまう、なんて場合も多いと思います。

ただ、やっぱり画像をただ単にとって保存するだけでは面白くないので、画像解析だったり、画像処理を行いたい、という場合も出てくると思います。こうなると画像解析の関数がそろったVDMを使用するという選択肢も出てきます。
画像解析もVision AssistantというソフトがVDMに付属してくるのでこれを使えばプログラム作成も直感的に操作できたりします。以下の記事で紹介しています。
裏技的なことを言うと、VDMがなくても画像解析チックなことはできます。LabVIEWに標準(VDMのような追加のソフトウェアのインストールがない状態)で入っているピクチャ関数やグラフィック形式の関数を使用することで画像をピクセル値の2次元配列に変換できるため、頑張って処理を書けば多少の解析みたいなことは行えます。
以下のプログラムはその例ですが、Visionのソフトウェアを使用した場合と、グラフィック形式の関数を使用した場合とで同じ結果を得られています。

本ブログでも画像解析のアプリケーション例をいくつか紹介しているので、もし興味がありましたら「画像」や「vision」のタグで探して覗いていってもらえると嬉しいです。
LabVIEWで画像解析を行う際にそもそも画像をどのように用意するかについて悩まなくても、手持ちのカメラを接続してNI MAXに表示さえすれば使用できます。
今回の記事で紹介したカメラは一例ですが、比較的安価なカメラでも使えるので、もしこういった画像解析に興味がある場合には試してみるのもアリだと思います。
ここまで読んでいただきありがとうございました。
コメント