libcamera  v0.5.0
Supporting cameras in Linux since 2019
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
libcamera::ipa::AwbGrey Class Reference

A Grey world auto white balance algorithm. More...

Inheritance diagram for libcamera::ipa::AwbGrey:
Inheritance graph
[legend]
Collaboration diagram for libcamera::ipa::AwbGrey:
Collaboration graph
[legend]

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...
 
- Public Member Functions inherited from libcamera::ipa::AwbAlgorithm
const ControlInfoMap::Mapcontrols () 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

- Protected Member Functions inherited from libcamera::ipa::AwbAlgorithm
int parseModeConfigs (const YamlObject &tuningData, const ControlValue &def={})
 Parse the mode configurations from the tuning data. More...
 
- Protected Attributes inherited from libcamera::ipa::AwbAlgorithm
ControlInfoMap::Map controls_
 Controls info map for the controls provided by the algorithm.
 
std::map< controls::AwbModeEnum, AwbAlgorithm::ModeConfigmodes_
 Map of all configured modes. More...
 

Detailed Description

A Grey world auto white balance algorithm.

Member Function Documentation

◆ calculateAwb()

AwbResult libcamera::ipa::AwbGrey::calculateAwb ( const AwbStats stats,
unsigned int  lux 
)
overridevirtual

Calculate AWB data from the given statistics.

Parameters
[in]statsThe statistics to use for the calculation
[in]luxThe 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.

Returns
The AWB result

Implements libcamera::ipa::AwbAlgorithm.

◆ gainsFromColourTemperature()

RGB< double > libcamera::ipa::AwbGrey::gainsFromColourTemperature ( double  colourTemperature)
overridevirtual

Compute white balance gains from a colour temperature.

Parameters
[in]colourTemperatureThe 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.

Returns
The colour gains if a colour temperature curve is available, [1, 1, 1] otherwise.

Implements libcamera::ipa::AwbAlgorithm.

◆ init()

int libcamera::ipa::AwbGrey::init ( const YamlObject tuningData)
overridevirtual

Initialize the algorithm with the given tuning data.

Parameters
[in]tuningDataThe 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.

Returns
0 on success, a negative error code otherwise

Implements libcamera::ipa::AwbAlgorithm.


The documentation for this class was generated from the following files: