utils: tuning: libtuning: Fix tuning for non RGGB RAWs

Tuning fails for raw images that don't have the channels ordered in
RGGB.  In 19dc8c28f6 ("utils: tuning: libtuning: Implement the core of
libtuning") the channels of the image were reordered to RGGB
unconditionally in _read_image_dng(). That change was not applied to the
ctt_awb code, so that the channels were reordered twice. Fix by removing
the double ordering.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Tested-by: Isaac Scott <isaac.scott@ideasonboard.com>
Reviewed-by: Isaac Scott <isaac.scott@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Stefan Klug 2024-12-17 15:59:35 +01:00
parent 936a099eca
commit 24e00be9f3
2 changed files with 2 additions and 3 deletions

View file

@ -301,10 +301,10 @@ def get_alsc_patches(Img, colour_cals, grey=True):
patches for each channel, remembering to subtract blacklevel
If grey then only greyscale patches considered
"""
patches = Img.patches
if grey:
cen_coords = Img.cen_coords[3::4]
col = Img.col
patches = [np.array(Img.patches[i]) for i in Img.order]
r_patchs = patches[0][3::4] - Img.blacklevel_16
b_patchs = patches[3][3::4] - Img.blacklevel_16
"""
@ -314,7 +314,6 @@ def get_alsc_patches(Img, colour_cals, grey=True):
else:
cen_coords = Img.cen_coords
col = Img.color
patches = [np.array(Img.patches[i]) for i in Img.order]
r_patchs = patches[0] - Img.blacklevel_16
b_patchs = patches[3] - Img.blacklevel_16
g_patchs = (patches[1]+patches[2])/2 - Img.blacklevel_16

View file

@ -135,6 +135,6 @@ class Image:
all_patches.append(ch_patches)
self.patches = all_patches
self.patches = np.array(all_patches)
return not saturated