NI-IMAQdxでプログラム的に属性を取得および設定する

更新しました May 13, 2026

環境

ソフトウェア

  • LabVIEW

ドライバ

  • NI-IMAQdx
  • NI-IMAQ

その他

IMAQ for IEEE 1394

  • NI-IMAQdxを使用して、明るさ、シャッター速度、ゲインなどのカメラ属性をプログラム的に設定するにはどうすればよいですか?
  • 最近、NI-IMAQ for IEEE 1394からNI-IMAQdxに移行しました。以前は、IMAQ1394GetAttribute(テキスト言語)、またはIMAQ 1394プロパティノードでAttrプロパティを使用していました。NI-IMAQdxでこれらのオプションはどこにありますか?

下記の情報を参照して、カメラ属性をLabVIEWおよびテキストベースの言語でプログラムで取得、または設定します。
 

LabVIEWの場合

LabVIEWでカメラ属性を設定するには、IMAQdxプロパティノードを使用します。IMAQdxプロパティノードを見つける方法は、以下のとおりです。 

  • 関数パレットのビジョン&モーション>>NI-IMAQdxに移動します。
  • ブロックダイアグラムに一般的なプロパティノードを配置して右クリックし、クラスを選択>>IMAQdxに移動します。

 

プロパティノードの設定方法の詳細については、NI-IMAQdxプロパティを参照してください。


下図は、カメラの輝度レベルを変更する方法の例をIMAQ 1394プロパティノードとIMAQdxプロパティノードで比較しています。


:一部の属性(例えば画像の幅や高さなど)は、取得中には設定できません。取得前および取得中にどの属性が書き込み可能かを識別するには、以下のコードで確認できます。
 
 
IMAQdx Configure Grab.viは、グラブを構成し取得開始するVIです。そのため、取得中に書き込み不可の属性を設定すると、エラーが発生します。


テキスト言語の場合

特定の属性値または設定を取得するには、IMAQdxGetAttribute関数呼び出しを使用します。属性の正確な名前または値が不明な場合は、IMAQdxEnumerateAttributes2およびIMAQdxEnumerateAttributeValuesを呼び出してこのデータを返すことができます。

利用可能な属性値の数が事前にわからない場合は、次の手順を行ってこの情報を取得できます。

  1. IMAQdxEnumerateAttributes2関数のattributeInformationArrayパラメータでNULLに設定して呼び出します。それにより、必要なサイズがcountに格納されます。
  2. 指定されたサイズでcountを割り当てます。
  3. 事前に割り当てられた配列を使用してこの関数を再度呼び出します。


IMAQdxEnumerateAttributeValues関数についても、listパラメータをNULLに設定することで同じ手順を行えます。このパラメータは、sizeで必要なサイズをsizeで格納します。これらの関数およびその他のテキストベース言語用IMAQdx関数に関する詳細については、National Instruments\NI-IMAQdx\DocsにあるNI-IMAQdx Function Reference Helpを参照してください。

 

追加の情報

NI-IMAQdxドライバを使用すると、文字列入力を使用してカメラ属性を動的に取得できます。この変更の理由は、IMAQ 1394ドライバでは、すべてのカメラがDCAMに準拠しており、特定の属性セットが存在したためです。IMAQdxドライバでは、さまざまな属性を持つ多くのカメラがサポートされています。したがって、機能セットリストを列挙する代わりに、ユーザが特定カメラの利用可能なプロパティを選択する必要があります。

 

LabVIEWを使用する際の追加トラブルシューティング

-1074360305 attribute not supported by the cameraというエラーが発生した場合、またはActiveAttributeプロパティに渡す文字列が不明な場合、IMAQdx Enumerate Attributes.viを使用して対象の属性に対する正しい文字列を抽出します。このVIを用いると、読み取りと書き込みのどちらが可能であるか、またどのようなデータタイプを受け入れ可能であるかという情報の正しい文字列の抽出が可能です。

IMAQdx Enumerate Attributes.viは、カメラの利用可能なすべての属性を取得して、配列として出力します。表示されたプロパティはそのカメラ特有のものであり、IMAQdxプロパティノードの入力文字列として使用可能です。

これらの関数およびLabVIEW向けの他のIMAQdx関数の使用方法の詳細については、NI-IMAQdx VIリファレンスヘルプを参照するか、NIサンプルファインダにあるGrab and Attribute Setup.viを参照してください。