libcamera
v0.5.0
Supporting cameras in Linux since 2019
|
Implementation of a bayesian 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 temperatureK) override |
Compute white balance gains from a colour temperature. More... | |
void | handleControls (const ControlList &controls) override |
![]() | |
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... | |
Implementation of a bayesian auto white balance algorithm.
In a bayesian AWB algorithm the auto white balance estimation is improved by taking the likelihood of a given lightsource based on the estimated lux level into account. E.g. If it is very bright we can assume that we are outside and that colour temperatures around 6500 are preferred.
The second part of this algorithm is the search for the most likely colour temperature. It is implemented in AwbBayes::coarseSearch() and in AwbBayes::fineSearch(). The search works very well without prior likelihoods and therefore the algorithm itself provides very good results even without prior likelihoods.
|
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 |
Calculate an AwbResult object from the given statistics and lux value. A lux value of 0 means it is unknown or invalid and the algorithm shall ignore it.
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 is used to compute the colour gains when the user manually specifies a colour temperature.
Implements libcamera::ipa::AwbAlgorithm.
|
overridevirtual |
Initialize the algorithm with the given tuning data.
[in] | tuningData | The tuning data to use for the algorithm |
Implements libcamera::ipa::AwbAlgorithm.