summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Klug <stefan.klug@ideasonboard.com>2024-06-11 09:41:00 +0200
committerStefan Klug <stefan.klug@ideasonboard.com>2024-07-05 22:38:16 +0200
commit611242b259b0450755e7d8cddba0c8026fc20c7f (patch)
tree12ffeca96a416f56e4ab500ec603448c8c98e2ae
parent6672c49cbfc3de5e59b3176ec4e72df7c843d193 (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.py1
-rw-r--r--utils/tuning/libtuning/macbeth.py13
-rw-r--r--utils/tuning/libtuning/utils.py4
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