跳转到内容

Balance White Auto (dart E)#

相机的 Balance White Auto 功能会自动校正所采集到的图像中的色彩偏移。

要手动纠正色彩偏移,请使用 Balance White 功能。

该功能的使用#

启用或禁用 Balance White Auto#

要启用或禁用自动功能 Balance White Auto,将 BalanceWhiteAuto 参数设置为以下工作模式:

  • Continuous:相机在采集图像时持续调节白平衡。
  • Off:禁用Balance White Auto自动功能。BalanceRatio 参数保持上一次自动或手动调整后得到的值。

运作原理#

自动白平衡分为两个步骤:

  1. 相机会比较红、绿和蓝像素的平均灰度值。它确定具有最高平均灰度值的颜色(即亮度最高的颜色),并将该颜色的 BalanceRatio 参数值设置为 1。
  2. 相机会自动调节其他两种颜色的 BalanceRatio 参数值,直到红、绿和蓝的平均灰度值相同为止。

一种颜色的 BalanceRatio 参数设置为 1,其他两种颜色的该参数设置为 1 到 ≈15.98 之间。

示例:假设图像中的绿色像素具有最高的平均灰度值。如果启用Balance White Auto自动功能,相机将绿色的 BalanceRatio 参数值设置为 1。然后,相机自动调整红色和蓝色的 BalanceRatio 参数值,直到红色、绿色和蓝色的平均灰度值相同为止。比如,新的白平衡参数分量可以是:绿色 = 1、红色 = 1.08789、蓝色 = 2.19678。

信息

  • 要查看红、绿或蓝的 BalanceRatio 参数值,请使用 BalanceRatioSelector 切换到相应的颜色通道。
  • 当相机连续拍摄图像时,自动功能会在经过较短的延迟后生效。前几张图像可能不受自动功能的影响。

示例代码#

// Enable Balance White Auto by setting the operating mode to Continuous
camera.BalanceWhiteAuto.SetValue(BalanceWhiteAuto_Continuous);
INodeMap& nodemap = camera.GetNodeMap();
// Enable Balance White Auto by setting the operating mode to Continuous
CEnumParameter(nodemap, "BalanceWhiteAuto").SetValue("Continuous");
// 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 */
/* Enable Balance White Auto by setting the operating mode to Continuous */
errRes = PylonDeviceFeatureFromString(hdev, "BalanceWhiteAuto", "Continuous");
CHECK(errRes);
# Enable Balance White Auto by setting the operating mode to Continuous
camera.BalanceWhiteAuto.Value = "Continuous"

您还可以使用 pylon Viewer 轻松设置参数。