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

Balance White Auto#

Balance White Autoカメラ機能は、取得した画像のカラーシフトを自動的に補正します。

オートファンクションの画素データは、1つ以上のオートファンクションROIから取得できます。

カラーシフトを手動で修正するには、Balance White機能を使用します。

機能を使用する#

Balance White Autoの有効化/無効化#

Balance White Autoオートファンクションを有効または無効にするには、次の手順に従います。

  1. Balance White Autoオートファンクションに少なくとも1つのオートファンクションROIを割り当てます。
    オートファンクションROIが画像ROIと部分的または完全にオーバーラップするようにしてください。
  2. パラメーターを BalanceWhiteAuto パラメーターを次のいずれかの動作モードに設定します。
    • Once: カメラは次のような状態になるまでホワイトバランスを調整します。 赤、緑、青の平均グレー値が同一になります。これが達成された場合、または数回の計算サイクルの後、カメラは自動機能を次のように設定します。 Off 、最後の計算から得られたバランス比率を後続のすべての画像に適用します。
    • Continuous: 画像の取得中、カメラはホワイトバランスを継続的に調整します。調整プロセスは、Operating Modeが次のように設定されるまで続行されます。 Once または Off.
    • Off: Balance White Auto自動機能を無効にします。 BalanceRatio パラメータは、前回の自動調整または手動調整の結果得られた値のままになります。

情報

以下のカメラモデルでは、Continuous Operating Modeは使用できません:acA1920-25gc、acA2500-14gc、racer 2 S colorカメラ

仕組み#

自動ホワイトバランス調整は2段階のプロセスです。

カメラモデルに応じて、 BalanceRatio パラメータは次のように設定されます:

ace Classic#

Basler ace Classicカメラモデルの場合、自動ホワイトバランスは次のように動作します:

  1. イメージ BalanceRatioAbs 赤、緑、青のパラメータ値はそれぞれ1.5に設定されます。
  2. 「グレーワールド」モデルを前提として、 BalanceRatioAbs パラメータ値が自動的に調整され、赤と青の平均ピクセル値が緑の平均ピクセル値と一致するようになります。

ace U/L, MED ace, boost V, dart Classic, pulse#

Basler ace U、ace L、MED ace、boost V、dart Classic、pulseの各カメラモデルでは、自動ホワイトバランスは次のように動作します:

  1. カメラは、赤、緑、青のピクセルの平均グレー値を比較します。次の色を特定します。 最も高い平均グレー値を持つ (つまり、最も明るい色)であり、次の設定を行います。 BalanceRatio パラメータ この色の値は1になります。
  2. カメラは自動的に調整を行います。 BalanceRatio 赤、緑、青の平均グレー値が同一になるまで、他の2つの色のパラメータ値を調整します。

    その結果、 BalanceRatio パラメータは1つの色に対しては1に設定され、他の2つの色に対しては1から≈15.98の間の値に設定されます。

    例: 画像の緑色のピクセルの平均グレー値が最も高いと仮定します。Balance White Auto自動機能を有効にすると、カメラは次のように設定します。 BalanceRatio 緑のパラメータ値を1に設定します。その後、カメラは赤、緑、青の平均グレー値が一致するまで、赤と青の BalanceRatio パラメータ値を自動的に調整します。新しいバランス比は、たとえば緑 = 1、赤 = 1.08789、青 = 2.19678 などになります。

ace 2, boost R, dart R, dart M, racer 2 S/L#

Baslerのace 2、boost R、dart R、dart M、およびracer 2 L/Sカメラモデルでは、自動ホワイトバランスは次のように動作します。

  1. カメラは、赤、緑、青のピクセルの平均グレー値を比較します。次の色を特定します。 中央値の平均グレー値 となり、次の設定を行います: BalanceRatio パラメータ この色の値は1になります。
  2. カメラは自動的に調整を行います。 BalanceRatio 赤、緑、青の平均グレー値が同一になるまで、他の2つの色のパラメータ値を調整します。

    その結果、中央値のグレー値を持つ色の BalanceRatio パラメータは 1 に設定されます。中央値と比較してグレー値が高い色の BalanceRatio パラメータは 0 から 1 の間の値に設定され、中央値のグレー値と比較してグレー値が低い色のパラメータは 1 から ≒15.98 の間に設定されます。

    例: 画像内の緑色ピクセルが中央値のグレー値を持ち、赤色ピクセルが緑色ピクセルよりも高いグレー値を持ち、青色ピクセルが緑色ピクセルよりも低いグレー値を持っていると仮定します。
    Balance White Auto 自動機能を有効にすると、カメラは BalanceRatio 緑のパラメータ値を 1 に、赤のパラメータ値を 0 から 1 の間の値に、青の値を 1 から ≒15.98 の間の値に設定します。新しいバランス比は、たとえば緑 = 1、赤 = 0.568、青 = 3.1986 などになります。

情報

  • 確認するには BalanceRatio 赤、緑、または青のパラメータ値について、該当するカラーチャンネルに切り替えて BalanceRatioSelector.
  • カメラが画像を連続的にキャプチャしている場合、オートファンクションは短い遅延を伴って有効になります。最初の何枚かの画像は、オートファンクションの影響を受けない場合があります。
  • boost V カラーカメラでは、Balance White Auto 自動機能に割り当てられている Auto Function ROI に、100% の彩度を持つカラーピクセルを含めてはなりません。含まれている場合、望ましくない偽色効果が発生します。

