def main(): """Commandline interface.""" parser = argparse.ArgumentParser() parser.add_argument('filename', metavar='path', nargs='+', help="Path to image. Multiple paths can be provided.") parser.add_argument( '--mode', type=str, required=False, metavar=cfg.mode, default=cfg.mode, help="Gif creation mode. Available options are: 'normal', \ 'pseudocolor', 'depth', 'rgb'") parser.add_argument('--fps', type=int, required=False, metavar=cfg.fps, default=cfg.fps, help="Frames per second.") parser.add_argument('--size', type=float, required=False, metavar=cfg.size, default=cfg.size, help="Image resizing factor.") parser.add_argument( '--cmap', type=str, required=False, metavar=cfg.cmap, default=cfg.cmap, help="Color map. Used only in combination with 'pseudocolor' mode.") args = parser.parse_args() cfg.mode = (args.mode).lower() cfg.size = args.size cfg.fps = args.fps cfg.cmap = args.cmap # Welcome message welcome_str = '{} {}'.format('gif_your_nifti', __version__) welcome_decor = '=' * len(welcome_str) print('{}\n{}\n{}'.format(welcome_decor, welcome_str, welcome_decor)) print('Selections:') print(' mode = {}'.format(cfg.mode)) print(' size = {}'.format(cfg.size)) print(' fps = {}'.format(cfg.fps)) # Determine gif creation mode if cfg.mode in ['normal', 'pseudocolor', 'depth']: for f in args.filename: if cfg.mode == 'normal': core.write_gif_normal(f, cfg.size, cfg.fps) elif cfg.mode == 'pseudocolor': print(' cmap = {}'.format(cfg.cmap)) core.write_gif_pseudocolor(f, cfg.size, cfg.fps, cfg.cmap) elif cfg.mode == 'depth': core.write_gif_depth(f, cfg.size, cfg.fps) elif cfg.mode == 'rgb': if len(args.filename) != 3: raise ValueError('RGB mode requires 3 input files.') else: core.write_gif_rgb(args.filename[0], args.filename[1], args.filename[2], cfg.size, cfg.fps) else: raise ValueError("Unrecognized mode.") print('Finished.')
def main(): """Commandline interface.""" parser = argparse.ArgumentParser() parser.add_argument('filename', metavar='path', nargs='+', help="Path to image. Multiple paths can be provided.") parser.add_argument( '--mode', type=str, required=False, metavar=cfg.mode, default=cfg.mode, help="Gif creation mode. Available options are: 'normal', \ 'pseudocolor', 'depth', 'rgb'") parser.add_argument('--fps', type=int, required=False, metavar=cfg.fps, default=cfg.fps, help="Frames per second.") parser.add_argument('--size', type=float, required=False, metavar=cfg.size, default=cfg.size, help="Image resizing factor.") parser.add_argument( '--cmap', type=str, required=False, metavar=cfg.cmap, default=cfg.cmap, help="Color map. Used only in combination with 'pseudocolor' mode.") parser.add_argument('--sliceCor', type=int, required=False, metavar=cfg.sliceCor, default=cfg.sliceCor, help="Slice index for Coronal view.") parser.add_argument('--sliceSag', type=int, required=False, metavar=cfg.sliceSag, default=cfg.sliceSag, help="Slice index for Sagital view.") parser.add_argument('--sliceAx', type=int, required=False, metavar=cfg.sliceAx, default=cfg.sliceAx, help="Slice index for Axial view.") parser.add_argument( '--slicesOrder', type=str, required=False, metavar=cfg.slicesOrder, default='csa', help="Order of the three columns cortical, sagital, axial." " Can be csa, cas, asc, acs, sac or sca.") parser.add_argument('--out_filename', type=str, required=False, default=None, help="Output GIF filename with extension.") args = parser.parse_args() cfg.mode = (args.mode).lower() cfg.size = args.size cfg.fps = args.fps cfg.cmap = args.cmap cfg.slices = [args.sliceCor, args.sliceSag, args.sliceAx] cfg.slicesOrder = args.slicesOrder # Determine gif creation mode if cfg.mode in ['normal', 'pseudocolor', 'depth']: for f in args.filename: if cfg.mode == 'normal': core.write_gif_normal(f, cfg.size, cfg.fps, cfg.slices, cfg.slicesOrder, args.out_filename) elif cfg.mode == 'pseudocolor': core.write_gif_pseudocolor(f, cfg.size, cfg.fps, cfg.cmap, cfg.slices, cfg.slicesOrder, args.out_filename) elif cfg.mode == 'depth': core.write_gif_depth(f, cfg.size, cfg.fps, args.out_filename) elif cfg.mode == 'rgb': if len(args.filename) != 3: raise ValueError('RGB mode requires 3 input files.') else: core.write_gif_rgb(args.filename[0], args.filename[1], args.filename[2], cfg.size, cfg.fps, args.out_filename) else: raise ValueError("Unrecognized mode.")
def main(): """Commandline interface.""" parser = argparse.ArgumentParser() parser.add_argument('filename', metavar='path', nargs='+', help="Path to image. Multiple paths can be provided.") parser.add_argument( '--mode', type=str, required=False, metavar=cfg.mode, default=cfg.mode, help="Gif creation mode. Available options are: 'normal', \ 'pseudocolor', 'depth', 'rgb'") parser.add_argument('--fps', type=int, required=False, metavar=cfg.fps, default=cfg.fps, help="Frames per second.") parser.add_argument('--size', type=float, required=False, metavar=cfg.size, default=cfg.size, help="Image resizing factor.") parser.add_argument( '--cmap', type=str, required=False, metavar=cfg.cmap, default=cfg.cmap, help="Color map. Used only in combination with 'pseudocolor' mode.") parser.add_argument('--iso', action='store_true', required=False, default=cfg.iso, help="Resample image to appear isotropic.") parser.add_argument( '--time', type=str, required=False, metavar='method', default=cfg.time, help= "Gif along time axis using 'coronal', 'sagittal', or the 'horizontal' plane." ) parser.add_argument('--cols', type=int, required=False, metavar='columns', default=cfg.cols, help="Number of columns to use in 4D grid mode.") args = parser.parse_args() cfg.mode = (args.mode).lower() cfg.size = args.size cfg.fps = args.fps cfg.cmap = args.cmap cfg.iso = args.iso cfg.time = args.time cfg.cols = args.cols if 'cols' in vars(args) and 'time' not in vars(args): parser.error('Option --cols requires an option for --time') # Welcome message welcome_str = '{} {}'.format('gif_your_nifti', __version__) welcome_decor = '=' * len(welcome_str) print('{}\n{}\n{}'.format(welcome_decor, welcome_str, welcome_decor)) print('Selections:') print(' mode = {}'.format(cfg.mode)) print(' size = {}'.format(cfg.size)) print(' fps = {}'.format(cfg.fps)) print(' iso = {}'.format(cfg.iso)) print(' time = {}'.format(cfg.time)) print(' cols = {}'.format(cfg.cols)) # Determine gif creation mode if cfg.mode in ['normal', 'pseudocolor', 'depth']: for f in args.filename: if cfg.mode == 'normal': core.write_gif_normal(f, cfg.size, cfg.fps, cfg.iso, cfg.time, cfg.cols) elif cfg.mode == 'pseudocolor': print(' cmap = {}'.format(cfg.cmap)) core.write_gif_pseudocolor(f, cfg.size, cfg.fps, cfg.cmap) elif cfg.mode == 'depth': core.write_gif_depth(f, cfg.size, cfg.fps) elif cfg.mode == 'rgb': if len(args.filename) != 3: raise ValueError('RGB mode requires 3 input files.') else: core.write_gif_rgb(args.filename[0], args.filename[1], args.filename[2], cfg.size, cfg.fps) else: raise ValueError("Unrecognized mode.") print('Finished.')
"""Example usage of gif_your_nifti.""" import gif_your_nifti.core as gif2nif # filename = 'mni_icbm152_t1_tal_nlin_asym_09c.nii' filename = r'C:\\Data\\Folder\\Subfolder\\5639\\CT-MRI-5639_MR_norm.nii' # Create a normal grayscale gif. gif2nif.write_gif_normal(filename) # Create a pseudocolored gif. gif2nif.write_gif_pseudocolor(filename, colormap='plasma') # Create a depth gif. gif2nif.write_gif_depth(filename) # Change the size of gifs. gif2nif.write_gif_pseudocolor(filename, size=0.5, colormap='cubehelix') gif2nif.write_gif_pseudocolor(filename, size=0.5, colormap='inferno') gif2nif.write_gif_pseudocolor(filename, size=0.5, colormap='viridis') # Create an RGB gif, based on gray matter, white matter and cerebrospinal fluid # images from MNI template. filename1 = 'mni_icbm152_gm_tal_nlin_asym_09c.nii' filename2 = 'mni_icbm152_wm_tal_nlin_asym_09c.nii' filename3 = 'mni_icbm152_csf_tal_nlin_asym_09c.nii' gif2nif.write_gif_rgb(filename1, filename2, filename3)