From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

サンプルコードとドキュメント

Imageデータをキューで転送する方法

コードとドキュメント

添付

すべてをダウンロード

概要

カメラから集録したImageデータを、キューで転送する方法を紹介します。

詳細

キューというのはデータ項目の先入れ後出し(FIFO)の順番を維持するものです。

詳細についてはこちらをご覧ください。

キューとは何ですか

キューでは大抵のデータを受け渡すことができますが、Imageデータを受け渡す際には注意が必要です。

詳細についてはこちらをご覧ください。

IMAQのImageデータをキューを介して受け渡すことはできますか

画像データの上書きを避けるため、Imageデータを文字列または配列に変換し、

キューでデータの転送を行います。

◎文字列に変換

"IMAQ Flatten Image to String"関数で、Imageデータを文字列に変換します。

生産者側では文字列データを受け取り、"文字列から非平坦化"関数を使用して、Imageデータに戻します。

このとき「タイプ」端子に、"IMAQ Create"関数から生成された新しいメモリ領域が割り当てられていることに注意してください。

参考:Retrieving Image Over Ethernet From Two Smart Cameras Causes One Image To Be Lost

a.png

◎配列に変換

サンプルではカラー画像を使用しているため、2D配列データの変換に"IMAQ ColorImageToArray"を使い、

生産者側では"IMAQ ArrayToColorImage"関数を使用してImageデータに戻しています。

モノクロ画像を扱われる際には、下記関数で実現可能です。

IMAQ ArrayToImage

IMAQ ImageToArray

a.png

実装・実行方法

各サンプルを開き、USBカメラのデバイス名を指定して実行してください。

配列サンプルの場合、画像はカラーである必要があります。

必要なもの

ソフトウェア

・LabVIEW 2012以降

・Vision Acquisition Software

ハードウェア

USBカメラ

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。

寄稿者