[PATCH v2 11/25] libtuning: Reactivate macbeth locator
Stefan Klug
stefan.klug at ideasonboard.com
Mon Jul 1 17:48:47 CEST 2024
Hi Laurent,
On Sat, Jun 29, 2024 at 02:09:46AM +0300, Laurent Pinchart wrote:
> Hi Stefan,
>
> Thank you for the patch.
>
> On Fri, Jun 28, 2024 at 12:47:04PM +0200, Stefan Klug wrote:
> > Add the missing pieces and store the result inside the image object.
> >
> > Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> > ---
> > utils/tuning/libtuning/image.py | 1 +
> > utils/tuning/libtuning/macbeth.py | 13 ++++++++++---
> > utils/tuning/libtuning/utils.py | 5 +++--
> > 3 files changed, 14 insertions(+), 5 deletions(-)
> >
> > diff --git a/utils/tuning/libtuning/image.py b/utils/tuning/libtuning/image.py
> > index 2c4d774f11e2..c8911a0ff125 100644
> > --- a/utils/tuning/libtuning/image.py
> > +++ b/utils/tuning/libtuning/image.py
> > @@ -24,6 +24,7 @@ class Image:
> > self.lsc_only = False
> > self.color = -1
> > self.lux = -1
> > + self.macbeth = None
> >
> > try:
> > self._load_metadata_exif()
> > diff --git a/utils/tuning/libtuning/macbeth.py b/utils/tuning/libtuning/macbeth.py
> > index 28051de8155c..4a2006b013dc 100644
> > --- a/utils/tuning/libtuning/macbeth.py
> > +++ b/utils/tuning/libtuning/macbeth.py
> > @@ -17,12 +17,15 @@ import logging
> > from sklearn import cluster as cluster
> >
> > from .ctt_ransac import get_square_verts, get_square_centres
> > -
> > -from libtuning.image import Image
> > +from .image import Image
> >
> > logger = logging.getLogger(__name__)
> >
> >
> > +class MacbethError(Exception):
> > + pass
> > +
> > +
> > # Reshape image to fixed width without distorting returns image and scale
> > # factor
> > def reshape(img, width):
> > @@ -377,7 +380,9 @@ def get_macbeth_chart(img, ref_data):
> >
> > # Catch macbeth errors and continue with code
> > except MacbethError as error:
> > - logger.warning(error)
> > + # \todo: This happens so many times in a normal run, that it shadows
> > + # all the relevant output
> > + # logger.warning(error)
> > return (0, None, None, False)
> >
> >
> > @@ -527,4 +532,6 @@ def locate_macbeth(image: Image, config: dict):
> > logger.warning(f'Macbeth patches have saturated in {image.path.name}')
> > return None
> >
> > + image.macbeth = macbeth
> > +
> > return macbeth
> > diff --git a/utils/tuning/libtuning/utils.py b/utils/tuning/libtuning/utils.py
> > index 00cf5a57512f..1e7991e84a70 100644
> > --- a/utils/tuning/libtuning/utils.py
> > +++ b/utils/tuning/libtuning/utils.py
> > @@ -17,7 +17,7 @@ import logging
> >
> > import libtuning as lt
> > from libtuning.image import Image
> > -from libtuning.macbeth import locate_macbeth
> > +from .macbeth import locate_macbeth
> >
> > logger = logging.getLogger(__name__)
> >
> > @@ -92,6 +92,7 @@ def load_images(input_dir: str, config: dict, load_nonlsc: bool, load_lsc: bool)
> > images = []
> > for f in files:
> > color, lux, lsc_only = _parse_image_filename(f)
> > + logger.info(f'Process image {f.name} (color={color}, lux={lux}, lsc_only={lsc_only})')
>
> Should this go after the color check ?
No, I also wanted to have an output on the alsc images.
>
> > if color is None:
>
> And should an error be reported here ?
Ah interesting. I added a warning there.
>
> This hunk seems to be a candidate for a separate patch.
Yes, you are right. It has nothing to do with the enabling mac beth. I
split it out.
Regards,
Stefan
>
> > continue
> >
> > @@ -127,7 +128,7 @@ def load_images(input_dir: str, config: dict, load_nonlsc: bool, load_lsc: bool)
> > continue
> >
> > # Handle macbeth
> > - macbeth = locate_macbeth(config)
> > + macbeth = locate_macbeth(image, config)
> > if macbeth is None:
> > continue
> >
>
> --
> Regards,
>
> Laurent Pinchart
More information about the libcamera-devel
mailing list