def main(args=None): if args is None: args = sys.argv[1:] # create param objects param_seg = ParamSeg() param_data = ParamData() param_model = ParamModel() param = Param() # get parser parser = get_parser() arguments = parser.parse(args) # set param arguments ad inputted by user param_seg.fname_im = arguments["-i"] param_seg.fname_im_original = arguments["-i"] param_seg.fname_seg = arguments["-s"] if '-vertfile' in arguments: if extract_fname(arguments['-vertfile'])[1].lower() == "none": param_seg.fname_level = None elif os.path.isfile(arguments['-vertfile']): param_seg.fname_level = arguments['-vertfile'] else: param_seg.fname_level = None printv('WARNING: -vertfile input file: "' + arguments['-vertfile'] + '" does not exist.\nSegmenting GM without using vertebral information', 1, 'warning') if '-denoising' in arguments: param_data.denoising = bool(int(arguments['-denoising'])) if '-normalization' in arguments: param_data.normalization = bool(int(arguments['-normalization'])) if '-p' in arguments: param_data.register_param = arguments['-p'] if '-w-levels' in arguments: param_seg.weight_level = arguments['-w-levels'] if '-w-coordi' in arguments: param_seg.weight_coord = arguments['-w-coordi'] if '-thr-sim' in arguments: param_seg.thr_similarity = arguments['-thr-sim'] if '-model' in arguments: param_model.path_model_to_load = os.path.abspath(arguments['-model']) if '-res-type' in arguments: param_seg.type_seg = arguments['-res-type'] if '-ratio' in arguments: param_seg.ratio = arguments['-ratio'] if '-ref' in arguments: param_seg.fname_manual_gmseg = arguments['-ref'] if '-ofolder' in arguments: param_seg.path_results = arguments['-ofolder'] if '-qc' in arguments: param_seg.qc = bool(int(arguments['-qc'])) if '-r' in arguments: param.rm_tmp = bool(int(arguments['-r'])) if '-v' in arguments: param.verbose = arguments['-v'] start_time = time.time() seg_gm = SegmentGM(param_seg=param_seg, param_data=param_data, param_model=param_model, param=param) seg_gm.segment() elapsed_time = time.time() - start_time printv('\nFinished! Elapsed time: ' + str(int(round(elapsed_time))) + 's', param.verbose) # save quality control and sct.printv(info) if param_seg.type_seg == 'bin': wm_col = 'Red' gm_col = 'Blue' b = '0,1' else: wm_col = 'Blue-Lightblue' gm_col = 'Red-Yellow' b = '0.4,1' if param_seg.qc: # output QC image printv('\nSave quality control images...', param.verbose, 'normal') im = Image(seg_gm.tmp_dir + param_seg.fname_im) im.save_quality_control(plane='axial', n_slices=5, seg=seg_gm.im_res_gmseg, thr=float(b.split(',')[0]), cmap_col='red-yellow', path_output=param_seg.path_results) if param.rm_tmp: # remove tmp_dir shutil.rmtree(seg_gm.tmp_dir) printv('\nDone! To view results, type:', param.verbose) printv('fslview ' + param_seg.fname_im_original + ' ' + seg_gm.fname_res_gmseg + ' -b ' + b + ' -l ' + gm_col + ' -t 0.7 ' + seg_gm.fname_res_wmseg + ' -b ' + b + ' -l ' + wm_col + ' -t 0.7 & \n', param.verbose, 'info')
def main(args=None): if args is None: args = sys.argv[1:] # create param objects param_seg = ParamSeg() param_data = ParamData() param_model = ParamModel() param = Param() # get parser parser = get_parser() arguments = parser.parse(args) # set param arguments ad inputted by user param_seg.fname_im = arguments["-i"] param_seg.fname_im_original = arguments["-i"] param_seg.fname_seg = arguments["-s"] if '-vertfile' in arguments: if extract_fname(arguments['-vertfile'])[1].lower() == "none": param_seg.fname_level = None elif os.path.isfile(arguments['-vertfile']): param_seg.fname_level = arguments['-vertfile'] else: param_seg.fname_level = None printv('WARNING: -vertfile input file: "' + arguments['-vertfile'] + '" does not exist.\nSegmenting GM without using vertebral information', 1, 'warning') if '-denoising' in arguments: param_data.denoising = bool(int(arguments['-denoising'])) if '-normalization' in arguments: param_data.normalization = bool(int(arguments['-normalization'])) if '-p' in arguments: param_data.register_param = arguments['-p'] if '-w-levels' in arguments: param_seg.weight_level = arguments['-w-levels'] if '-w-coordi' in arguments: param_seg.weight_coord = arguments['-w-coordi'] if '-thr-sim' in arguments: param_seg.thr_similarity = arguments['-thr-sim'] if '-model' in arguments: param_model.path_model_to_load = os.path.abspath(arguments['-model']) if '-res-type' in arguments: param_seg.type_seg = arguments['-res-type'] if '-ref' in arguments: param_seg.fname_manual_gmseg = arguments['-ref'] if '-ofolder' in arguments: param_seg.path_results = os.path.abspath(arguments['-ofolder']) param_seg.qc = arguments.get("-qc", None) if '-r' in arguments: param.rm_tmp = bool(int(arguments['-r'])) param.verbose = int(arguments.get('-v')) sct.init_sct(log_level=param.verbose, update=True) # Update log level start_time = time.time() seg_gm = SegmentGM(param_seg=param_seg, param_data=param_data, param_model=param_model, param=param) seg_gm.segment() elapsed_time = time.time() - start_time printv('\nFinished! Elapsed time: ' + str(int(np.round(elapsed_time))) + 's', param.verbose) # save quality control and sct.printv(info) if param_seg.type_seg == 'bin': wm_col = 'red' gm_col = 'blue' b = '0,1' else: wm_col = 'blue-lightblue' gm_col = 'red-yellow' b = '0.4,1' if param_seg.qc is not None: generate_qc(param_seg.fname_im_original, seg_gm.fname_res_gmseg, seg_gm.fname_res_wmseg, param_seg, args, os.path.abspath(param_seg.qc)) if param.rm_tmp: # remove tmp_dir sct.rmtree(seg_gm.tmp_dir) sct.display_viewer_syntax([param_seg.fname_im_original, seg_gm.fname_res_gmseg, seg_gm.fname_res_wmseg], colormaps=['gray', gm_col, wm_col], minmax=['', b, b], opacities=['1', '0.7', '0.7'], verbose=param.verbose)
def main(args=None): if args is None: args = sys.argv[1:] # create param objects param_seg = ParamSeg() param_data = ParamData() param_model = ParamModel() param = Param() # get parser parser = get_parser() arguments = parser.parse(args) # set param arguments ad inputted by user param_seg.fname_im = arguments["-i"] param_seg.fname_im_original = arguments["-i"] param_seg.fname_seg = arguments["-s"] if '-vertfile' in arguments: if extract_fname(arguments['-vertfile'])[1].lower() == "none": param_seg.fname_level = None elif os.path.isfile(arguments['-vertfile']): param_seg.fname_level = arguments['-vertfile'] else: param_seg.fname_level = None printv( 'WARNING: -vertfile input file: "' + arguments['-vertfile'] + '" does not exist.\nSegmenting GM without using vertebral information', 1, 'warning') if '-denoising' in arguments: param_data.denoising = bool(int(arguments['-denoising'])) if '-normalization' in arguments: param_data.normalization = bool(int(arguments['-normalization'])) if '-p' in arguments: param_data.register_param = arguments['-p'] if '-w-levels' in arguments: param_seg.weight_level = arguments['-w-levels'] if '-w-coordi' in arguments: param_seg.weight_coord = arguments['-w-coordi'] if '-thr-sim' in arguments: param_seg.thr_similarity = arguments['-thr-sim'] if '-model' in arguments: param_model.path_model_to_load = os.path.abspath(arguments['-model']) if '-res-type' in arguments: param_seg.type_seg = arguments['-res-type'] if '-ratio' in arguments: param_seg.ratio = arguments['-ratio'] if '-ref' in arguments: param_seg.fname_manual_gmseg = arguments['-ref'] if '-ofolder' in arguments: param_seg.path_results = os.path.abspath(arguments['-ofolder']) param_seg.qc = arguments.get("-qc", None) if '-r' in arguments: param.rm_tmp = bool(int(arguments['-r'])) if '-v' in arguments: param.verbose = arguments['-v'] start_time = time.time() seg_gm = SegmentGM(param_seg=param_seg, param_data=param_data, param_model=param_model, param=param) seg_gm.segment() elapsed_time = time.time() - start_time printv( '\nFinished! Elapsed time: ' + str(int(np.round(elapsed_time))) + 's', param.verbose) # save quality control and sct.printv(info) if param_seg.type_seg == 'bin': wm_col = 'red' gm_col = 'blue' b = '0,1' else: wm_col = 'blue-lightblue' gm_col = 'red-yellow' b = '0.4,1' if param_seg.qc is not None: generate_qc(param_seg.fname_im_original, seg_gm.fname_res_gmseg, seg_gm.fname_res_wmseg, param_seg, args, os.path.abspath(param_seg.qc)) if param.rm_tmp: # remove tmp_dir sct.rmtree(seg_gm.tmp_dir) sct.display_viewer_syntax([ param_seg.fname_im_original, seg_gm.fname_res_gmseg, seg_gm.fname_res_wmseg ], colormaps=['gray', gm_col, wm_col], minmax=['', b, b], opacities=['1', '0.7', '0.7'], verbose=param.verbose)
def main(args=None): if args is None: args = sys.argv[1:] # create param objects param_seg = ParamSeg() param_data = ParamData() param_model = ParamModel() param = Param() # get parser parser = get_parser() arguments = parser.parse(args) # set param arguments ad inputted by user param_seg.fname_im = arguments["-i"] param_seg.fname_im_original = arguments["-i"] param_seg.fname_seg = arguments["-s"] if '-vertfile' in arguments: if sct.extract_fname(arguments['-vertfile'])[1].lower() == "none": param_seg.fname_level = None elif os.path.isfile(arguments['-vertfile']): param_seg.fname_level = arguments['-vertfile'] else: sct.printv(parser.usage.generate(error='ERROR: -vertfile input file: "'+arguments['-vertfile']+'" does not exist.')) if '-denoising' in arguments: param_data.denoising = bool(int(arguments['-denoising'])) if '-normalization' in arguments: param_data.normalization = arguments['-normalization'] if '-p' in arguments: param_data.register_param = arguments['-p'] if '-w-levels' in arguments: param_seg.weight_level = arguments['-w-levels'] if '-w-coordi' in arguments: param_seg.weight_coord = arguments['-w-coordi'] if '-thr-sim' in arguments: param_seg.thr_similarity = arguments['-thr-sim'] if '-model' in arguments: param_model.path_model_to_load = os.path.abspath(arguments['-model']) if '-res-type' in arguments: param_seg.type_seg= arguments['-res-type'] if '-ratio' in arguments: param_seg.ratio = arguments['-ratio'] if '-ref' in arguments: param_seg.fname_manual_gmseg = arguments['-ref'] if '-ofolder' in arguments: param_seg.path_results= arguments['-ofolder'] if '-qc' in arguments: param_seg.qc = bool(int(arguments['-qc'])) if '-r' in arguments: param.rm_tmp= bool(int(arguments['-r'])) if '-v' in arguments: param.verbose= arguments['-v'] seg_gm = SegmentGM(param_seg=param_seg, param_data=param_data, param_model=param_model, param=param) start = time.time() seg_gm.segment() end = time.time() t = end - start printv('Done in ' + str(int(round(t / 60))) + ' min, ' + str(round(t % 60,1)) + ' sec', param.verbose, 'info')