【Python】DICOMファイルを扱うpydicomのインストール

【Python】DICOMファイルを扱うpydicomのインストール プログラミング

DICOMファイルをPythonで扱うなら、pydicom一択です。
これ以上は、検索して調査する必要はありません。

本記事の内容

  • pydicomとは?
  • pydicomのシステム要件
  • pydicomのインストール
  • pydicomの動作確認

それでは、上記に沿って解説していきます。

pydicomとは?

pydicomは、DICOMファイルを扱うためのPythonライブラリです。
すべてPythonだけで記述されています。

C言語のAPIを利用(バインディング)などは、一切していません。
特殊な処理をする場合、バインディングはよくあることです。

でも、pydicomはそうではなく、すべてPythonで開発されています。
その意味では、pydicomをPure Pythonと呼ぶことができますね。

なお、DICOMファイルを普通は見れません。
Windows標準のビューワーなどでは、開くことすらできません。

GIMPでなんとか次のように開くことができました。

pydicomで処理(pngに変換)した場合は、次のようにちゃんと見れています。

だからこそ、pydicomスゴイねとなるわけです。

以上、pydicomについて説明しました。
次は、pydicomのシステム要件を確認します。

pydicomのシステム要件

現時点(2021年7月)でのpydicomの最新バージョンは、2.1.2となります。
この最新バージョンは、2020年12月10日にリリースされています。

pydicomのシステム要件は、次の点に注意しましょう。

  • OS
  • Pythonバージョン
  • Numpy

下記でそれぞれの説明をします。

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応となります。

  • Windows
  • macOS
  • Linux

基本的には、pydicomはOSを問わないということです。
ただ、Pythonのバージョンには注意が必要となります。

Pythonバージョン

サポート対象となるPythonのバージョンは以下。

  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

これを見る限り、古いPythonはダメということです。
それに、近いうちにPython 3.6もサポート対象外になるでしょう。

以下は、Python公式開発サイクルです。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

pydicomは、この公式サイクルに準じています。
そうだとすれば、pydicomも2021年中にPython 3.6のサポートをやめるということです。

Numpy

Numpy公式
https://numpy.org/

Numpyに関しては、必須ではありません。
ただし、Pixel Dataをndarrayに変換する場合は必要なライブラリとなります。

Pixel Dataからndarrayへの変換ができると、何が嬉しいのでしょうか?
DICOMをJPEGなどに変換できるようになります。

つまり、DICOMを一般的な画像形式に変換できるようになるのです。
これは、嬉しいですね。

したがって、Numpyは必ず事前にインストールしておきましょう。
NumpyをインストールせずにPixel Dataをndarrayへの変換しようとすると、次のエラーが出ます。

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

Numpyのインストールは、次の記事で説明しています。

まとめ

Numpyのインストールを必須とすると、Python 3.7以降が要件となります。
そうなると、pydicomはそこそこ新しいPythonじゃないとインストールできないと言えます。

pydicomのシステム要件は、Pythonのバージョンに最も注意すべきでしょうね。
あと、Numpyは事前にインストールしておきます。

以上、pydicomのシステム要件について説明しました。
次は、pydicomをインストールしていきます。

pydicomのインストール

最初に、Pythonのバージョンを確認しておきます。

>python -V
Python 3.9.6

現時点(2021年7月)で最新版のPython 3.9.6となります。
Pythonのアップグレード方法については、次の記事でまとめています。

次に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
numpy      1.21.0
pip        21.1.3
setuptools 57.0.0

事前にNumpyはインストール済みです。

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、pydicomのインストールです。
pydicomのインストールは、以下のコマンドとなります。

pip install pydicom

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- -------
numpy      1.21.0
pip        21.1.3
pydicom    2.1.2
setuptools 57.0.0

pydicomパッケージのみが、インストールされました。
依存するパッケージが少ないと、pydicomを導入するのは容易です。
これだけシンプルだと、すでに動いている環境にもpydicomを導入しやすいですね。

以上、pydicomのインストールについて説明しました。
次は、pydicomの動作確認を行います。

pydicomの動作確認

pydicomの動作確認を行います。
事前準備として、次のURLからDICOMファイルをダウンロードします。

pydicomのGitHubページ
https://github.com/pydicom/pydicom/blob/master/pydicom/data/test_files/CT_small.dcm

以下が、動作確認用のコードとなります。

from pydicom import dcmread
from pydicom.data import get_testdata_file

path = get_testdata_file("CT_small.dcm")
ds = dcmread(path)

print(len(ds.PixelData))

「CT_small.dcm」は、ダウンロードしたDICOMファイルです。
上記コードを実行した結果は、次のような表示となります。

32768

「CT_small.dcm」のバイト数を表示しています。
ただ、表面上に見えるバイト数とは異なるようです。

これは、そういうモノなのでしょうね。
ここまで確認できれば、pydicomの動作確認としては十分です。

以上、pydicomの動作確認についての説明でした。

タイトルとURLをコピーしました