問題
とある研究で、DICOMを使用している。いつも通り、Pydicomを使用してDICOM画像を読み込もうとしたらエラー。
RuntimeError: The following handlers are available to decode the pixel data however they are missing required dependencies: GDCM (req. GDCM), JPEG-LS (req. CharPyLS), pylibjpeg (req. )
初めて見るエラー。同じ施設内のデータなのに何故読み込めるデータと読み込めないデータが??
処置
いつも通り、エラーをそのままコピペしてググった。
以下のサイトが出てきて、参考にした。
① https://stackoverflow.com/questions/54657768/pydicom-cant-read-pixel-data-and-needs-gdcm-or-pillow
② https://pydicom.github.io/pydicom/stable/old/image_data_handlers.html
上記サイトにより、いつも使用しているDICOMファイルの画像はローデータであり、圧縮されていないのでは??と推測した。そして、今回のファイルの画像は、施設の何らかの画像解析ソフトを介して出力されたファイルであり、圧縮されていたと考えた。
圧縮されたDICOMのpixel_array
は、②により圧縮状態から解凍するための以下のパッケージが必要だそう。
・GDCM
・Pillow
・jpeg_ls
・pylibjpeg
ということで、上記パッケージをpip install
を行い、再実行すると、無事問題解決!!
まとめ
今回のケースでは、よくわからない不思議な現象で困惑していましたが、冷静にエラーに書いてある通りに対処すれば解決しました!!
何かの参考になれば幸いです。