Initial commit

This commit is contained in:
redclawsystems
2026-03-04 00:08:42 +00:00
commit 4d88dc0584
4449 changed files with 1556714 additions and 0 deletions
@@ -0,0 +1,66 @@
//! Medical imaging file format support for RustyTorch.
//!
//! This crate provides readers and writers for common medical imaging file formats,
//! enabling integration with the RustyTorch ecosystem for GPU-accelerated medical
//! image processing and analysis.
//!
//! # Supported Formats
//!
//! - **NIfTI** (`.nii`, `.nii.gz`): Neuroimaging Informatics Technology Initiative format
//! - NIfTI-1 and NIfTI-2 support
//! - Full header parsing with affine transforms
//! - Support for all common data types
//!
//! # Example
//!
//! ```ignore
//! use rtx_medical_io::{nifti, Volume};
//!
//! // Read a NIfTI file
//! let volume = nifti::read_nifti("brain.nii.gz")?;
//!
//! // Access metadata
//! println!("Shape: {:?}", volume.shape());
//! println!("Spacing: {:?}", volume.spacing());
//! println!("Origin: {:?}", volume.origin());
//!
//! // Process the volume
//! let thresholded = volume.threshold(100.0);
//!
//! // Write back
//! nifti::write_nifti(&thresholded, "output.nii.gz", nifti::NiftiDataType::Float32)?;
//! ```
//!
//! # Compatibility with MRI2FE
//!
//! This crate is designed to be compatible with the MRI2FE workflow:
//!
//! - Read segmented NIfTI images for mesh generation
//! - Support for labeled volumes (segmentation masks)
//! - INR format export for CGAL-compatible mesh generation
//! - Affine transform handling for spatial coordinates
//!
//! # Features
//!
//! - `dicom` - Enable DICOM format support (future)
//! - `gpu` - Enable GPU acceleration for volume operations (future)
pub mod error;
pub mod nifti;
pub mod volume;
// Re-exports for convenience
pub use error::{MedicalIoError, Result};
pub use nifti::{
Affine4, NiftiDataType, NiftiHeader, read_nifti, read_nifti_header, write_inr, write_nifti,
};
pub use volume::Volume;
/// Prelude module for commonly used items.
pub mod prelude {
pub use crate::error::{MedicalIoError, Result};
pub use crate::nifti::{
Affine4, NiftiDataType, NiftiHeader, read_nifti, read_nifti_header, write_inr, write_nifti,
};
pub use crate::volume::Volume;
}