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

Gamma (dart E)#

Gammaカメラ機能を使用すると、取得した画像の明るさを最適化してモニタに表示できます。

機能を使用する#

仕組み#

カメラは、次の式(例として示すカラーカメラの赤のピクセル値(R))に従って、各画素の明るさの値にガンマ補正値(γ)を適用します。

Gamma補正式(赤のピクセル)

最大ピクセル値(Rmax)は、例えば、8ビットピクセルフォーマットの場合は255、10ビットピクセルフォーマットの場合は1023に等しくなります。

Gamma Correctionの設定#

ガンマ補正を設定するには、 Gamma パラメータを任意の値に設定します。パラメータの値範囲は 0 から ≈4 までです。 - Gamma = 1: 全体の明るさは 変わりません。 - Gamma < 1: 全体の明るさが 増加します。 - Gamma > 1: 全体の明るさが 減少します.

いずれの場合も、黒のピクセル(明るさ = 0)と白のピクセル(明るさ = 最大)は調整されません。

情報

ガンマ補正を有効にし、ピクセルフォーマットを12ビットピクセルフォーマットに設定すると、一部の画像情報が失われます。ピクセルデータ出力は12ビットのままですが、ガンマ補正処理中にピクセル値が補間されます。

色空間の設定#

daA…mci カメラモジュールでは、 BslColorSpace パラメータを利用できます。これにより、次のガンマ補正モードのいずれかを選択できます:

  • RGB: 追加のガンマ補正値は適用されません。
  • sRGB: 画像の明るさが sRGB モニターでの表示に最適化されます。約 0.4 のガンマ補正値が適用され、 Gamma パラメータは読み取り専用になり、 Gamma パラメータの値は無視されます。

サンプルコード#

// Set the Gamma value to 1.2
camera.Gamma.SetValue(1.2);
INodeMap& nodemap = camera.GetNodeMap();
// Set the Gamma value to 1.2
CFloatParameter(nodemap, "Gamma").SetValue(1.2);
// Set the Gamma value to 1.2
camera.Parameters[PLCamera.Gamma].SetValue(1.2);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* Set the Gamma value to 1.2 */
errRes = PylonDeviceSetFloatFeature(hdev, "Gamma", 1.2);
CHECK(errRes);
# Set the Gamma value to 1.2
camera.Gamma.Value = 1.2
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* Set the Gamma value to 1.2 */
errRes = PylonDeviceSetFloatFeature(hdev, "Gamma", 1.2);
CHECK(errRes);

pylon Viewer を使用してパラメータを簡単に設定することもできます。