[PATCH] utils: tuning: libtuning: Fix tuning for non RGGB RAWs

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Dec 17 16:41:55 CET 2024


On Tue, Dec 17, 2024 at 03:59:35PM +0100, Stefan Klug wrote:
> Tuning fails for raw images that don't have the channels ordered in
> RGGB.  In 19dc8c28f63c ("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 at ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  utils/tuning/libtuning/ctt_awb.py | 3 +--
>  utils/tuning/libtuning/image.py   | 2 +-
>  2 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/utils/tuning/libtuning/ctt_awb.py b/utils/tuning/libtuning/ctt_awb.py
> index 117612f2582a..240f37e644bb 100644
> --- a/utils/tuning/libtuning/ctt_awb.py
> +++ b/utils/tuning/libtuning/ctt_awb.py
> @@ -302,10 +302,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.color
> -        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
>          """
> @@ -315,7 +315,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
> diff --git a/utils/tuning/libtuning/image.py b/utils/tuning/libtuning/image.py
> index c8911a0ff125..ecd334bdc67f 100644
> --- a/utils/tuning/libtuning/image.py
> +++ b/utils/tuning/libtuning/image.py
> @@ -135,6 +135,6 @@ class Image:
>  
>              all_patches.append(ch_patches)
>  
> -        self.patches = all_patches
> +        self.patches = np.array(all_patches)
>  
>          return not saturated

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list