@@ -319,26 +319,44 @@ def resample_sitk_image_to_given_spacing(image, spacing, order):
319319 out_img .SetDirection (image .GetDirection ())
320320 return out_img
321321
322- def get_image_info (img_names ):
323- space0 , space1 , slices = [], [], []
322+ def get_image_info (img_names , output_csv = None ):
323+ spacing_list , shape_list = [], []
324324 for img_name in img_names :
325325 img_obj = sitk .ReadImage (img_name )
326326 img_arr = sitk .GetArrayFromImage (img_obj )
327327 spacing = img_obj .GetSpacing ()
328- slices .append (img_arr .shape [0 ])
329- space0 .append (spacing [0 ])
330- space1 .append (spacing [2 ])
331- print (img_name , spacing , img_arr .shape )
332-
333- space0 = np .asarray (space0 )
334- space1 = np .asarray (space1 )
335- slices = np .asarray (slices )
336- print ("intra-slice spacing" )
337- print (space0 .min (), space0 .max (), space0 .mean ())
338- print ("inter-slice spacing" )
339- print (space1 .min (), space1 .max (), space1 .mean ())
340- print ("slice number" )
341- print (slices .min (), slices .max (), slices .mean ())
328+ shape = img_arr .shape
329+ spacing_list .append (spacing )
330+ shape_list .append (shape )
331+ print (img_name , spacing , shape )
332+ spacings = np .asarray (spacing_list )
333+ shapes = np .asarray (shape_list )
334+ spacing_min = spacings .min (axis = 0 )
335+ spacing_max = spacings .max (axis = 0 )
336+ spacing_median = np .percentile (spacings , 50 , axis = 0 )
337+ print ("spacing min" , spacing_min )
338+ print ("spacing max" , spacing_max )
339+ print ("spacing median" , spacing_median )
340+
341+ shape_min = shapes .min (axis = 0 )
342+ shape_max = shapes .max (axis = 0 )
343+ shape_median = np .percentile (shapes , 50 , axis = 0 )
344+ print ("shape min" , shape_min )
345+ print ("shape max" , shape_max )
346+ print ("shape median" , shape_median )
347+
348+ if (output_csv is not None ):
349+ img_names_short = [item .split ("/" )[- 1 ] for item in img_names ]
350+ img_names_short .extend (["spacing min" , "spacing max" , "spacing median" ,
351+ "shape min" , "shape max" , "shape median" ])
352+ spacing_list .extend ([spacing_min , spacing_max , spacing_median ,
353+ shape_min , shape_max , shape_median ])
354+ shape_list .extend (['' ]* 6 )
355+ out_dict = {"img_name" : img_names_short ,
356+ "spacing" : spacing_list ,
357+ "shape" : shape_list }
358+ df = pd .DataFrame .from_dict (out_dict )
359+ df .to_csv (output_csv , index = False )
342360
343361def get_average_mean_std (data_dir , data_csv ):
344362 df = pd .read_csv (data_csv )
0 commit comments