[의료영상] Python에서 DICOM 파일 불러오기

es.Seong·2024년 3월 5일
0
post-custom-banner

의료영상을 다룰 일이 많아질 것 같아 의료영상에서 자주 사용되는 .dcm 확장자, DICOM(다이콤) 파일을 Python 환경에서 어떻게 읽고 시각화하는지 정리한 글이다.

우선 Sample DICOM 파일을 아래 홈페이지 마지막 이미지 부분1개 다운받아보자.

https://www.rubomedical.com/dicom_files/

해당 이미지를 클릭하면 다운로드 받을 수 있다.
압축을 해제하면 .dcm 파일 1개가 있을 것이다.

해당 DICOM 파일을 파이썬에서 읽기 위해선 pydicom 라이브러리가 필요하다.
pip install을 통해 설치해주자.

pip install pydicom

# dicom 파이썬 라이브러리
import pydicom
import matplotlib.pyplot as plt

# dcm 파일 경로
dcm_path = './MRBRAIN.dcm'

# dcm 파일 읽기
dcm = pydicom.dcmread(dcm_path)

dcmread 메소드를 통해 정의한 경로의 dcm 파일을 읽을 수 있다.

이제 dcm에 어떤 정보가 있는지 확인해보자.

print(dcm)


print 결과 다음과 같이 dcm 파일의 meta data가 출력되는 것을 확인할 수 있다.

이중에서 시각화를 위해 사용할 변수는 Window Center, Window Width, pixcel_array이다.

WC = dcm.WindowCenter
WW = dcm.WindowWidth

print(WC, WW)

# 1951 237

"여기서 WC, WW에 대해 찾아본 것을 간단히 설명하면 WC를 기준으로 WW 범위만큼 관찰한다"라고 이해했다.

# 픽셀 배열 출력
img = dcm.pixel_array
img

# 이미지 시각화
plt.imshow(img, cmap=plt.cm.bone, vmin=WC-WW/2, vmax=WC+WW/2)
# vmin : 최소값, vmax : 최대값
plt.colorbar()
plt.show()

픽셀의 최소, 최대값을 정의하는 vmin과 vmax파라미터는 임의로 WC 기준 ±WW의 절반으로 정의했다.
위 코드를 실행하면 다음과 샘플이미지와 색상이 조금은 다르지만 동일한 이미지가 출력되는 것을 확인할 수 있었다.

profile
Graduate student at Pusan National University, majoring in Artificial Intelligence
post-custom-banner

0개의 댓글