Spaces:
Running
Running
| import sys | |
| import argparse | |
| import os | |
| def path(string): | |
| if os.path.exists(string): | |
| return string | |
| else: | |
| sys.exit(f'File not found: {string}') | |
| def main(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('input', metavar='input', type=path, help='Path to the input image, should be .nifti') | |
| parser.add_argument('output', metavar='output', type=str, help='Filepath for output tumormask') | |
| parser.add_argument('--lung-filter', action='store_true', help='whether to apply lungmask postprocessing.') | |
| parser.add_argument('--threshold', metavar='threshold', type=float, default=0.5, | |
| help='which threshold to use for assigning voxel-wise classes.') | |
| parser.add_argument('--radius', metavar='radius', type=int, default=1, | |
| help='which radius to use for morphological post-processing segmentation smoothing.') | |
| parser.add_argument('--batch-size', metavar='batch-size', type=int, default=5, | |
| help='which batch size to use for lungmask inference.') | |
| parser.add_argument('--cpu', action='store_true', help='whether to force computation to happen on CPU only.') | |
| args = parser.parse_args(sys.argv[1:]) | |
| # whether to force CPU computation | |
| if args.cpu: | |
| os.environ["CUDA_VISIBLE_DEVICES"] = "-1" | |
| # check if chosen threshold is in accepted range | |
| if not (((args.threshold >= 0.0) and (args.threshold <= 1.0)) or (args.threshold == -1)): | |
| raise ValueError("Chosen threshold must be -1 or in range [0.0, 1.0], but was:", args.threshold) | |
| # import method here to enable faster testing | |
| from lungtumormask import mask | |
| mask.mask(args.input, args.output, args.lung_filter, args.threshold, args.radius, args.batch_size) | |