使用SimpleITK批量计算医学图像分割的mask体积,病灶体积

news2024/11/24 6:54:35

使用SimpleITK计算如下所示的病灶标注的整体体积。
可以在该代码的基础上,增加写入excel表的操作,这样就可以把模型推理前的体积和模型推理后的体积都写入excel表,然后进行一系列分析。

在这里插入图片描述

1 计算方式

用SimpleITK包进行ROI/病灶体积的计算

import SimpleITK as sitk
import numpy as np

def calculate_volume(mask_image_path):
    # 读取分割结果的图像文件
    mask_image = sitk.ReadImage(mask_image_path)

    # 获取图像的大小、原点和间距
    size = mask_image.GetSize()
    origin = mask_image.GetOrigin()
    spacing = mask_image.GetSpacing()

    # 将 SimpleITK 图像转换为 NumPy 数组
    mask_array = sitk.GetArrayFromImage(mask_image)

    # 计算非零像素的数量
    non_zero_voxels = (mask_array > 0).sum()

    # 计算像素的体积(以立方毫米为单位)
    voxel_volume_mm3 = spacing[0] * spacing[1] * spacing[2]

    # 计算体积(以 mm³ 为单位)
    volume_mm3 = non_zero_voxels * voxel_volume_mm3

    # 如果需要以其他单位(例如 cm³)显示,请进行适当的单位转换
    volume_cm3 = volume_mm3 / 1000.0

    return size,spacing,non_zero_voxels,volume_cm3

maskFilePath = "./dataset/split_2_41/train/Mask/sub-strokecase0001_ses-0001_msk_reg.nii.gz"
size,spacing,non_zero_voxels,roi_volume = calculate_volume(maskFilePath)

print("================================")
print(size,spacing,non_zero_voxels)

print(f'ROI 或病灶的体积为 {roi_volume} cm³')

测试结果:

================================
(97, 113, 97) (2.0, 2.0, 2.0) 1446
ROI 或病灶的体积为 11.568 cm³

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/979440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C高级day1

一、用cut截取出用户的家目录。要求:不能用“:”作为分割 二、XMind思维导图

el-table纵向垂直表头

参考&#xff1a;https://www.jianshu.com/p/1f38eaffd070 <el-tablestyle"width: 100%":data"getValues":show-header"false"border:cell-style"cellStyle" ><el-table-columnv-for"(item, index) in getHeaders"…

两种解法解决 LeetCode 27. 移除元素【C++】

移除元素 27. 移除元素题目&#xff1a;[移除元素](https://leetcode.cn/problems/remove-element/description/)示例和提示&#xff1a;解法&#xff1a;1. 暴力解法 2. 快慢指针 27. 移除元素 题目&#xff1a;移除元素 示例和提示&#xff1a; 解法&#xff1a; 1. 暴力解…

【C++】DICOM医学影像工作站PACS源码

PACS即影像存档与传输系统&#xff0c;是医学影像、数字化图像技术、计算机技术和网络通讯技术相结合的产物&#xff0c;是处理各种医学影像信息的采集、存储、报告、输出、管理、查询的计算机应用程序。 PACS是基于DICOM标准的医学影像管理系统&#xff0c;其模块覆盖了从影像…

Java:ArrayList源码解析

Java&#xff1a;ArrayList源码解析 导言 我们都知道ArrayList是一个可以实现自动扩容的List类&#xff0c;为了理解ArrayList是如何进行扩容的&#xff0c;我们就有必要对ArrayList的源码进行分析。本文中将着重研究源码中ArrayList是如何实现自动扩容的。 源码解析 ArrayL…

合宙Air724UG LuatOS-Air LVGL API控件-页面 (Page)

页面 (Page) 当控件内容过多&#xff0c;无法在屏幕内完整显示时&#xff0c;可让其在 页面 内显示。 示例代码 page lvgl.page_create(lvgl.scr_act(), nil) lvgl.obj_set_size(page, 150, 200) lvgl.obj_align(page, nil, lvgl.ALIGN_CENTER, 0, 0)label lvgl.label_crea…

netbeans+wamp+php配置调试代码

netbeans版本&#xff1a;8.1 wamp版本是2.5,里面的php5.5.12&#xff0c;apache2.4.9&#xff0c;mysql5.6.17。 wamp已经自带Xdebug&#xff08;PHP程序调试器&#xff09;。 步骤&#xff1a; 1.路径&#xff1a;D:\wamp\bin\apache\apache2.4.9\bin\php.ini 2.打开ne…

MyBatis 动态 SQL 实践教程

一、MyBatis动态 sql 是什么 动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中&#xff0c;开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如&#xff0c;拼接时要确保添加了必要的空格&#xff0c;还要注意去掉列…

电脑上jpg图片怎么改大小kb?三招学会图片压缩

