libcamera
v0.5.0
Supporting cameras in Linux since 2019
|
A Grey world auto white balance algorithm. More...
Public Member Functions | |
int | init (const YamlObject &tuningData) override |
Initialize the algorithm with the given tuning data. More... | |
AwbResult | calculateAwb (const AwbStats &stats, unsigned int lux) override |
Calculate AWB data from the given statistics. More... | |
RGB< double > | gainsFromColourTemperature (double colourTemperature) override |
Compute white balance gains from a colour temperature. More... | |
![]() | |
const ControlInfoMap::Map & | controls () const |
Get the controls info map for this algorithm. More... | |
virtual void | handleControls ([[maybe_unused]] const ControlList &controls) |
Handle the controls supplied in a request. More... | |
Additional Inherited Members | |
![]() | |
int | parseModeConfigs (const YamlObject &tuningData, const ControlValue &def={}) |
Parse the mode configurations from the tuning data. More... | |
![]() | |
ControlInfoMap::Map | controls_ |
Controls info map for the controls provided by the algorithm. | |
std::map< controls::AwbModeEnum, AwbAlgorithm::ModeConfig > | modes_ |
Map of all configured modes. More... | |
A Grey world auto white balance algorithm.
|
overridevirtual |
Calculate AWB data from the given statistics.
[in] | stats | The statistics to use for the calculation |
[in] | lux | The lux value of the scene |
The colour temperature is estimated based on the colours::estimateCCT() function. The gains are calculated purely based on the RGB means provided by the stats. The colour temperature is not taken into account when calculating the gains.
The lux parameter is not used in this algorithm.
Implements libcamera::ipa::AwbAlgorithm.
|
overridevirtual |
Compute white balance gains from a colour temperature.
[in] | colourTemperature | The colour temperature in Kelvin |
Compute the white balance gains from a colourTemperature. This function does not take any statistics into account. It simply interpolates the colour gains configured in the colour temperature curve.
Implements libcamera::ipa::AwbAlgorithm.
|
overridevirtual |
Initialize the algorithm with the given tuning data.
[in] | tuningData | The tuning data for the algorithm |
Load the colour temperature curve from the tuning data. If there is no tuning data available, continue with a warning. Manual colour temperature will not work in that case.
Implements libcamera::ipa::AwbAlgorithm.