comparison 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
comparison
equal deleted inserted replaced
3:b1c2c210813c 4:99e0ef91ea5e
1 import argparse 1 import argparse
2 import sys 2 import sys
3 3
4 import giatools.io 4 import giatools.io
5 import numpy as np
5 import skimage.exposure 6 import skimage.exposure
6 import skimage.io 7 import skimage.io
7 import skimage.util 8 import skimage.util
8 9
10
11 def rescale(img):
12 assert np.issubdtype(img.dtype, np.floating), str(img.dtype) # sanity check
13 img = img - img.min()
14 return img / img.max() if img.max() != 0 else 1
15
16
9 hOptions = { 17 hOptions = {
10 'default': lambda img_raw: skimage.exposure.equalize_hist(img_raw), 18 'default': lambda img_raw: rescale(skimage.exposure.equalize_hist(img_raw)), # rescale needed for values to be in [0, 1]
11 'clahe': lambda img_raw: skimage.exposure.equalize_adapthist(img_raw) 19 'clahe': lambda img_raw: skimage.exposure.equalize_adapthist(img_raw), # produces image with values in [0, 1]
12 } 20 }
13 21
14 if __name__ == "__main__": 22 if __name__ == "__main__":
15 parser = argparse.ArgumentParser(description='Histogram equalization') 23 parser = argparse.ArgumentParser(description='Histogram equalization')
16 parser.add_argument('input_file', type=argparse.FileType('r'), default=sys.stdin, help='input file') 24 parser.add_argument('input_file', type=argparse.FileType('r'), default=sys.stdin, help='input file')