LoginSignup
1
4

More than 1 year has passed since last update.

pydicomで圧縮されたDICOM画像を見る

Last updated at Posted at 2021-01-24

目的

圧縮されたDICOM画像をpydicomで読み込み表示させる.
普通にpydicomで圧縮されたDICOM画像を読み込もうとすると,以下のようなエラーを吐いたので参考までに.

エラーに対する解決方法を書きましたが読むのが面倒くさい方は,面倒な人向け環境に載っているものと同じバージョンのライブラリをインポートして完成版でコンパイルしてみてください.

環境

・Windows 10
・Visual Studio Code

・pip 21.0
・numpy 1.19.5
・matplotlib 3.3.1
・Pillow 7.2.0
・opencv-python 4.4.0.42
・pydicom 2.1.2
・pylibjpeg 1.1.1
・pylibjpeg-libjpeg 1.1.0
・pylibjpeg-openjpeg 1.0.1

注意事項
Macでも同じことをしようとしましたが,gdcmがインポートできませんでした.
調べたら他に方法があるかもしれないので,見つけた方はぜひ教えて下さい.

エラー内容

1つ目のエラー

`RuntimeError: The following handlers are available to decode the pixel data however they are missing required dependencies: GDCM (req. GDCM)`

コマンドプロンプトでpip install gdcmをインポートで解決

2つ目のエラー

`RuntimeError(msg + ', '.join(pkg_msg))`

コマンドプロンプトでpip install pylibjpegをインポートで解決

3つ目のエラー

`ImportError: DLL load failed: 指定されたモジュールが見つかりません。`

コマンドプロンプトでpip install pylibjpegをインポートしてコンパイルしたところ3つ目のエラーが...
いろいろ調べて試した結果,pydicomのバージョンをアップデートしたところ直りました.

コマンドプロンプトでpip install -U pydicomを入力
私の場合,pydicom-2.0.0 → pydicom-2.1.2にバージョンアップしました.

もう一度,コンパイル.
ここで,pylibjpeg-libjpegのモジュールが無いと言われたら,コマンドプロンプトでpip install pylibjpeg-libjpegを入力し,もう一度コンパイル.

これで無事,画像が表示されました!

面倒な人向け

コマンドプロンプトでとりあえず以下を入力しておく.
1.pip install pydicom
2.pip install numpy
3.pip install matplotlib
4.pip install gdcm
5.pip install pylibjpeg
6.pip install pylibjpeg-libjpeg
7.pip install Pillow
8.pip install opencv-python

完成版

import pydicom
import numpy as np
from matplotlib import pyplot as plt
import pylibjpeg

path = "パスを入力"
compressed_Data = pydicom.read_file(path)

#表示
plt.imshow(compressed_Data.pixel_array, cmap = "gray")
plt.show()
1
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4