亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python對DICOM圖像的讀取方法詳解

 更新時間:2017年07月17日 14:10:12   作者:佛祖下的燈芯  
DICOM(Digital Imaging and Communications in Medicine)即醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國際標(biāo)準(zhǔn)(ISO 12052)。下面這篇文章主要給大家介紹了關(guān)于python對DICOM圖像讀取的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

DICOM介紹

DICOM3.0圖像,由醫(yī)學(xué)影像設(shè)備產(chǎn)生標(biāo)準(zhǔn)醫(yī)學(xué)影像圖像,DICOM被廣泛應(yīng)用于放射醫(yī)療,心血管成像以及放射診療診斷設(shè)備(X射線,CT,核磁共振,超聲等),并且在眼科和牙科等其它醫(yī)學(xué)領(lǐng)域得到越來越深入廣泛的應(yīng)用。在數(shù)以萬計的在用醫(yī)學(xué)成像設(shè)備中,DICOM是部署最為廣泛的醫(yī)療信息標(biāo)準(zhǔn)之一。當(dāng)前大約有百億級符合DICOM標(biāo)準(zhǔn)的醫(yī)學(xué)圖像用于臨床使用。

看似神秘的圖像文件,究竟是如何讀取呢?網(wǎng)上隨便 一搜,都有很多方法,但缺乏比較系統(tǒng)的使用方法,下文綜合百度資料,結(jié)合python2.7,講解如何讀取及使用DICOM圖像。

讀取DICOM圖像,需要以下幾個庫:pydicom、CV2、numpy、matplotlib。pydicom專門處理dicom圖像的python專用包,numpy高效處理科學(xué)計算的包,依據(jù)數(shù)據(jù)繪圖的庫。

安裝:

pip install matplotlib
pip install opencv-python #opencv的安裝,小度上基本都是要下載包,安裝包后把包復(fù)制到某個文件夾下,
#后來我在https://pypi.python.org/pypi/opencv-python找到這種pip的安裝方法,親測可用
pip install pydicom
pip install numpy

如果沒有記錯,安裝pydicom時,也會自動把numpy安裝上。

安裝好這些庫后,就可以對dicom文件操作。

具體看下面代碼:

#-*-coding:utf-8-*-
import cv2
import numpy
import dicom
from matplotlib import pyplot as plt

dcm = dicom.read_file("AT0001_100225002.DCM")
dcm.image = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept

slices = []
slices.append(dcm)
img = slices[ int(len(slices)/2) ].image.copy()
ret,img = cv2.threshold(img, 90,3071, cv2.THRESH_BINARY)
img = numpy.uint8(img)

im2, contours, _ = cv2.findContours(img,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
mask = numpy.zeros(img.shape, numpy.uint8)
for contour in contours:
 cv2.fillPoly(mask, [contour], 255)
img[(mask > 0)] = 255


kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(2,2))
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)


img2 = slices[ int(len(slices)/2) ].image.copy()
img2[(img == 0)] = -2000


plt.figure(figsize=(12, 12))
plt.subplot(131)
plt.imshow(slices[int(len(slices) / 2)].image, 'gray')
plt.title('Original')
plt.subplot(132)
plt.imshow(img, 'gray')
plt.title('Mask')
plt.subplot(133)
plt.imshow(img2, 'gray')
plt.title('Result')
plt.show()

在DICOM圖像里,包含了患者的相關(guān)信息的字典,我們可以通過dir查看DICOM文件有什么信息,可以通過字典返回相關(guān)的值。

import dicom
import json
def loadFileInformation(filename):
 information = {}
 ds = dicom.read_file(filename)
 information['PatientID'] = ds.PatientID
 information['PatientName'] = ds.PatientName
 information['PatientBirthDate'] = ds.PatientBirthDate
 information['PatientSex'] = ds.PatientSex
 information['StudyID'] = ds.StudyID
 information['StudyDate'] = ds.StudyDate
 information['StudyTime'] = ds.StudyTime
 information['InstitutionName'] = ds.InstitutionName
 information['Manufacturer'] = ds.Manufacturer
 print dir(ds)
 print type(information)
 return information

a=loadFileInformation('AT0001_100225002.DCM')
print a

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 使用Python和Plotly繪制各種類型3D圖形的方法

    使用Python和Plotly繪制各種類型3D圖形的方法

    Python語言擁有豐富的數(shù)據(jù)可視化庫,其中Plotly是一款流行的工具,提供了繪制高質(zhì)量三維圖形的功能,本文將介紹如何使用Python和Plotly來繪制各種類型的3D圖形,并給出代碼實例,需要的朋友可以參考下
    2024-05-05
  • python調(diào)用API接口實現(xiàn)登陸短信驗證

    python調(diào)用API接口實現(xiàn)登陸短信驗證

    在本篇文章里小編給大家整理的是關(guān)于python調(diào)用API接口實現(xiàn)登陸短信驗證的實例內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • 在Python中操作字符串之startswith()方法的使用

    在Python中操作字符串之startswith()方法的使用

    這篇文章主要介紹了在Python中操作字符串之startswith()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python將QQ聊天記錄生成詞云的示例代碼

    Python將QQ聊天記錄生成詞云的示例代碼

    這篇文章主要介紹了Python將QQ聊天記錄生成詞云的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python命令行工具Click快速掌握

    python命令行工具Click快速掌握

    這篇文章主要介紹了python命令行工具Click快速掌握,寫 Python 的經(jīng)常要寫一些命令行工具,雖然標(biāo)準(zhǔn)庫提供有命令行解析工具 Argparse,但是寫起來非常麻煩,我很少會使用它。命令行工具中用起來最爽的就是 Click,,需要的朋友可以參考下
    2019-07-07
  • 編寫Python爬蟲抓取暴走漫畫上gif圖片的實例分享

    編寫Python爬蟲抓取暴走漫畫上gif圖片的實例分享

    這篇文章主要介紹了編寫Python爬蟲抓取暴走漫畫上gif圖片的實例分享,示例代碼為Python3,利用到了urllib模塊、request模塊和BeautifulSoup模塊,需要的朋友可以參考下
    2016-04-04
  • Python??reduce()函數(shù)的用法示例代碼

    Python??reduce()函數(shù)的用法示例代碼

    reduce函數(shù)原本在python2中也是個內(nèi)置函數(shù),不過在python3中被移到functools模塊中,這篇文章主要介紹了Python reduce()函數(shù)的用法,需要的朋友可以參考下
    2023-05-05
  • 火車票搶票python代碼公開揭秘!

    火車票搶票python代碼公開揭秘!

    火車票搶票python代碼公開揭秘!使用Python模擬搶票程序,給大家揭秘?fù)屍钡降资窃趺椿厥?,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 關(guān)于pip安裝opencv-python遇到的問題

    關(guān)于pip安裝opencv-python遇到的問題

    這篇文章主要介紹了關(guān)于pip安裝opencv-python遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python調(diào)用webservice接口的實現(xiàn)

    python調(diào)用webservice接口的實現(xiàn)

    這篇文章主要介紹了python調(diào)用webservice接口的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論