最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python讀取預處理DICOM文件方式詳解

 更新時間:2023年03月31日 09:39:00   作者:Sayello  
這篇文章主要介紹了Python讀取預處理DICOM文件方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

需要的庫

●Simpleitk
安裝命令:

conda install -c simpleitk simpleitk

使用:

import SimpleITK as sitk

pydicom(不推薦,可能有些文件打不開)
安裝命令:

conda install -c conda-forge pydicom

●PIL
使用:

from PIL import Image

讀取dicom

讀取Series信息
由于患者可以同時做多個檢查,所以dicom中可以包含多個study(多次檢查,一般只有一個檢查,所以不用管這個)和series(多個部位,一些信息也是用不同series保存),所以第一步就是要讀取series信息。

在這里插入圖片描述

代碼:

reader = sitk.ImageSeriesReader()
ids = reader.GetGDCMSeriesIDs(dict_name)

ids里包含了所有series的id,dict_name為dicom文件所在目錄路徑
讀取Series中所有圖片
利用上面讀取的series的id可以分開讀取不同series。
代碼:

for i in ids:
    series_file_name = reader.GetGDCMSeriesFileNames(dict_name, i)

series_file_name中包含某個series所有圖片的路徑,一般我們只需要圖片數(shù)量最多的那個series。ids為series的id列表,dict_name為dicom文件所在目錄路徑。

(重點)讀取meta data(元數(shù)據(jù))
dicom文件包含大量的元數(shù)據(jù),會指出與該次檢查的相關(guān)信息,常用的有 Slice thickness(層厚), Pixel spacing(像素間距)可以根據(jù)需要讀取相應的元數(shù)據(jù)。
代碼:

file_reader = sitk.ImageFileReader()
file_reader.SetFileName(series_file_name[0])
file_reader.ReadImageInformation()
study_id = file_reader.GetMetaData("0008|1030")
series_file_name[0]

可以為任意dicom文件的路徑,“0008|1030"為元數(shù)據(jù)的tags,詳細的可以參考http://www.yuantk.com/toolkit_40.html ,或者直接搜索"dicom tag”

轉(zhuǎn)換為圖片并保存
代碼:

image = sitk.ReadImage(series_file_name[0])
image_data = sitk.GetArrayFromImage(image)[0]
image_data = normalization(image_data)
Image.fromarray(image_data).convert("RGB").save(image_save_path)

series_file_name[0]可以為任意dicom文件的路徑,使用simpleitk讀取的數(shù)據(jù)已經(jīng)進利用斜率和截距進行了線性變換無需二次處理。image_save_path為保存的路徑,注意路徑要包含文件名(例:‘./1.png’),這里的要重點關(guān)注normalization函數(shù),該函數(shù)涉及窗口技術(shù)。

(重點)窗口技術(shù)
由于dicom存儲的是CT值矩陣,由于各種組織結(jié)構(gòu)或病變具有不同的CT值,因此欲顯示某一組織結(jié)構(gòu)細節(jié)時,應選擇適合觀察該組織或病變的窗寬和窗位,以獲得最佳顯示,這里需要利用窗口技術(shù)進行轉(zhuǎn)換。窗口技術(shù)涉及兩個關(guān)鍵參數(shù),窗位與窗寬。
窗寬(WW):是CT圖像上顯示的CT值范圍,在此CT值范圍內(nèi)的組織和病變均以不同的灰度顯示,而CT值高于此范圍的組織和病變,均以白影顯示,不再有灰度差異;反之,低于此范圍的組織結(jié)構(gòu),均以黑影顯示,也無灰度差別。
窗位(WL):是窗的中心位置。
公式:

WW=CTmax-CTmin
WL=(CTmax+CTmin)/2
CTmax = WW/2+WL
CTmin = WL-WW/2

轉(zhuǎn)換后的圖片灰度值=(CT值-CTmin) / (CTmax - CTmin) * 255
代碼:

def normalization(data, window_level=-600., window_width=2000.):
	high = window_level + window_width / 2
	low = window_level - window_width / 2
	data = (data - low) / window_width * 255
	data[data > 255] = 255
	data[data < 0] = 0
	return data

