andreped's picture
Added option to output probability map from CLI
ff304eb unverified
raw
history blame
No virus
1.78 kB
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)