본문 바로가기
Programming/Python

[Python][Error] RuntimeError: Unable to decompress 'JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])' pixel data because all plugins are missing dependencies: gdcm - requires gdcm>=3.0.10 pylibjpeg - requires pylibj

by binary.log 2025. 7. 12.
반응형

pydicom에서 JPEG 압축된 DICOM 파일을 읽을 때 발생하는 오류 해결법입니다. 

문제 상황

엑셀 파일을 불러오기 위해 아래와 같은 코드를 실행했을 때:
dcm = pydicom.dcmread(img_path)
img = dcm.pixel_array

 

다음과 같은 에러가 발생합니다:

RuntimeError Traceback (most recent call last)
...
RuntimeError: Unable to decompress 'JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])' pixel data because all plugins are missing dependencies:
	gdcm - requires gdcm>=3.0.10
	pylibjpeg - requires pylibjpeg>=2.0 and pylibjpeg-libjpeg>=2.1

 

원인

이 에러는 DICOM 파일이 JPEG Lossless 방식으로 압축되어 있을 때, 이를 해제(decompress)할 수 있는 디코더가 시스템에 설치되어 있지 않기 때문에 발생합니다.

pydicom 자체로는 압축 해제를 지원하지 않기 때문에 외부 라이브러리가 필요합니다. 대표적으로:

  • GDCM (Grassroots DICOM)
  • pylibjpeg + pylibjpeg-libjpeg

이 중 하나라도 설치되어 있어야 압축된 이미지 데이터를 .pixel_array로 불러올 수 있습니다.

 

해결 방법

방법 1: pylibjpeg 기반 설치 (권장)

pip install pylibjpeg pylibjpeg-libjpeg pylibjpeg-openjpeg

 

이렇게 설치하면 JPEG Lossless, JPEG 2000, JPEG Baseline 등 대부분의 압축 방식이 지원됩니다.

설치 이후 코드를 restart 하면 정상적으로 동작하는 것을 확인할 수 있습니다. 

 

방법 2: GDCM 설치

conda install -c conda-forge gdcm

 

python-gdcm은 pip로 설치가 어렵기 때문에 conda 환경을 추천합니다.

설치 후 코드를 실행하면 압축된 DICOM도 정상적으로 불러올 수 있습니다.

 

반응형