Open In App

View DICOM images using Pydicom and Matplotlib

Last Updated : 17 Feb, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: Matplotlib 

DICOM stands for Digital Imaging and Communications in Medicine. DICOM files were introduced to maintain uniformity among varied types of medical image modalities. It is a standard format to view, store, share and retrieve medical images.

Python offers a powerful module, pydicom to work with the DICOM files such as medical images, reports, and radiotherapy objects. pydicom reads modify and write data in DICOM files. 

Installation

Run the following commands in the command prompt:

pip install dicom
pip install matplotlib

pydicom enables us to work with DICOM files, in this article we will discuss the mechanism of viewing the DICOM file using pydicom and matplotlib. For reading the DICOM files we use pydicom package and to view the result we use matplotlib.

Approach

  • Import module
  • Read DICOM file using pydicom.data.data_manager.get_files() method

Syntax : 

pydicom.data.data_manager.get_files(base,pass_dicom)[0]

Parameter:

  • Base : is base directory to recursively search as a string.
  • Pattern : By default it is “*”. It is a string pattern which is used to filter the files.
  • Provide 2 arguments: base and pattern
  • Display the data as image i.e. on 2D regular raster.
  • Display image

Note: Enter the location of the dcm file excluding the file name in the base of the variable name and enter the file name in the pass_dicom variable. In this case, the file is stored at a directory named dicom_image as shown:

Download the dcm file from here and rename it to: 1-12.dcm

Compare the path shown in the address bar with the values stored in the variable base and pass_dicom

Program:

Python3




import matplotlib.pyplot as plt
import pydicom
import pydicom.data
  
# Full path of the DICOM file is passed in base
base = r"C:\Users\Ajit Gupta\Documents\dicom image"
pass_dicom = "1-12.dcm"  # file name is 1-12.dcm
  
# enter DICOM image name for pattern
# result is a list of 1 element
filename = pydicom.data.data_manager.get_files(base, pass_dicom)[0]
  
ds = pydicom.dcmread(filename)
  
plt.imshow(ds.pixel_array, cmap=plt.cm.bone)  # set the color map to bone
plt.show()


Output:


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads