def returnCenterline(fname, div): if centerline.returnCenterline(fname, 1, div) == 1:#this save the centerline: centerline/file_name_div_centerline.nii.gz div += 1 returnCenterline(fname, div) else: #print centerline.returnCenterline(fname, 1, div) #print div return div
def returnCenterline(fname, div): if centerline.returnCenterline( fname, 1, div ) == 1: #this save the centerline: centerline/file_name_div_centerline.nii.gz div += 1 returnCenterline(fname, div) else: #print centerline.returnCenterline(fname, 1, div) #print div return div
def main(file_name, smooth = 3): div = [5] #,7,9,11,13,15,19,23,25] #div = int(div) path, fname, ext_fname = sct.extract_fname(file_name) print 'file to be processed: ',file_name print 'Applying propseg...' fname_seg = fname+'_seg' cmd = 'sct_propseg -i '+file_name+' -o . -t t2' sct.run(cmd) print 'image smoothing...' fname_smooth = fname_seg+'_smooth' print 'Gauss sigma: ', smooth cmd = 'fslmaths '+fname_seg+' -s '+str(smooth)+' '+fname_smooth+ext_fname sct.run(cmd) for d in div: add = d - 1 e = 1 print 'generating the centerline...' while e == 1: add += 1 e = centerline.returnCenterline(fname_smooth+ext_fname, 1, add) d = add #d = returnCenterline(fname_smooth+ext_fname, d) print 'straightening... d = ', str(d) fcenterline = './centerlines/'+fname_smooth+'_'+str(d)+'_centerline.nii.gz' cmd = 'sct_straighten_spinalcord -i '+file_name+' -c '+fcenterline sct.run(cmd) ''' print 'applying propseg' fname_straight = fname+'_straight'+ext_fname final_file_name = fname+'_straight_seg'+ext_fname cmd = 'sct_propseg -i '+fname_straight+' -t t2' ''' print 'apply warp to segmentation' #final_file_name = fname+'_straightttt_seg'+ext_fname final_file_name = fname+'_straight_seg'+ext_fname #cmd = 'sct_WarpImageMultiTransform 3 '+fname_seg+ext_fname+' '+final_file_name+' warp_curve2straight.nii.gz' cmd = 'sct_WarpImageMultiTransform 3 '+fname_smooth+ext_fname+' '+final_file_name+' warp_curve2straight.nii.gz' sct.run(cmd) print 'annalyzing the straightened file' linear_fitting.returnSquaredErrors(final_file_name, d) os.remove(fname_seg+ext_fname) os.remove(fname_smooth+ext_fname) os.remove('warp_curve2straight.nii.gz') os.remove('warp_straight2curve.nii.gz')