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
Beispiel #2
0
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
Beispiel #3
0
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')