- Notifications
You must be signed in to change notification settings - Fork0
Rust library for reading/writing NIfTI files, with SimpleITK/Nibabel-like APIs, native Rust support, and Python bindings for cross-language performance.
License
Apache-2.0, MIT licenses found
Licenses found
Plasma-Blue/nii-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Rust library for reading/writing NIfTI-1 (nii.gz) files, with SimpleITK/NiBabel-like APIs, native Rust support, and Python bindings for cross-language performance.
If you have used SimpleITK/NiBabel, you will definitely love this and get started right away! 🕶
🚀Pure Rust Implementation: Thanks tonifti-rs, I/O speed is comparable to SimpleITK and slightly faster than NiBabel.
✨Carefully Designed API:Super easy to use, with no learning curve; enjoy a consistent experience in Rust as in Python. Ideal for developers familiar with ITK-style libraries.
🛠️Rust-Python bindings: Write heavy operations in Rust and easily call them in Python, combining the performance of Rust with the flexibility of Python.
For Rust projects, add the following to yourCargo.toml
:
[dependencies]nii-rs ="*"
For Python, install via pip:
pip install nii-rs
To start developing with nii-rs, use the following command:
maturin dev -r
For details, please refer to therust examples andpython examples。
use nii;// read imagelet im = nii::read_image::<f32>("test.nii.gz");// get attrs, style same as SimpleITKlet spacing:[f32;3] = im.get_spacing();let origin:[f32;3] = im.get_origin();let direction:[[f32;3];3] = im.get_direction();// get affine, style same as nibabellet affine = im.get_affine();// get array, style same as SimpleITK, i.e.: [z, y, x]let arr:&Array3<f32> = im.ndarray();// write imagenii::write_image(&im,"result.nii.gz")
importnii# read imageim=nii.read_image("test.nii.gz")# get attrs, style same as like SimpleITKspacing=im.get_spacing()origin=im.get_origin()direction=im.get_direction()# get affine, style same as nibabelaffine=im.get_affine()# get array, style same as SimpleITK, i.e.: [z, y, x]arr=im.ndarray()# write imagenii.write_image(im,"result.nii.gz")
Licensed under either of the following licenses, at your choice:
Apache License, Version 2.0(See LICENSE-APACHE or visit http://www.apache.org/licenses/LICENSE-2.0)MIT License(See LICENSE-MIT or visit http://opensource.org/licenses/MIT)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project, as defined by the Apache License 2.0, will be dual-licensed under the above licenses without any additional terms or conditions.
About
Rust library for reading/writing NIfTI files, with SimpleITK/Nibabel-like APIs, native Rust support, and Python bindings for cross-language performance.
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.