サンプルコード#

ace Classic/U/L GigEカメラ#
// Select auto function ROI 2
camera.AutoFunctionAOISelector.SetValue(AutoFunctionAOISelector_AOI2);
// Enable the Balance White Auto auto function
// for the auto function ROI selected
camera.AutoFunctionAOIUsageWhiteBalance.SetValue(true);
// Enable Balance White Auto by setting the operating mode to Continuous
camera.BalanceWhiteAuto.SetValue(BalanceWhiteAuto_Continuous);
INodeMap& nodemap = camera.GetNodeMap();
// Select auto function ROI 2
CEnumParameter(nodemap, "AutoFunctionAOISelector").SetValue("AOI2");
// Enable the Balance White Auto auto function
// for the auto function ROI selected
CBooleanParameter(nodemap, "AutoFunctionAOIUsageWhiteBalance").SetValue(true);
// Enable Balance White Auto by setting the operating mode to Continuous
CEnumParameter(nodemap, "BalanceWhiteAuto").SetValue("Continuous");
// Select auto function ROI 2
camera.Parameters[PLCamera.AutoFunctionAOISelector].SetValue(PLCamera.AutoFunctionAOISelector.AOI2);
// Enable the Balance White Auto auto function
// for the auto function ROI selected
camera.Parameters[PLCamera.AutoFunctionAOIUsageWhiteBalance].SetValue(true);
// Enable Balance White Auto by setting the operating mode to Continuous
camera.Parameters[PLCamera.BalanceWhiteAuto].SetValue(PLCamera.BalanceWhiteAuto.Continuous);
/* 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 */
/* Select auto function ROI 2 */
errRes = PylonDeviceFeatureFromString(hdev, "AutoFunctionAOISelector", "AOI2");
CHECK(errRes);
/* Enable the Balance White Auto auto function */
/* for the auto function ROI selected */
errRes = PylonDeviceSetBooleanFeature(hdev, "AutoFunctionAOIUsageWhiteBalance", 1);
CHECK(errRes);
/* Enable Balance White Auto by setting the operating mode to Continuous */
errRes = PylonDeviceFeatureFromString(hdev, "BalanceWhiteAuto", "Continuous");
CHECK(errRes);
# Select auto function ROI 2
camera.AutoFunctionAOISelector.Value = "AOI2"
# Enable the Balance White Auto auto function
# for the auto function ROI selected
camera.AutoFunctionAOIUsageWhiteBalance.Value = True
# Enable Balance White Auto by setting the operating mode to Continuous
camera.BalanceWhiteAuto.Value = "Continuous"
その他のカメラ#
// Select auto function ROI 2
camera.AutoFunctionROISelector.SetValue(AutoFunctionROISelector_ROI2);
// Enable the Balance White Auto auto function
// for the auto function ROI selected
camera.AutoFunctionROIUseWhiteBalance.SetValue(true);
// Enable Balance White Auto by setting the operating mode to Continuous
camera.BalanceWhiteAuto.SetValue(BalanceWhiteAuto_Continuous);
INodeMap& nodemap = camera.GetNodeMap();
// Select auto function ROI 2
CEnumParameter(nodemap, "AutoFunctionROISelector").SetValue("ROI2");
// Enable the Balance White Auto auto function
// for the auto function ROI selected
CBooleanParameter(nodemap, "AutoFunctionROIUseWhiteBalance").SetValue(true);
// Enable Balance White Auto by setting the operating mode to Continuous
CEnumParameter(nodemap, "BalanceWhiteAuto").SetValue("Continuous");
// Select auto function ROI 2
camera.Parameters[PLCamera.AutoFunctionROISelector].SetValue(PLCamera.AutoFunctionROISelector.ROI2);
// Enable the Balance White Auto auto function
// for the auto function ROI selected
camera.Parameters[PLCamera.AutoFunctionROIUseWhiteBalance].SetValue(true);
// Enable Balance White Auto by setting the operating mode to Continuous
camera.Parameters[PLCamera.BalanceWhiteAuto].SetValue(PLCamera.BalanceWhiteAuto.Continuous);
/* 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 */
/* Select auto function ROI 2 */
errRes = PylonDeviceFeatureFromString(hdev, "AutoFunctionROISelector", "ROI2");
CHECK(errRes);
/* Enable the Balance White Auto auto function */
/* for the auto function ROI selected */
errRes = PylonDeviceSetBooleanFeature(hdev, "AutoFunctionROIUseWhiteBalance", 1);
CHECK(errRes);
/* Enable Balance White Auto by setting the operating mode to Continuous */
errRes = PylonDeviceFeatureFromString(hdev, "BalanceWhiteAuto", "Continuous");
CHECK(errRes);
# Select auto function ROI 2
camera.AutoFunctionROISelector.Value = "ROI2"
# Enable the Balance White Auto auto function
# for the auto function ROI selected
camera.AutoFunctionROIUseWhiteBalance.Value = True
# Enable Balance White Auto by setting the operating mode to Continuous
camera.BalanceWhiteAuto.Value = "Continuous"

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