Mercurial > repos > imgteam > 2d_histogram_equalization
view 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 source
import argparse 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: 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__": parser = argparse.ArgumentParser(description='Histogram equalization') parser.add_argument('input_file', type=argparse.FileType('r'), default=sys.stdin, help='input file') parser.add_argument('out_file', type=argparse.FileType('w'), default=sys.stdin, help='out file (TIFF)') parser.add_argument('h_type', choices=hOptions.keys(), help='histogram equalization method') args = parser.parse_args() 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")
