Source code for kwimage.cli.stack_images

#!/usr/bin/env python3
import scriptconfig as scfg
import ubelt as ub


[docs] class StackImagesConfig(scfg.DataConfig): input_fpaths = scfg.Value(None, nargs='+', position=1, help='input') axis = scfg.Value('grid', help='stack axis') pad = scfg.Value(None) out = scfg.Value(None, help='output path. If unspecified uses a hash')
[docs] def main(cmdline=1, **kwargs): """ Example: >>> # xdoctest: +SKIP >>> # xdoctest: +REQUIRES(module:scriptconfig) >>> cmdline = 0 >>> kwargs = dict( >>> ) >>> main(cmdline=cmdline, **kwargs) """ import kwimage config = StackImagesConfig.legacy(cmdline=cmdline, data=kwargs) print('config = ' + ub.urepr(dict(config), nl=1)) fpaths = config['input_fpaths'] images = [kwimage.imread(p) for p in ub.ProgIter(fpaths, desc='read images')] if config['axis'] == 'grid': canvas = kwimage.stack_images_grid(images, pad=config['pad']) else: canvas = kwimage.stack_images(images, axis=config['axis'], pad=config['pad']) out_fpath = config['out'] if out_fpath is None: out_fpath = 'stack_' + ub.hash_data(fpaths)[0:16] + '.png' print(f'write to: {out_fpath}') kwimage.imwrite(out_fpath, canvas)
if __name__ == '__main__': """ CommandLine: python ~/code/kwimage/kwimage/cli/stack_images.py python -m stack_images """ main()