Skip to content

Upstream package that provides an interface to the ITK I/O functions in Julia and a bunch of medical imaging analysis workflows

License

Notifications You must be signed in to change notification settings

JuliaHealth/MedImages.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MedImages.jl JuliaHealth Logo

MedImages.jl

A comprehensive Julia library for standardized 3D and 4D medical imaging data handling


Overview

MedImages.jl provides a standardized framework for handling 3D and 4D medical imaging data. The metadata structure is loosely based on the BIDS format1.

This project aims to create a unified approach to medical image processing across various modalities including CT, MRI, and PET scans. Currently, ultrasonography support is not included, and we welcome contributors with expertise in this area.

Features & Development Roadmap

Feature Category Status Description
Data Structure Design Core data structures for medical imaging standardization
Data Loading Support for common medical imaging formats
Spatial Transformations 🚧 Advanced spatial processing with metadata preservation
Persistence Layer 🚧 Efficient storage and retrieval mechanisms

Data Structure Design

The core architecture manages these key components:

Component Includes
Voxel data Multidimensional arrays
Spatial metadata • Origin coordinates
• Orientation information
• Spacing/resolution data
Image classification • Primary type (CT/MRI/PET/label maps)
• Subtype (e.g., MRI: ADC/DWI/T2)
• Voxel data type (e.g., Float32)
Study metadata • Acquisition date/time
• Patient identifiers
• Study/Series UIDs
• Study descriptions
• Original filenames
Display properties • Color mappings for labels
• Window/level values for CT scans
Clinical data • Patient demographics
• Contrast administration status
Additional metadata Stored in extensible dictionaries

Data Loading Capabilities

Format Implementation Status
NIfTI via Nifti.jl
DICOM via Dicom.jl
MHA direct implementation 🚧

Spatial Transformations

Our spatial processing framework preserves metadata while enabling:

  • Orientation standardization to a common reference frame (e.g., RAS)
  • Spacing/resolution adjustment with appropriate interpolation methods
  • Cross-modality resampling for multi-modal registration
  • Region-of-interest operations (cropping, dilation) with origin adjustments

Persistence Layer

Feature Description Status
HDF5-based storage Arrays with metadata attributes
Device-agnostic I/O Operations for CPU/GPU 🚧
Format conversion Exporting to standard medical formats 🚧

Development Status

This project is under active development. The spatial transformation components present the most significant challenges due to numerous edge cases. We're exploring solutions based on packages like MetaArrays.jl.

Component Status Priority
Core data structures ✅ Complete High
Format loading/saving ✅ Complete High
Spatial transformations 🚧 In progress High
GPU compatibility 🚧 In progress Medium
Ultrasonography support 📋 Planned Low

Contributing

Contributions are welcome! If you have expertise in medical imaging, particularly ultrasonography, or experience with the technical challenges described above, please consider getting involved.

References

[1] Gorgolewski, K.J., Auer, T., Calhoun, V.D. et al. The brain imaging data structure, a format for organizing and describing outputs of neuroimaging experiments. Sci Data 3, 160044 (2016). https://www.nature.com/articles/sdata201644

About

Upstream package that provides an interface to the ITK I/O functions in Julia and a bunch of medical imaging analysis workflows

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages