python获取window共享目录列表_利用Python获取DICOM RTstructure勾画列表

在《利用Python打开DICOM CT文件》一文中,我们利用pydicom.dcmread()读取了CT图像。本文中我们将修改load_scan()函数来读取RTstructure文件并获取勾画列表

1. 打开Jupyter notebook,导入需要的科学包

import numpy as npimport mathimport pydicomimport osimport matplotlib.pyplot as pltimport scipy.ndimagefrom skimage import measure, draw

2. 在load_scan()加入t.Modality == 'RTSTRUCT'作为判断读取RTstructure文件

def load_scan(path):    temp = [pydicom.dcmread(path + f) for f in os.listdir(path)]    RT = [t for t in temp if t.Modality == 'RTSTRUCT']    slices = [t for t in temp if t.Modality == 'CT']    slices.sort(key = lambda x: int(x.InstanceNumber))    try:        slice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])    except:        slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)            for s in slices:        s.SliceThickness = slice_thickness            return slices, RT

3. 对RTstructure文件下的ROI名称进行逐个读取。

def get_roi_list(RTcontour):    name = []    for s in RTcontour.StructureSetROISequence:        name.append(s.ROIName)

StructureSetROISequence下的ROIName存储了该勾画的名称信息

4. 以HNSCC_01文件夹下的CT和RTstructure文件为例。后台回复“HNSCC01”获取相关文件

# open CT_lung datasetdir_path_ct = './Data/HNSCC_01/'patient_ct, rtStructure = load_scan(dir_path_ct)

5. 利用get_roi_list()获取勾画列表

get_roi_list(rtStructure[0])>> ['Marked Isocenter', 'Final Isocenter', 'SCV Calc Pt', 'LAO MNB Isocenter', 'CTV 57', 'CTV 57 Sub', 'PTV 57', 'CTV 60', 'CTV 60 Sub', 'PTV 60', 'CTV 70', 'CTV 70 Sub', 'PTV 70', 'GTV', 'GTV Nodes', 'Cord', 'Cord_EXPANDED', 'Brainstem', 'Brainstem_EXPANDED', 'Rt Parotid', 'Lt Parotid', 'Mandible', 'Auditory <50', 'External', 'Contract', 'Ring', 'Bridge', 'Total', 'Avoid', 'Oral Avoid', 'C5C6']

看完本文有收获?请分享给更多人

推荐阅读

3f3e72395843b142cc2cd941d8e6ace5.png

0c898d69e7697f8d27a2f54b351eeb97.png

71b30a2b47dab38ca0476c3bcf679135.png

未经授权不得转载如有需要请添加助手微信PI3_141592653

6b6dda888dd8820f0a6dee14fe373522.png

b446ba3a1d3791a3712af8e287aa64c8.png

关注「质子重离子放疗」公众号

与中国物理师一同成长

8ea284af9d42f0a20abe75241cf997d6.png

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

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

相关文章

sublime 自定义快捷键

