Mercurial > repos > imgteam > 2d_simple_filter
view filter_image.py @ 4:d51310ab328a draft default tip
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/2d_simple_filter/ commit c86a1b93cb7732f7331a981d13465653cc1a2790
author | imgteam |
---|---|
date | Wed, 24 Apr 2024 08:12:03 +0000 |
parents | 6c4b22ef2b81 |
children |
line wrap: on
line source
import argparse import giatools.io import scipy.ndimage as ndi import skimage.io import skimage.util from skimage.morphology import disk filters = { 'gaussian': lambda im, sigma: ndi.gaussian_filter(im, sigma), 'median': lambda im, radius: ndi.median_filter(im, footprint=disk(radius)), 'prewitt_h': lambda im, *args: ndi.prewitt(im, axis=1), 'prewitt_v': lambda im, *args: ndi.prewitt(im, axis=0), 'sobel_h': lambda im, *args: ndi.sobel(im, axis=1), 'sobel_v': lambda im, *args: ndi.sobel(im, axis=0), } if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('input', type=argparse.FileType('r'), help='Input file') parser.add_argument('output', type=argparse.FileType('w'), help='Output file (TIFF)') parser.add_argument('filter', choices=filters.keys(), help='Filter to be used') parser.add_argument('size', type=float, help='Size of the filter (e.g., radius, sigma)') args = parser.parse_args() im = giatools.io.imread(args.input.name) res = filters[args.filter](im, args.size) skimage.io.imsave(args.output.name, res, plugin='tifffile')