|
libcamera v0.0.4
Supporting cameras in Linux since 2019
|
The base class for creating histograms. More...
Public Member Functions | |
| Histogram (Span< const uint32_t > data) | |
| Create a cumulative histogram. More... | |
| size_t | bins () const |
| Retrieve the number of bins currently used by the Histogram. More... | |
| uint64_t | total () const |
| Retrieve the total number of values in the data set. More... | |
| uint64_t | cumulativeFrequency (double bin) const |
| Cumulative frequency up to a (fractional) point in a bin. More... | |
| double | quantile (double q, uint32_t first=0, uint32_t last=UINT_MAX) const |
| Return the (fractional) bin of the point through the histogram. More... | |
| double | interQuantileMean (double lowQuantile, double hiQuantile) const |
| Calculate the mean between two quantiles. More... | |
The base class for creating histograms.
This class stores a cumulative frequency histogram, which is a mapping that counts the cumulative number of observations in all of the bins up to the specified bin. It can be used to find quantiles and averages between quantiles.
| libcamera::ipa::Histogram::Histogram | ( | Span< const uint32_t > | data | ) |
Create a cumulative histogram.
| [in] | data | A pre-sorted histogram to be passed |
|
inline |
Retrieve the number of bins currently used by the Histogram.
| uint64_t libcamera::ipa::Histogram::cumulativeFrequency | ( | double | bin | ) | const |
Cumulative frequency up to a (fractional) point in a bin.
| [in] | bin | The bin up to which to cumulate |
With F(p) the cumulative frequency of the histogram, the value is 0 at the bottom of the histogram, and the maximum is the number of bins. The pixels are spread evenly throughout the “bin” in which they lie, so that F(p) is a continuous (monotonically increasing) function.
| double libcamera::ipa::Histogram::interQuantileMean | ( | double | lowQuantile, |
| double | highQuantile | ||
| ) | const |
Calculate the mean between two quantiles.
| [in] | lowQuantile | low Quantile |
| [in] | highQuantile | high Quantile |
Quantiles are not ideal for metering as they suffer several limitations. Instead, a concept is introduced here: inter-quantile mean. It returns the mean of all pixels between lowQuantile and highQuantile.
| double libcamera::ipa::Histogram::quantile | ( | double | q, |
| uint32_t | first = 0, |
||
| uint32_t | last = UINT_MAX |
||
| ) | const |
Return the (fractional) bin of the point through the histogram.
| [in] | q | the desired point (0 <= q <= 1) |
| [in] | first | low limit (default is 0) |
| [in] | last | high limit (default is UINT_MAX) |
A quantile gives us the point p = Q(q) in the range such that a proportion q of the pixels lie below p. A familiar quantile is Q(0.5) which is the median of a distribution.
|
inline |
Retrieve the total number of values in the data set.