コンテンツにスキップ

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: The camera adjusts the white balance until the average gray values for red, green, and blue are identical. When this has been achieved, or after several calculation cycles, the camera sets the auto function to Off and applies the balance ratios resulting from the last calculation to all following images.
    • Continuous:画像の取得中に、カメラがホワイトバランスを連続的に調整します。この調整プロセスは、操作モードがOnceまたはOffに設定されるまで続行されます。
    • Off:Balance White Autoオートファンクションを無効にします。BalanceRatioパラメーターは、最後の自動調整または手動調整の結果の値に維持されます。

情報

On the following camera models, the Continuous operating mode is not available: acA1600-20gc, acA1920-25gc, acA2500-14gc, racer 2 S color cameras

仕組み#

自動ホワイトバランス調整は、2段階のプロセスで構成されます。

  1. カメラは、赤、緑、青の画素の平均グレー値を比較します。平均グレー値が最も高い色(最も明るい色)を決定し、この色のBalanceRatioパラメーター値を1に設定します。
  2. カメラは、赤、緑、青の平均グレー値が同一になるまで、他の2色のBalanceRatioパラメーター値を自動的に調整します。

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

例:画像内の緑の画素の平均グレー値が最も高いとします。Balance White Autoオートファンクションを有効にすると、カメラはBalanceRatioパラメーターの値を緑について1に設定します。次に、カメラは、赤、緑、青の平均グレー値が同一になるまで、赤と青のBalanceRatioパラメーター値が自動的に調整されます。新しいバランス比は、例えば、緑 = 1、赤 = 1.08789、青 = 2.19678 のようになります。

情報

  • 赤、緑、または青のBalanceRatioパラメーター値を表示するには、BalanceRatioSelectorを使用してそれぞれのカラーチャンネルに切り替えます。
  • カメラが画像を連続的にキャプチャしている場合、オートファンクションは短い遅延を伴って有効になります。最初の何枚かの画像は、オートファンクションの影響を受けない場合があります。
  • On boost V color cameras, the auto function ROIs which are assigned to the Balance White Auto auto function, must not contain any color pixels with 100 % saturation. Otherwise, undesirable false-color effects will occur.

サンプルコード#

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を使用して、パラメーターを簡単に設定することもできます。