diff options
author | Stefan Klug <stefan.klug@ideasonboard.com> | 2024-06-11 09:41:00 +0200 |
---|---|---|
committer | Stefan Klug <stefan.klug@ideasonboard.com> | 2024-07-05 22:38:16 +0200 |
commit | 611242b259b0450755e7d8cddba0c8026fc20c7f (patch) | |
tree | 12ffeca96a416f56e4ab500ec603448c8c98e2ae | |
parent | 6672c49cbfc3de5e59b3176ec4e72df7c843d193 (diff) |
libtuning: Reactivate macbeth locator
Add the missing pieces and store the result inside the image object.
This solution is not very nice, and should be refactored soon. For that
we need a concept to collect temperature and/or image specific results
in a central place. For now it serves the purpose.
Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r-- | utils/tuning/libtuning/image.py | 1 | ||||
-rw-r--r-- | utils/tuning/libtuning/macbeth.py | 13 | ||||
-rw-r--r-- | utils/tuning/libtuning/utils.py | 4 |
3 files changed, 13 insertions, 5 deletions
diff --git a/utils/tuning/libtuning/image.py b/utils/tuning/libtuning/image.py index 2c4d774f..c8911a0f 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 28051de8..4a2006b0 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 c70dfae0..93c6c94e 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__) @@ -127,7 +127,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 |