diff options
author | Stefan Klug <stefan.klug@ideasonboard.com> | 2025-04-29 13:59:19 +0200 |
---|---|---|
committer | Stefan Klug <stefan.klug@ideasonboard.com> | 2025-05-19 15:35:47 +0200 |
commit | 0069b9ceb1e03d5887ac614e35d79602b003ff27 (patch) | |
tree | 6a038a7cb54a5bc9b281d9964ca6921f1a8da017 | |
parent | 848a3017b8eee31eb94add447850b2751f38aa62 (diff) |
When the AWB engine doesn't find a valid pixel because all pixels lie
outside the configured colour range it returns an AWB measurement value
of 255, 255, 255. This leaves the regulation in an unrecoverable state
noticeable by a completely green image. Fix that by skipping the AWB
calculation in case there were no valid pixels.
Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | src/ipa/rkisp1/algorithms/awb.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp index 8991f9cf..3bafed02 100644 --- a/src/ipa/rkisp1/algorithms/awb.cpp +++ b/src/ipa/rkisp1/algorithms/awb.cpp @@ -298,6 +298,11 @@ void Awb::process(IPAContext &context, const rkisp1_cif_isp_stat *params = &stats->params; const rkisp1_cif_isp_awb_stat *awb = ¶ms->awb; + if (awb->awb_mean[0].cnt == 0) { + LOG(RkISP1Awb, Debug) << "AWB statistics are empty"; + return; + } + RGB<double> rgbMeans = calculateRgbMeans(frameContext, awb); /* |