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

该博客介绍了一种计算肿瘤最大层面的方法,适用于影像组学分析。通过处理ROI(感兴趣区域)矩阵,统计每个层面0和1的数量,找出1最多的层面作为最大ROI。代码实现中,首先统计每个层面不同标签的面积,然后比较并找到最大面积的ROI,返回其索引、最大值、面积。相关函数包括计算每个层面标签计数的`cal_ROI_counter`。作者提供联系方式以解答疑问,同时表示对于解决编程问题,可能需要付费咨询。
摘要由CSDN通过智能技术生成

获取肿瘤的最大层面

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

思路

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

import SimpleITK as sitk

mask_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_area
            max_value = temp_value
            max_id = i
    else:
        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,如果需要帮忙解决小白报错,求各位老板付费咨询,万分感谢!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值