コンテンツにスキップ
ステージングサーバー
開発サーバー

方法: PixelFormatノードの有効な値を見つける#

CInstantCamera pylonカメラクラスを使用しており、カメラ機能にアクセスする場合は、カメラからノードマップを取得する必要があります。このノードマップには、実装されているすべてのカメラ機能のノードが含まれています。このアプローチは、Generic Interface for Cameras Standard(GenICam)によって定義されています。GenICam標準はこちらからダウンロードできます。

GenICam標準に従い、カメラデバイスのすべてのパブリック機能はカメラのGenICam XMLファイルに含まれている必要があり、またGenICam Standard Feature Naming Convention(SFNC)を使用する必要があります。つまり、それらの機能が存在する場合は、SFNCの名前とインターフェイスタイプを使用する必要があります。Standard Feature Naming Conventionはこちらからダウンロードできます。

PixelFormat機能は、SFNCで推奨機能としてリストされている標準機能の1つであり、インターフェイスタイプはIEnumerationとして定義されています。

値を含むすべてのノードに共通なのが、ToString()とFromString()です(基本インターフェイスIValueを介して継承されます)。これは、ノードの値を文字列として読み書きできることを意味します。

特定のノードでは、追加の特定アクセスメソッドが提供されます。たとえば、Enumerationインターフェイスタイプでは、ToString()およびFromString()に加えて、SetIntValue()とGetIntValue()が提供されます。

GenICam GenApi Reference Implementationはインターフェイスを定義しますが、特定の機能(PixelFormatなど)に使用される有効な値の範囲や列挙値は定義しません。GenICam GenApi Reference Implementationはこちらからダウンロードできます。

それでは、どのPixelFormat文字列がどのIntValueに対応しているかをどのように知るのでしょうか?

GenICam(規格のコレクション)では、GenICam Pixel Format Names and Valuesも定義されています。ここで、Pixel Format NameはToString()およびFromString()で使用する文字列(Symbolic Name)であり、32ビット値はSetIntValue()およびGetIntValue()で使用するIntValueです。定義されているピクセルフォーマットの完全なリストは、こちらからダウンロードできます。

pylon APIには、一般的なピクセルフォーマット用のBasler独自の列挙型であるEPixelType(PixelType.h)が付属しています。さらに、ヘルパー親クラスとしてCPixelTypeMapper(PixelTypeMapper.h)があります。このヘルパークラスを使用すると、GenICam値(文字列またはIntValue)とpylonのEPixelType列挙型の間でマッピングを行うことができます。

以下のマッピング関数を使用できます。

EPixelType GetPylonPixelTypeFromNodeValue(int64_t nodeValue) const;
static EPixelType GetPylonPixelTypeByName(const char* pszSymbolicName);
static EPixelType GetPylonPixelTypeByName(const String_t& symbolicName)
static const char* GetNameByPixelType(EPixelType pixelType, SFNCVersion sfncVer = SFNCVersion\_pre2\_0);

EPixelTypeからGenICam Symbolic Nameにマッピングする後者の関数には、SFNCバージョンヒントが必要です。これは、一部のピクセルフォーマット名がSFNCバージョン2.0.0で変更されたためです。

カメラがどのSFNCバージョンと互換性があるかは、次を呼び出すことで取得できます。 camera.GetSFNCVersion().

このサンプルコードは、PixelFormat機能にアクセスするためのさまざまな方法を示しています。

上記のリンクのいずれかが機能しない場合や、利用可能なすべてのダウンロードの概要を確認するには、https://www.emva.org/standards-technology/genicam/genicam-downloads/にアクセスしてください。

ナレッジ記事に戻る