libcamera v0.5.1
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
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
12
13namespace libcamera {
14
15class YamlObject;
16
17namespace ipa {
18
19class Histogram;
20
21class Lux
22{
23public:
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
31private:
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 */
A class representing the tree structure of the YAML content.
Definition yaml_parser.h:28
The base class for creating histograms.
Definition histogram.h:23
Lux()
Construct the Lux helper module.
Definition lux.cpp:75
double estimateLux(utils::Duration exposureTime, double aGain, double dGain, const Histogram &yHist) const
Estimate lux given runtime values.
Definition lux.cpp:154
int parseTuningData(const YamlObject &tuningData)
Parse tuning data.
Definition lux.cpp:98
Helper class from std::chrono::duration that represents a time duration in nanoseconds with double pr...
Definition utils.h:371
The IPA (Image Processing Algorithm) namespace.
Definition af.cpp:58
Top-level libcamera namespace.
Definition backtrace.h:17
Miscellaneous utility functions.