Reads in medical images and converts them into numpy arrays.
Project description
MedicalImageConverter
MedicalImageConverter is a Python package for working with medical image files. It lets the user read in images or ROIs (regions of interest), and converts them to 3D numpy arrays. It also allows the user to input non-organized datasets (multiple images inside a single folder). Currently, this module only works for Dicom data with the hopes of expanding to other data formats in the future.
The module currently imports 9 different modalites and RTSTRUCT files. The accepted modalites are:
- CT
- MR
- US
- PT
- MG
- DX
- NM
- XA
- CR
The CT and MR modalities have been tested extensively, along with their respective ROIs. The other 7 modalities have been tested but only on a few datasets a piece. For RTSTRUCTS, only those referencing CT and MR have been tested.
The images will be converted to Head-First-Supine (if not so already), and the image position will be updated to reflect the needed rotations.
Disclaimer: All the files will be loaded into memory so be sure you have enough RAM available. Meaning don't select a folder path that contains 10s of different patient folders because you could possibly run out of RAM. Also, this module does not distinguish between patient IDs or patient names.
Installation
Using pip:
pip install MedicalImageConverter
Example
The user sets a path to the folder containing the dicom files. If the user already has each file path then they can continue to DicomReader, however if the user doesn't then use the file_parsar function. file_parsar will look through all the files inside the given file path and output a dictionary containing file paths for these types found:
- Dicom (.dcm)
- MetaHeader (.mhd)
- Raw (.raw)
- STL (.stl)
In the example below I used file_parsar, output the results into file_dictionary. Then the Dicom list was selected for the dictionary which was input into DicomReader class. Lastly, the data is then loaded in using load_dicom.
Note: The exclude_files allows the user not to get the file paths for any files inside the list, generally the user will use an empty list. The existing_image_info is required when the user is trying to load in an RTSTRUCT file only, some tags are needed for the image it references to create a 3D volume with the correct spacing.
import MedicalImageConverter as mic
path = r'/path/to/folder'
exclude_files = []
existing_image_info = None
file_dictionary = mic.file_parsar(path, exclude_files)
dicom_reader = mic.DicomReader(file_dictionary['Dicom'], existing_image_info)
dicom_reader.load_dicom()
Retrieve image information:
image_data = dicom_reader.get_image_data() # Returns a list of 3D arrays containing each image
image_info = dicom_reader.get_image_info() # Returns a pandas dataframe containing important tag information
Tags in image_info: FilePath, SOPInstanceUID, PatientID, PatientName, Modality, SeriesDescription, SeriesDate, SeriesTime, SeriesInstanceUID, SeriesNumber, AcquisitionNumber, SliceThickness, PixelSpacing, Rows, Columns, PatientPosition, ImagePositionPatient, ImageOrientationPatient, Slices, DefaultWindow, FullWindow
Retrieve ROI information:
roi_data = dicom_reader.get_roi_contour() # Returns a list of lists containing each ROI contour per image
roi_info = dicom_reader.get_roi_info() # Returns a pandas dataframe containing important tag information
Tags in roi_info: FilePath, RoiNames
Retrieve Sorted Files
ds_images = dicom_reader.get_ds_images() # Returns a list of dicom files sorted into each image
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file MedicalImageConverter-1.1.8.tar.gz
.
File metadata
- Download URL: MedicalImageConverter-1.1.8.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6e268e5db5feab51976ba1eb2b212bb7c27b75cbd0a4705a6fcd2858efbf226 |
|
MD5 | bd12fe5076fedc447cac157d9efb6f9e |
|
BLAKE2b-256 | e61f81134b6a7361ba607ec3f99e8625ba74498ea5d4b8cce6287ddf54824363 |
File details
Details for the file MedicalImageConverter-1.1.8-py3-none-any.whl
.
File metadata
- Download URL: MedicalImageConverter-1.1.8-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cdd28ad5c750da9fbed813e35c4626bd51dc073493ada78ec1c9cbb70662399 |
|
MD5 | 928963c069149394525d50a4bdb6ca4d |
|
BLAKE2b-256 | c87bcda5c860d2e1ce3fb90817671b32850903a907900e8b406d5f367955e126 |