[PATCH v2 22/25] libtuning: lsc: Prevent negative values

Stefan Klug stefan.klug at ideasonboard.com
Fri Jun 28 12:47:15 CEST 2024


In cases where the calibration image contains super dark areas, or when
an invalid blacklevel was supplied, the grid might get close to zero or
negative. This would have bad effects on the 1/grid later. So clamp the
values to a small positive number.

Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
---
 utils/tuning/libtuning/modules/lsc/lsc.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/utils/tuning/libtuning/modules/lsc/lsc.py b/utils/tuning/libtuning/modules/lsc/lsc.py
index 344a07a3d443..b6a24cf42874 100644
--- a/utils/tuning/libtuning/modules/lsc/lsc.py
+++ b/utils/tuning/libtuning/modules/lsc/lsc.py
@@ -59,7 +59,8 @@ class LSC(Module):
     def _lsc_single_channel(self, channel: np.array,
                             image: lt.Image, green_grid: np.array = None):
         grid = self._get_grid(channel, image.w, image.h)
-        grid -= image.blacklevel_16
+        grid = np.maximum(grid - image.blacklevel_16, 0.1)
+
         if green_grid is None:
             table = np.reshape(1 / grid, self.sector_shape[::-1])
         else:
-- 
2.43.0



More information about the libcamera-devel mailing list