Mercurial > repos > imgteam > 2d_simple_filter
view filter_image.py @ 3:6c4b22ef2b81 draft
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/2d_simple_filter/ commit c045f067a57e8308308cf6329060c7ccd3fc372f
author | imgteam |
---|---|
date | Thu, 04 Apr 2024 15:23:42 +0000 |
parents | f70b215d155c |
children | d51310ab328a |
line wrap: on
line source
import argparse 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 = skimage.io.imread(args.input.name) res = filters[args.filter](im, args.size) skimage.io.imsave(args.output.name, res, plugin='tifffile')