使用python玩转dicom文件——医学图像处理工具pydicom入门教程
生活随笔
收集整理的這篇文章主要介紹了
使用python玩转dicom文件——医学图像处理工具pydicom入门教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從醫院采集的超聲數據因為時間跨度大、設備差異等原因比較亂,想著找找工具怎么把這些dicom格式的文件整理一下,于是瞄準了pydicom這一工具。中文資料也很魚龍混雜,干脆自己去他們的官方文檔直接學習。安裝方式是很簡單的在anaconda中pip install pydicom
參考資料:pydicom官方文檔
版本:pydicom 2.0.0
pydicom入門
- 數據讀取
- 信息獲取
- 數據寫入
- 使用matplotlib進行可視化
數據讀取
數據讀取使用dmread()
import pydicomfpath='us13.DCM' dcm=pydicom.dcmread(fpath)有時可能會出現以下報錯
raise InvalidDicomError("File is missing DICOM File Meta Information "pydicom.errors.InvalidDicomError: File is missing DICOM File Meta Information header or the 'DICM' prefix is missing from the header. Use force=True to force reading.這是由于dicom文件中信息缺失造成的或者此文件不是dicom文件但包含了dicom數據,在確信此文件包含dicom數據的情況下根據提示應該調用force參數強行讀取。
dcm=pydicom.dcmread(fpath,force=True)信息獲取
在完成上述的dicom文件讀取后可以使用print指令打印出其頭文件信息
import pydicomfpath='us13.DCM' dcm=pydicom.dcmread(fpath) print(dcm)輸出結果部分截圖
數據寫入
最簡單的方式可以采用sace_as()進行數據保存
dcm.save_as('out.dcm')在默認情況下,save_as()是以原樣的方式將數據寫入文件中。這意味著,即使你的數據集不符合DICOM文件格式,也仍將嚴格按照給定的格式進行寫入。要確定您是以DICOM文件格式編寫數據集,可以使用write_like_original關鍵字參數:
dcm.save_as('out.dcm', write_like_original=False)以上操作將自動的添加文件中缺失的頭文件信息,如果沒能成功自動補全的話將會報錯
ValueError: Missing required File Meta Information elements from 'file_meta':(0002, 0010) TransferSyntaxUID這時需要手動進行補全相關信息,再進行保存
dcm.file_meta = FileMetaDataset() dcm.file_meta.TransferSyntaxUID = '1.2.840.10008.1.2.1' dcm.save_as('out.dcm', write_like_original=False)使用matplotlib進行可視化
import pydicom from matplotlib import pyplot as pltfpath='US6.DCM' dataset=pydicom.dcmread(fpath)if 'PixelData' in dataset:rows = int(dataset.Rows)cols = int(dataset.Columns)print("Image size.......: {rows:d} x {cols:d}, {size:d} bytes".format(rows=rows, cols=cols, size=len(dataset.PixelData)))if 'PixelSpacing' in dataset:print("Pixel spacing....:", dataset.PixelSpacing)plt.imshow(dataset.pixel_array, cmap=plt.cm.bone) plt.show()總結
以上是生活随笔為你收集整理的使用python玩转dicom文件——医学图像处理工具pydicom入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过Cadence学拉扎维的第2天-mo
- 下一篇: 非平稳时间序列分析