libcamera  v0.5.0+41-fabfdd85
Supporting cameras in Linux since 2019
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lux.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (C) 2019, Raspberry Pi Ltd
4  * Copyright (C) 2024, Paul Elder <paul.elder@ideasonboard.com>
5  *
6  * Helper class that implements lux estimation
7  */
8 
9 #pragma once
10 
11 #include <libcamera/base/utils.h>
12 
13 namespace libcamera {
14 
15 class YamlObject;
16 
17 namespace ipa {
18 
19 class Histogram;
20 
21 class Lux
22 {
23 public:
24  Lux();
25 
26  int parseTuningData(const YamlObject &tuningData);
27  double estimateLux(utils::Duration exposureTime,
28  double aGain, double dGain,
29  const Histogram &yHist) const;
30 
31 private:
32  utils::Duration referenceExposureTime_;
33  double referenceAnalogueGain_;
34  double referenceDigitalGain_;
35  double referenceY_;
36  double referenceLux_;
37 };
38 
39 } /* namespace ipa */
40 
41 } /* namespace libcamera */
Class that implements lux estimation.
Definition: lux.h:21
Top-level libcamera namespace.
Definition: backtrace.h:17
Lux()
Construct the Lux helper module.
Definition: lux.cpp:75
int parseTuningData(const YamlObject &tuningData)
Parse tuning data.
Definition: lux.cpp:98
Miscellaneous utility functions.
double estimateLux(utils::Duration exposureTime, double aGain, double dGain, const Histogram &yHist) const
Estimate lux given runtime values.
Definition: lux.cpp:154
Helper class from std::chrono::duration that represents a time duration in nanoseconds with double pr...
Definition: utils.h:370
The base class for creating histograms.
Definition: histogram.h:22
A class representing the tree structure of the YAML content.
Definition: yaml_parser.h:27