Mercurial > repos > imgteam > 2d_histogram_equalization
diff histogram_equalization.py @ 1:77455af98d88 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:36 +0000 |
| parents | d54f14727f77 |
| children |
line wrap: on
line diff
--- a/histogram_equalization.py Tue Jul 23 14:06:42 2019 -0400 +++ b/histogram_equalization.py Fri Feb 20 09:56:36 2026 +0000 @@ -1,13 +1,22 @@ import argparse -import os import sys + +import giatools.io +import numpy as np +import skimage.exposure import skimage.io -import skimage.exposure 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__": @@ -17,7 +26,7 @@ parser.add_argument('h_type', choices=hOptions.keys(), help='histogram equalization method') args = parser.parse_args() - img_in = skimage.io.imread(args.input_file.name) + img_in = giatools.io.imread(args.input_file.name) res = hOptions[args.h_type](img_in) res = skimage.util.img_as_uint(res) skimage.io.imsave(args.out_file.name, res, plugin="tifffile")
