Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Script to compute metrics from nifti files
  4. """
  5. import matplotlib.pyplot as plt
  6. import SimpleITK as sitk
  7. import os
  8.  
  9. def calculate_metrics(nifti_folder, output_folder, metric_filename):
  10.     '''
  11.    Input:
  12.        nifti_folder: Folder containing nifti files -patientpack_scani.nii for i=1,6;
  13.        output_folder: Folder where you want the metric file saved to
  14.        metric_filename: name of metric file e.g "abcde.txt"
  15.    Function makes a metric file:
  16.        patientpack,metric for scan3, m for scan 5
  17.    '''
  18.     metricfile=open(output_folder+metric_filename,"w+")
  19.    
  20.     registration_method = sitk.ImageRegistrationMethod()
  21.    
  22.    
  23.     registration_method.SetMetricSamplingStrategy(registration_method.RANDOM)
  24.     registration_method.SetMetricSamplingPercentage(0.01)
  25.     registration_method.SetInterpolator(sitk.sitkLinear)
  26.    
  27.     #registration_method.SetMetricAsJointHistogramMutualInformation()
  28.     registration_method.SetMetricAsMattesMutualInformation()
  29.    
  30.    
  31.    
  32.     for filename in os.listdir(nifti_folder):
  33.         if "scan1" in filename:
  34.             #print(filename.replace("_scan1.nii",""))
  35.             patientpack= filename.replace("_scan1.nii","")
  36.             print(patientpack)
  37.            
  38.             scan1= nifti_folder + filename
  39.             scan3= nifti_folder + patientpack + "_scan3.nii"
  40.             scan5= nifti_folder + patientpack + "_scan5.nii"
  41.            
  42.             scan1_image= sitk.ReadImage(scan1, sitk.sitkFloat32)
  43.             scan3_image= sitk.ReadImage(scan3, sitk.sitkFloat32)
  44.             scan5_image= sitk.ReadImage(scan5, sitk.sitkFloat32)
  45.            
  46.             metric_3= registration_method.MetricEvaluate(scan1_image, scan3_image)
  47.             metric_5= registration_method.MetricEvaluate(scan1_image, scan5_image)
  48.            
  49.             metricfile.write(patientpack+","+str(metric_3)+","+str(metric_5)+"\n")
  50.    
  51.        
  52.        
  53. nifti_folder= "D:/data/MPhys2019/PETCT-HN/12-11/nonrigid_fullheads/nonrigid_nifti/"
  54. output_folder= "D:/data/MPhys2019/PETCT-HN/12-11/nonrigid_fullheads/"
  55. metric_filename= "Metric_sitk_MATTES.txt"
  56.  
  57. calculate_metrics(nifti_folder,output_folder,metric_filename)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement