[v4,11/23] libtuning: Reactivate macbeth locator
diff mbox series

Message ID 20240705144209.418906-12-stefan.klug@ideasonboard.com
State Accepted
Headers show
Series
  • Add ccm calibration to libtuning
Related show

Commit Message

Stefan Klug July 5, 2024, 2:41 p.m. UTC
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>
---
 utils/tuning/libtuning/image.py   |  1 +
 utils/tuning/libtuning/macbeth.py | 13 ++++++++++---
 utils/tuning/libtuning/utils.py   |  4 ++--
 3 files changed, 13 insertions(+), 5 deletions(-)

Patch
diff mbox series

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 c70dfae049bc..93c6c94ea2b0 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