IMAQ Image Display表示器に表示されている画像がVI実行中に変化する

更新しました Jan 18, 2023

使用製品

ソフトウェア

  • LabVIEW Full

ドライバ

  • NI-IMAQ
  • NI-IMAQdx

問題

プログラムの開始時に、IMAQ画像へのリファレンスをImage Display表示器に書き込み、予想される画像を表示します。ただし、実行中は、明示的にImage Display表示器へ再度書き込むことはありませんが、画像は変化してしまいます。これを防ぐにはどうすればよいですか?

解決策

フロントパネルでImage Displayを右クリックして、Snapshotオプションを有効にします。

追加情報

LabVIEWでは、IMAQ画像はバッファに保存されます。バッファは、IMAQ Create VIを使用して明示的に作成する必要があります。このVIの出力端子にあるIMAQ画像リファレンスは、画像が保存されているメモリ内のバッファへのリファレンスです。IMAQ画像リファレンスをImage Display表示器に配線すると、表示器はIMAQ画像リファレンスによって参照されるメモリ内の場所を指し、画像の追加コピーは作成されません。画像のサイズが大きくなる可能性があるため、画像データの追加コピーを作成する余分な処理ステップを回避することにより、表示プロセスを高速化しています。
 

表示器は、そのバッファに保存されている画像に接続されます。そのため、後でコード内でそのバッファに保存されている画像に変更を加えた場合、画像が更新されるとそれらの変更がImage Display表示器に反映されます。これには、IMAQ Dispose VIを使用したバッファの破棄が含まれます。これにより、画像が表示器から完全に削除されます。表示中の画像が最後に更新されてからメモリ内で変更された場合、マウスをその上に移動すると画像表示の選択部分が変化し、通過する領域が強制的に再描画される場合があります。
 

この機能が不要で、表示器へのリファレンスを書き込むときにのみバッファに存在する画像を表示器で表示したい場合は、フロントパネルにあるImage Display表示器を右クリックして、Snapshotオプションを有効にします。