影像组学分析过程中,最大ROI层面的统计

获取肿瘤的最大层面

影像组学分析过程中,有时候会进行最大层面的计算。
本文记录我的计算ROI最大层面的思路,供大家参考。
因为代码是我自己摸索写出,如果其中有什么疑问或者觉得代码有什么问题的,请联系xh542428798@hotmail.com,以便修正。

思路

ROI是N×M×H的矩阵,里面只有0和1,先统计每个层面的0和1的数目。
然后比较每个层面的1的大小,1最多的就是最大ROI层面。
具体操作如下:

import SimpleITK as sitkmask_img = sitk.ReadImage(img_path)
mask_img_arr = sitk.GetArrayFromImage(mask_img)all_slice_lable_count = cal_ROI_counter(mask_img_arr) # 输入mask_img_arry,获取每个层面的不同label的面积值max_value = -1 # 最大ROI的lable值
max_area = 0 # 最大ROI的面积
max_id = 1314 # 最大ROI的index
for i in range(len(all_slice_lable_count)):if all_slice_lable_count[i]:   temp_area = max(all_slice_lable_count[i].values())temp_value = max(all_slice_lable_count[i], key=all_slice_lable_count[i].get)if temp_area >= max_area:max_area = temp_areamax_value = temp_valuemax_id = ielse:continue

获取肿瘤的最大层面,max_id是最大ROI的index

# 获取肿瘤的最大层面,max_id是最大ROI的index
return mask_img_arr,max_value,max_id,max_area

相关函数定义区

def cal_ROI_counter(mask_img_arr): # 输入mask_img_arry,获取每个层面的不同label的面积值all_slice_lable_count = []for i in range(mask_img_arr.shape[0]):dc = dict(Counter(mask_img_arr[i,:,:].flatten()))del dc[0]all_slice_lable_count.append(dc)return all_slice_lable_count

PS:如果有疑问和错误,可以联系xh542428798@hotmail.com,但是苦逼上班族996,如果需要帮忙解决小白报错,求各位老板付费咨询,万分感谢!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部