summaryrefslogtreecommitdiff
path: root/src/ipa/rpi/controller
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/rpi/controller')
-rw-r--r--src/ipa/rpi/controller/contrast_algorithm.h2
-rw-r--r--src/ipa/rpi/controller/rpi/contrast.cpp13
-rw-r--r--src/ipa/rpi/controller/rpi/contrast.h3
3 files changed, 17 insertions, 1 deletions
diff --git a/src/ipa/rpi/controller/contrast_algorithm.h b/src/ipa/rpi/controller/contrast_algorithm.h
index ce17a4f9..895b36b0 100644
--- a/src/ipa/rpi/controller/contrast_algorithm.h
+++ b/src/ipa/rpi/controller/contrast_algorithm.h
@@ -17,6 +17,8 @@ public:
/* A contrast algorithm must provide the following: */
virtual void setBrightness(double brightness) = 0;
virtual void setContrast(double contrast) = 0;
+ virtual void enableCe(bool enable) = 0;
+ virtual void restoreCe() = 0;
};
} /* namespace RPiController */
diff --git a/src/ipa/rpi/controller/rpi/contrast.cpp b/src/ipa/rpi/controller/rpi/contrast.cpp
index bee1eadd..4e038a02 100644
--- a/src/ipa/rpi/controller/rpi/contrast.cpp
+++ b/src/ipa/rpi/controller/rpi/contrast.cpp
@@ -42,6 +42,7 @@ int Contrast::read(const libcamera::YamlObject &params)
{
// enable adaptive enhancement by default
config_.ceEnable = params["ce_enable"].get<int>(1);
+ ceEnable_ = config_.ceEnable;
// the point near the bottom of the histogram to move
config_.loHistogram = params["lo_histogram"].get<double>(0.01);
// where in the range to try and move it to
@@ -65,6 +66,16 @@ void Contrast::setContrast(double contrast)
contrast_ = contrast;
}
+void Contrast::enableCe(bool enable)
+{
+ ceEnable_ = enable;
+}
+
+void Contrast::restoreCe()
+{
+ ceEnable_ = config_.ceEnable;
+}
+
void Contrast::initialise()
{
/*
@@ -150,7 +161,7 @@ void Contrast::process(StatisticsPtr &stats,
* histogram down, and possibly push the end up.
*/
Pwl gammaCurve = config_.gammaCurve;
- if (config_.ceEnable) {
+ if (ceEnable_) {
if (config_.loMax != 0 || config_.hiMax != 0)
gammaCurve = computeStretchCurve(histogram, config_).compose(gammaCurve);
/*
diff --git a/src/ipa/rpi/controller/rpi/contrast.h b/src/ipa/rpi/controller/rpi/contrast.h
index 9c81277a..59aa70dc 100644
--- a/src/ipa/rpi/controller/rpi/contrast.h
+++ b/src/ipa/rpi/controller/rpi/contrast.h
@@ -37,6 +37,8 @@ public:
int read(const libcamera::YamlObject &params) override;
void setBrightness(double brightness) override;
void setContrast(double contrast) override;
+ void enableCe(bool enable) override;
+ void restoreCe() override;
void initialise() override;
void prepare(Metadata *imageMetadata) override;
void process(StatisticsPtr &stats, Metadata *imageMetadata) override;
@@ -46,6 +48,7 @@ private:
double brightness_;
double contrast_;
ContrastStatus status_;
+ double ceEnable_;
};
} /* namespace RPiController */