Message ID | 20240628104828.2928109-12-stefan.klug@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
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@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 ? > if color is None: And should an error be reported here ? This hunk seems to be a candidate for a separate patch. > 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 >
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@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
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})') if color is None: 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
Add the missing pieces and store the result inside the image object. Signed-off-by: Stefan Klug <stefan.klug@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(-)