2 releases
0.1.1 | Mar 11, 2024 |
---|---|
0.1.0 | Apr 2, 2023 |
#6 in #imaging
52 downloads per month
26KB
492 lines
NIFTI-Processing-rs
This library is designed as an extension of the NIFTI-rs library, adding 3D resampling support. This library is closely modeled after the NiBabel processing module, hence the name.
Features
The resample_to_output
and resample_from_to
functions with nearest neighbor and trilinear resampling are implemented.
Limitations
- Minimal error checking; Will be extended.
- Minimal unit tests; Will be extended.
- Please also consult the issue tracker.
Requirements
The nalgebra_affine
and ndarray_volumes
features of NIFTI-rs are required.
Example
Load a Nifti image file with NIFTI-rs and resample the volume to a grid spacing of 1 mm:
use nifti::{NiftiObject, ReaderOptions, NiftiVolume};
use use nifti_processing::{resample_to_output, sampler};
let obj = ReaderOptions::new().read_file("myvolume.nii.gz")?;
let header = obj.header();
let affine = header.get_affine();
let volume = obj.volume();
let im = volume.into_ndarray::<f32>()?;
let nn = sampler::NearestNeighbor::default();
let (resampled_im, resampled_affine) = resample_to_output(&im, &affine, &[1.0,1.0,1.0], nn)
See also the examples directory.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any Contribution intentionally submitted for inclusion in work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~6.5MB
~132K SLoC