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.pswp.cn/news/453010.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453010.shtml
英文地址,請注明出處:http://en.pswp.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…