#目的
圧縮された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()