[{ "keys": ["altspace"], "command": "auto_complete" }, // 自动提示、补全{ "keys": ["ctrlalti"], "command": "reindent" }, //整理代码快捷键{ "keys": ["f12"…

Ubuntu中安装、生成、导入、导出、Python3虚拟环境

1.安装Ubuntu虚拟环境、以及可以支持虚拟环境的模块 sudo apt install virtualenv sudo apt install virtualenvwrapper 安装完成之后&#xff0c;进入home目录&#xff0c;输入命令ls -al查看是否出现.virtualenvs目录&#xff0c;如果没有则手动创建.virtualenvs目录 重要…

Coursera课程 Programming Languages, Part C 总结

碎言碎语 和前面的 ML 和 Racket 感觉明显不一样了&#xff0c;一边学着一边觉得这真是一门奇怪的语言&#xff0c;有着各种奇怪的语法&#xff0c;不过真的算是一个奇妙的体验&#xff08;相比前面的两门语言&#xff0c;Ruby 的学习资源多了不少&#xff09;。week 1 的作业直…

如何判断网络是否进入拥塞状态

通过观察网络的吞吐量与网络负载间的关系 如果随着网络负载的增加&#xff0c;网络的吞吐量明显小于正常的吞吐量&#xff0c;那么网络就进入例如轻度拥塞的状况。 如果网络得吞吐量随着网络负载的增大反而下降&#xff0c;那么网络就可能进入拥塞状态。 如果网络的负载继续…

如何拷贝工程_如何将premiere的工程及素材文件打包?

我们在剪辑视频的时候经常会遇到素材丢失的情况&#xff0c;或者说需要换地方或换电脑继续剪辑。特别是以前做的视频现在需要修改一些地方&#xff0c;然后打开工程文件会发现素材丢失&#xff0c;如图&#xff1a;这种情况要不就是素材已经删除&#xff0c;要不就是素材改变了…

迈出从3K到1W的重要一步——掌握设计模式

IT职场的小菜经常有这样的疑问&#xff1a; 为什么一个相似的功能&#xff0c;大牛一会儿就搞定&#xff0c;然后悠闲地品着下午茶逛淘宝&#xff1b;而自己加班加点搞到天亮还做不完。 为什么用户提出需求变更后&#xff0c;大牛只需潇洒地敲敲键盘&#xff0c;改改配置&#…

使用pip安装virtualenv时出现问题

使用pip出现问题 fxd0ubuntu:~$ sudo pip install virtualenv [sudo] password for fxd0: env: ‘pip’: No such file or directory fxd0ubuntu:~$ pip insatall virtualenv Command pip not found, but can be installed with: sudo apt install python-pip 安装pip fxd0…

jquery 获取 outerHtml 包含当前节点本身的代码

在开发过程中&#xff0c;jQuery.html() 是获取当前节点下的html代码&#xff0c;并不包含当前节点本身的代码&#xff0c;然后我们有时候确需要&#xff0c;找遍jQuery api文档也没有任何方法可以拿到。 看到有的人通过parent().html()&#xff0c;如果当前元素没有兄弟元素还…

拥塞控制中的开环和闭环控制

拥塞控制是很难设计的&#xff0c;因为它是一个动态的问题&#xff0c;许多情况下&#xff0c;甚至正式拥塞控制机制本身成为引起网络性能恶化甚至死锁的原因。从控制理论的角度来看拥塞控制这个问题&#xff0c;可以分为开环控制和闭环控制两种方法。开环控制就是在设计网络时…

c语言编写一个菜单系统_一招教你,轻松解决C语言编写一个正整数的所有因子!...

这个实例是一个能提高分析能力的实例&#xff0c;这个实例主要用到for语句&#xff0c;关键是如何确定其中变量的范围。求一个正整数的所有因子先来看看编程结果演示&#xff1a;编程演示输出结果编程如下:#include/*引用预处理命令&#xff0c;预处理包含stdio.h的头文件*/mai…

【简明笔记】循环条件的优化

[javascript] view plaincopy/* * 优化循环 */ //优化前 for(var i0; i < items.length; i){ //判断条件&#xff1a;(1)i<items.length; (2)i<items.length true; process(items[i]); } //优化后 var count items.length; //把length属性放在局…

ubuntu18.04安装mysql数据库

mysql安装参考&#xff1a; https://www.cnblogs.com/opsprobe/p/9126864.html 文中写的很详细&#xff0c;但是未进行初始密码的修改&#xff0c;初始密码修改参考文章&#xff1a; https://blog.csdn.net/qq_38737992/article/details/81090373

第四次Scrum编码冲刺!!!!

第四次Scrum编码冲刺&#xff01;&#xff01;&#xff01;&#xff01; 一、总体任务&#xff1a; 本次冲刺是完成对图书馆管理系统的最后三个功能的实现------管理员对用户授权、用户注销和用户查询 二、个人任务及完成情况&#xff1a; 本人本次的任务是实现对删除用户功能以…

Spring Cloud Edgware新特性之八:Zuul回退的改进

为什么80%的码农都做不了架构师&#xff1f;>>> Spring Cloud Edgware对Hystrix回退的逻辑进行了一些改进。本文将信息探讨新旧版本的回退操作&#xff0c;并分析的原因及改进后的优势。 Dalston及更低版本 对于Dalston及更低版本&#xff0c;要想为Zuul提供回退&a…

因特网 以太网 互联网的含义及区别

互联网是Internet的意译&#xff0c;因特网是Internet的音译&#xff0c;两者是等同的&#xff0c;是一个全世界范围的广域网。目前应用最为广泛的一类局域网是总线局域网-以太网。以太网的核心技术是它的随机争用型介质访问控制方法&#xff0c;即带有冲突检测的载波侦听多路访…

idea插件导出_Intellij IDEA 中我一直在用的几个插件

提前声明一下&#xff0c;今天这篇文章是在我家的那台 Mac 机子上写的&#xff0c;但是文中使用的快捷键还是主要针对于 Windows 平台「由于我的大多数读者在使用该系统&#xff0c;我是有多么爱你们&#xff5e;&#xff5e;&#xff5e;」。接上一篇《谈谈我与 Intellij IDEA…

打开.md格式文件的方式

我们平常偶尔会收到后缀为*.md的文件&#xff0c; md是简称&#xff0c;它的全名为MARKDOWN。MARKDOWN是一种标记语言软件&#xff0c;下载安装MarkdownPad2即可打开。 具体安装参考文章&#xff1a;MarkdownPad2安装汉化与注册码 https://blog.csdn.net/weixin_40612082/art…

吃透理财三句话人人都能成百万富翁

财专家告诉我们&#xff1a;理财的最佳方式并非追求高超的金融投资技巧&#xff0c;只要你掌握正确的理财观念&#xff0c;并且持之以恒&#xff0c;若干年之后——人人都能成为百万富翁。我每月到企业举办一小时的免费“理财讲座”&#xff0c;一直都很受员工们的欢迎。讲座内…

Apache - Storm

一、Apache Storm Storm是一个分布式的&#xff0c;可靠的&#xff0c;容错的数据流处理系统。Storm集群的输入流由一个被称作spout的组件管理&#xff0c;spout把数据传递给bolt&#xff0c;bolt要么把数据保存到某种存储器&#xff0c;要么把数据传递给其它的bolt。一个Stor…

Python基础学习五 内置模块

time 模块 1 >>> import time2 >>> time.time()3 1491064723.8086694 >>> # time.time()返回当前时间的时间戳timestamp(定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)的方法,无参数5 >>> time.asctime()6 Sun Apr 2…