在电脑上处理jpg图片时&#xff0c;有时候我们需要修改图片的大小&#xff0c;尤其是在需要上传图片到一些限制大小的平台时。那么&#xff0c;如何更改jpg图片的大小呢&#xff1f;今天&#xff0c;我将分享三个实用的方法&#xff0c;让大家轻松解决图片太大的问题&#xff0…

仿射密码 affine

参考链接&#xff1a;https://www.cnblogs.com/0yst3r-2046/p/12172757.html 仿射加密法 在仿射加密法中&#xff0c;字母表的字母被赋予一个数字&#xff0c;例如 a0&#xff0c;b1&#xff0c;c2…z25 。仿射加密法的密钥为0-25直接的数字对。 仿射加密法与单码加密法没什么…

ubuntu修改用户名和用户密码

1.修改passwd文件 sudo gedit /etc/passwd2.修改shadow文件 sudo gedit /etc/shadow3.修改home目录下文件夹名 mv /home/原用户名/ /home/新用户名4.修改sudo权限&#xff08;修改group用户组&#xff09; sudo gedit /etc/group5.修改用户密码 sudo passwd username #修改…

位运算 |(按位或) (按位与) ^(按位异或)

目录 文章目录&#xff1a;本章讲解的主要是刷题系列 1&#xff1a;首先会介绍 I & ^这三个操作符的作用&#xff0c;性质 2&#xff1a;三道使用位运算操作符的经典 笔试题(来自剑指offer) 题目链接如下&#xff1a; 1:136. 只出现一次的数字 - 力扣&#xff08;LeetCode…

Jmeter进阶使用指南-使用断言

Apache JMeter是一个流行的开源负载和性能测试工具。在JMeter中&#xff0c;断言&#xff08;Assertions&#xff09;是用来验证响应数据是否符合预期的一个重要组件。它是对请求响应的一种检查&#xff0c;如果响应不符合预期&#xff0c;那么断言会标记为失败。 以下是如何在…

Echarts 中国地图

直接展示效果图&#xff1a; 我们需要引入两个文件&#xff1a; echarts.js 官网地址下载&#xff1a;快速上手 - Handbook - Apache ECharts chain.js 这个官网已经找不到了&#xff0c;需要自行搜寻下载 也可以私信我(网上下载的China.js会导致省名称定为不准确&#xff0…

Go语言最全面试题,拿offer全靠它,附带免积分下载pdf

面试题文档下链接点击这里免积分下载 go语言入门到精通点击这里免积分下载 文章目录 Go 基础类GO 语言当中 NEW 和 MAKE 有什么区别吗&#xff1f;PRINTF(),SPRINTF(),FPRINTF() 都是格式化输出&#xff0c;有什么不同&#xff1f;GO 语言当中数组和切片的区别是什么&#xf…

【C++】函数重载 ③ ( 为函数指针赋值重载函数 )

文章目录 一、函数指针回顾1、函数指针概念2、函数指针语法3、代码示例 - 函数指针示例 二、为函数指针赋值重载函数1、为函数指针赋值重载函数2、代码示例 - 为函数指针赋值重载函数 博客总结 : 重载函数 : 使用 相同 的 函数名 , 定义 不同 的 函数参数列表 ;判定标准 : 只有…

判断计算机处理器的大小端

一、什么是大小端&#xff1f; 大端模式&#xff1a;低位字节存在高地址&#xff0c;高位字节存在低地址 小端模式&#xff1a;高位字节存在高地址&#xff0c;低位字节存在第地址 二、如何判断计算机处理器是大端还是小端&#xff1f; ①使用变量 x 的值本身来检查处理器存储…

九章云极DataCanvas公司参与大模型重点项目合作签约,建设产业集聚区

9月3日&#xff0c;2023中国国际服务贸易交易会石景山国际开放合作论坛在石景山首钢园成功举办&#xff0c;北京市委常委、常务副市长夏林茂&#xff0c;商务部服务贸易和商贸服务业司司长王东堂&#xff0c;北京市石景山区委书记常卫出席论坛并致辞。论坛期间正式举行“石景山…

关于内涝积水的那些事儿

内涝积水是指城市区域在强降雨、排水系统失效或不足的情况下&#xff0c;大量降雨无法及时排除而积聚在地面上的现象。内涝积水不仅给城市环境和居民的生活带来困扰&#xff0c;同时也给社会经济、交通运输和居民安全造成了严重的危害。 内涝积水的影响 1.内涝积水会对城市环境…

亚马逊鲲鹏系统有哪些优势特点

亚马逊鲲鹏系统是一款全自动化操作的软件&#xff0c;有批量注册账号、自动养号、点击广告、根据关键词进行加购、下单购买、留评、评论点赞或举报、QA等&#xff0c;是一款功能比较齐全的软件。 亚马逊鲲鹏系统有以下优势特点&#xff1a; 1.功能齐全 亚马逊鲲鹏系统一套软件…