window_level和window_width根據(jù)實際需要設定,data為simpleitk讀取的數(shù)據(jù)

到此這篇關(guān)于Python讀取預處理DICOM文件方式的文章就介紹到這了,更多相關(guān)Python讀取DICOM文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中urllib與urllib2模塊的變化與使用詳解

    Python中urllib與urllib2模塊的變化與使用詳解

    urllib是python提供的一個用于操作URL的模塊,在python2.x中有URllib庫,也有Urllib2庫,在python3.x中Urllib2合并到了Urllib中,我們爬取網(wǎng)頁的時候需要經(jīng)常使用到這個庫,需要的朋友可以參考下
    2023-05-05
  • Python繪制分類圖的方法

    Python繪制分類圖的方法

    這篇文章主要為大家詳細介紹了Python繪制分類圖的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • python使用datetime模塊處理日期時間及常用功能詳解

    python使用datetime模塊處理日期時間及常用功能詳解

    datetime模塊是Python標準庫中用于處理日期和時間的模塊,在本節(jié)中,我們將介紹datetime模塊的一些常用功能,并通過實例代碼詳細講解每個知識點,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-06-06
  • 對python3 一組數(shù)值的歸一化處理方法詳解

    對python3 一組數(shù)值的歸一化處理方法詳解

    今天小編就為大家分享一篇對python3 一組數(shù)值的歸一化處理方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python實現(xiàn)光速定位并提取兩個文件的不同之處

    Python實現(xiàn)光速定位并提取兩個文件的不同之處

    如果你經(jīng)常與Excel或Word打交道,那么從兩份表格/文檔中找到不一樣的元素是一件讓人很頭疼的工作。本文就將以兩份真實的Excel/Word文件為例,講解如何使用Python光速對比并提取文件中的不同之處
    2022-08-08
  • Python面向?qū)ο蟮某绦蛟O計詳情

    Python面向?qū)ο蟮某绦蛟O計詳情

    這篇文章主要介紹了Python面向?qū)ο蟮某绦蛟O計詳情,面向?qū)ο蟮某绦蛟O計在Python中具有非常重要的地位,熟練的使用面向?qū)ο缶幊棠軌驗槲覀兊腜ython編程提供很多的便利之處,希望您閱讀完本文后能夠有所收獲
    2022-01-01
  • python通過第三方庫操作PDF文件的幾種常見方法

    python通過第三方庫操作PDF文件的幾種常見方法

    Python是一種高級編程語言,主要用于數(shù)據(jù)分析、機器學習、圖像處理等領(lǐng)域,在PDF文件處理方面,Python有許多強大的庫和工具,這篇文章主要給大家介紹了關(guān)于python通過第三方庫操作PDF文件的幾種常見方法,需要的朋友可以參考下
    2024-02-02
  • python3通過selenium爬蟲獲取到dj商品的實例代碼

    python3通過selenium爬蟲獲取到dj商品的實例代碼

    這篇文章主要介紹了python3通過selenium爬蟲獲取到dj商品的實例代碼,需要的朋友可以參考下
    2019-04-04
  • 使用Python實現(xiàn)牛頓法求極值

    使用Python實現(xiàn)牛頓法求極值

    今天小編就為大家分享一篇使用Python實現(xiàn)牛頓法求極值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • opencv 圖像禮帽和圖像黑帽的實現(xiàn)

    opencv 圖像禮帽和圖像黑帽的實現(xiàn)

    這篇文章主要介紹了opencv 圖像禮帽和圖像黑帽的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

台东县| 龙州县| 乐陵市| 新平| 和田县| 苏州市| 霍邱县| 芜湖市| 十堰市| 和硕县| 七台河市| 洪湖市| 舟山市| 芦山县| 平果县| 大洼县| 蚌埠市| 彰化县| 依兰县| 东至县| 新平| 陆良县| 乌拉特中旗| 洛南县| 霍州市| 宾川县| 凌云县| 徐汇区| 屏东县| 武宁县| 黄冈市| 凤冈县| 蓝田县| 西平县| 如东县| 海阳市| 禄丰县| 恩施市| 梅州市| 高阳县| 饶平县|