summaryrefslogtreecommitdiff
path: root/utils/raspberrypi/ctt/ctt.py
diff options
context:
space:
mode:
authorWilliam Vinnicombe <william.vinnicombe@raspberrypi.com>2022-07-11 11:26:27 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-08-02 16:59:06 +0300
commit79b4c1c51ed82f115a3df02279f252d0cc37a620 (patch)
tree854a8dcd63d59ad40eb8cf4bb702697ada39beb8 /utils/raspberrypi/ctt/ctt.py
parent91cf84fd4e6d2b416b4545686fa06661e7b945d5 (diff)
utils: raspberrypi: ctt: Add alsc_only method
The ctt would not work if only passed alsc images. Add alsc_only.py to run alsc calibration only, and modify check_imgs to allow for no macbeth chart images. Example usage would be ./alsc_only.py -i tuning-images/ -o sensor.json with the same optional arguments as the original ctt. Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'utils/raspberrypi/ctt/ctt.py')
-rwxr-xr-xutils/raspberrypi/ctt/ctt.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/utils/raspberrypi/ctt/ctt.py b/utils/raspberrypi/ctt/ctt.py
index df98db80..cd89f177 100755
--- a/utils/raspberrypi/ctt/ctt.py
+++ b/utils/raspberrypi/ctt/ctt.py
@@ -668,7 +668,7 @@ class Camera:
- incorrect filename/extension
- images from different cameras
"""
- def check_imgs(self):
+ def check_imgs(self, macbeth=True):
self.log += '\n\nImages found:'
self.log += '\nMacbeth : {}'.format(len(self.imgs))
self.log += '\nALSC : {} '.format(len(self.imgs_alsc))
@@ -676,10 +676,14 @@ class Camera:
"""
check usable images found
"""
- if len(self.imgs) == 0:
+ if len(self.imgs) == 0 and macbeth:
print('\nERROR: No usable macbeth chart images found')
self.log += '\nERROR: No usable macbeth chart images found'
return 0
+ elif len(self.imgs) == 0 and len(self.imgs_alsc) == 0:
+ print('\nERROR: No usable images found')
+ self.log += '\nERROR: No usable images found'
+ return 0
"""
Double check that every image has come from the same camera...
"""
@@ -708,7 +712,7 @@ class Camera:
return 0
-def run_ctt(json_output, directory, config, log_output):
+def run_ctt(json_output, directory, config, log_output, alsc_only=False):
"""
check input files are jsons
"""
@@ -770,6 +774,8 @@ def run_ctt(json_output, directory, config, log_output):
try:
Cam = Camera(json_output)
Cam.log_user_input(json_output, directory, config, log_output)
+ if alsc_only:
+ disable = set(Cam.json.keys()).symmetric_difference({"rpi.alsc"})
Cam.disable = disable
Cam.plot = plot
Cam.add_imgs(directory, mac_config, blacklevel)
@@ -783,8 +789,9 @@ def run_ctt(json_output, directory, config, log_output):
ccm also technically does an awb but it measures this from the macbeth
chart in the image rather than using calibration data
"""
- if Cam.check_imgs():
- Cam.json['rpi.black_level']['black_level'] = Cam.blacklevel_16
+ if Cam.check_imgs(macbeth=not alsc_only):
+ if not alsc_only:
+ Cam.json['rpi.black_level']['black_level'] = Cam.blacklevel_16
Cam.json_remove(disable)
print('\nSTARTING CALIBRATIONS')
Cam.alsc_cal(luminance_strength, do_alsc_colour)