summaryrefslogtreecommitdiff
path: root/utils/tuning/libtuning/modules/awb/awb.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/tuning/libtuning/modules/awb/awb.py')
-rw-r--r--utils/tuning/libtuning/modules/awb/awb.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/utils/tuning/libtuning/modules/awb/awb.py b/utils/tuning/libtuning/modules/awb/awb.py
new file mode 100644
index 00000000..c154cf3b
--- /dev/null
+++ b/utils/tuning/libtuning/modules/awb/awb.py
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2024, Ideas On Board
+
+import logging
+
+from ..module import Module
+
+from libtuning.ctt_awb import awb
+import numpy as np
+
+logger = logging.getLogger(__name__)
+
+
+class AWB(Module):
+ type = 'awb'
+ hr_name = 'AWB (Base)'
+ out_name = 'GenericAWB'
+
+ def __init__(self, *, debug: list):
+ super().__init__()
+
+ self.debug = debug
+
+ def do_calculation(self, images):
+ logger.info('Starting AWB calculation')
+
+ imgs = [img for img in images if img.macbeth is not None]
+
+ gains, _, _ = awb(imgs, None, None, False)
+ gains = np.reshape(gains, (-1, 3))
+
+ return [{
+ 'ct': int(v[0]),
+ 'gains': [float(1.0 / v[1]), float(1.0 / v[2])]
+ } for v in gains]