2 min read

A Simple Way to Normalize DICOM Files using Python

A Simple Way to Normalize DICOM Files using Python Sehul Viras

Improving Medical Image Analysis with Quick and Easy DICOM File Normalization in Python for Better Machine Learning Models

Continue reading on Digital Health Playbook »

Normalization is a crucial step in image processing for Machine Learning or Deep Learning tasks, and this is particularly true when working with biomedical images like DICOM (Digital Imaging and Communications in Medicine). In many biomedical image analysis tasks, including image segmentation, classification, and detection, normalizing DICOM files is a key step to obtain accurate and reliable results.

In this article, I will showcase a simple and effective way to normalize DICOM files using only three lines of Python code.

Photo by Robert Zunikoff on Unsplash

One of the most common ways to normalize DICOM files is to rescale the pixel values to a range between 0 and 1. This can be achieved by dividing each pixel value by the maximum pixel value in the image. Here’s a simple code snippet that shows how to do this:import pydicom
import numpy as np

# Load DICOM file and extract pixel array
dcm = pydicom.dcmread('dicom_file.dcm')
pixel_array = dcm.pixel_array

# Normalize pixel_array
normalized = pixel_array.astype(np.float32) / pixel_array.max()

A Breakdown of the Code Snippet

pixel_array is the 2D numpy array of pixel values from the DICOM file.

pixel_array.astype(np.float32) converts the pixel_array to a float32 data type, which is a common data type used for image processing in Python.

pixel_array.max() returns the maximum pixel value in the pixel_array.

pixel_array.astype(np.float32) / pixel_array.max() divides each pixel value in the pixel array by the maximum pixel value, resulting in a normalized pixel array with values between 0 and 1.

Histogram of Original and Normalized Pixel Values

The impact of normalization on pixel value distribution can be observed in the following two plots. The first plot depicts the original (non-normalized) pixel values. The second plot shows the distribution of pixel values after normalization.

Histogram of Original DICOM Pixel Array
Histogram of Normalized DICOM Pixel Array

In Conclusion

Overall, this normalization technique is a simple and effective way to prepare DICOM images for your simple baseline medical imaging machine learning model.

Please follow my publication Digital Health Playbook for more stories on Healthcare AI.