Balance White Auto (BCON for MIPI)#
To correct color shifts manually, use the Balance White feature.
Using the Feature#
Enabling or Disabling Balance White Auto#
To enable or disable the Balance White Auto auto function, set the
BalanceWhiteAuto parameter to one of the following operating modes:
Continuous: The camera adjusts the white balance continuously while images are being acquired.
Off: Disables the Balance White Auto auto function. The
BalanceRatioparameters remain at the values resulting from the last automatic or manual adjustment.
How It Works#
Automatic white balancing is a two-step process:
- The camera compares the average gray values of the red, green, and blue pixels. It determines the color with the highest average gray value (i.e., the brightest color) and sets the
BalanceRatioparameter value for this color to 1.
- The camera automatically adjusts the
BalanceRatioparameter values of the other two colors until the average gray values for red, green, and blue are identical.
As a result, the
BalanceRatio parameter is set to 1 for one color and to a value between 1 and ≈15.98 for the other two colors.
Example: Assume the green pixels in your image have the highest average gray value. If you enable the Balance White Auto auto function, the camera sets the
BalanceRatio parameter value for green to 1. Then, the camera automatically adjusts the
BalanceRatio parameter values for red and blue until the average gray values for red, green, and blue are identical. The new balance ratios could be, e.g., green = 1, red = 1.08789, and blue = 2.19678.
- To view the
BalanceRatioparameter values for red, green, or blue, switch to the respective color channel using the
- When the camera is capturing images continuously, the auto function takes effect with a short delay. The first few images may not be affected by the auto function.
/* 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 */ double maxUpperLimit = 0; /* Enable Balance White Auto by setting the operating mode to Continuous */ errRes = PylonDeviceFeatureFromString(hdev, "BalanceWhiteAuto", "Continuous"); CHECK(errRes);
You can also use the pylon Viewer to easily set the parameters.