1. Pillowをインストールする
$ pip install Pillow
2. ファイルに書き出し、保存する
png形式で保存したい場合は、拡張子を .png にしてください。
sample.py
import pydicom
from PIL import Image
# dicomファイルを読み込む
file = pydicom.dcmread('ファイルパス')
# 画像処理
img = file.pixel_array
pil_img = Image.fromarray(img)
# 保存したい場所、ファイル名を引数に設定
pil_img.save('ファイルパス/original_dcm.jpg')
3. 補足
■ TypeError: Cannot handle this data type
ndarrayのデータ型がdtypeやfloatの場合はエラーになることがあります。この場合、unit8に変換すると解決します。
sample.py
import numpy as np
pil_img = Image.fromarray(img[0].astype(np.uint8))
pil_img.save('ファイルパス/original_dcm.jpg')
■ DICOMファイルにRGBが欠けている場合
sample.py
pil_img = Image.fromarray(img)
new_pil_img = pil_img.convert('RGB')
new_pil_img.save('ファイルパス/original_dcm.jpg')
■ DICOMファイルにNumberOfFramesタグが欠けている場合
pixel_arrayを取り出す前に以下を実行します。
sample.py
file = pydicom.dcmread('filepath')
file.NumberOfFrames = '31'
file.PixelData = file.PixelData * 31
img = file.pixel_array
pil_img = Image.fromarray(img)
pil_img.save('ファイルパス/original_dcm.jpg')