diff histogram_equalization.py @ 4:99e0ef91ea5e draft default tip

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/2d_histogram_equalization/ commit 558152251d5d7a1bf77db91aa5388aca7a68ae62
author imgteam
date Fri, 20 Feb 2026 09:56:44 +0000
parents b1c2c210813c
children
line wrap: on
line diff
--- a/histogram_equalization.py	Wed Apr 24 08:11:54 2024 +0000
+++ b/histogram_equalization.py	Fri Feb 20 09:56:44 2026 +0000
@@ -2,13 +2,21 @@
 import sys
 
 import giatools.io
+import numpy as np
 import skimage.exposure
 import skimage.io
 import skimage.util
 
+
+def rescale(img):
+    assert np.issubdtype(img.dtype, np.floating), str(img.dtype)  # sanity check
+    img = img - img.min()
+    return img / img.max() if img.max() != 0 else 1
+
+
 hOptions = {
-    'default': lambda img_raw: skimage.exposure.equalize_hist(img_raw),
-    'clahe': lambda img_raw: skimage.exposure.equalize_adapthist(img_raw)
+    'default': lambda img_raw: rescale(skimage.exposure.equalize_hist(img_raw)),  # rescale needed for values to be in [0, 1]
+    'clahe': lambda img_raw: skimage.exposure.equalize_adapthist(img_raw),  # produces image with values in [0, 1]
 }
 
 if __name__ == "__main__":