はじめに
はじめてPydicomでDICOMファイルをどうにかしたい!という方向けです。
ここでは、Pydicomのインストール方法、DICOMファイルの情報表示・画像表示の方法までご紹介します。
1. Pydicomをインストールする
$ pip install pydicom
2. DICOMのメタデータを表示する
まず、JIRAが公開しているDICOMサンプルデータをダウンロードしましょう。(どれか1つ選んでください。)
DICOMのメタデータには、患者情報、モダリティ情報など様々な情報が詰まっています。
メタデータ一覧はこちらから確認できます。
■ 全メタデータを表示する
example.py
import pydicom
file = pydicom.dcmread('sample/sample.dcm')
print(file)
出力結果
Dataset.file_meta -------------------------------
(0002, 0000) File Meta Information Group Length UL: 174
(0002, 0001) File Meta Information Version OB: b'\x00\x01'
(0002, 0002) Media Storage SOP Class UID UI: Computed Radiography Image Storage
....
■ 特定のメタデータのみ表示する
特定のメタデータのみ表示するには、keywordで指定する方法・タグで指定する方法の2種類あります。
example.py
import pydicom
file = pydicom.dcmread('sample/sample.dcm')
print(file.PatientName) # keywordで指定
print(file.[(0x0010, 0x0010)]) # タグで指定
ちなみに、keywordの確認はこのようにできます。
example.py
ds[0x00100010].keyword
# 'PatientName'とコンソール出力される
3. DICOM画像を表示する
DICOM画像の表示には、Matplotlib、GDCM、pylibjpegが必要なのでインストールしておきます。
$ pip install matplotlib
$ pip install -U python-gdcm
$ pip install pylibjpeg
■ 画像を表示する
example.py
import pydicom
import matplotlib.pyplot as plt
file = pydicom.dcmread('sample/sample.dcm')
img = file.pixel_array
plt.imshow(img)
plt.show()
■ ウィンドウ処理をして画像表示する
ウィンドウ処理とは、幅広い幅の画素値を持つ画像のある特定の濃度域のみを,表示系の濃度域[0(暗)~255(明)]に変換して表示する処理のことです。
つまり、画像を見やすくするために、コントラストや明るさを調整する処理のことを指します。
DICOMデータに、WindowCenterやWindowWidthなどのデータがある場合はこの処理を行なったほうが良いです。
example.py
import pydicom
import matplotlib.pyplot as plt
file = pydicom.dcmread('filepath')
wc = file.WindowCenter
ww = file.WindowWidth
img = file.pixel_array
#ウィンドウ処理
window_max = wc + ww /2
window_min = wc - ww /2
img = 255*(img-window_min)/(window_max - window_min)
img[img > 255] = 255
img[img < 0] = 0
plt.show(img)
plt.show()