JNIfTI

A fast and portable NIfTI-1/2 reader and NIfTI-to-JNIfTI converter
208 téléchargements
Mise à jour 28 juin 2023

JNIfTI Toolbox - Fast and portable NIfTI-1/2 reader and NIfTI-to-JNIfTI converter
--------------------------------------------------------------------------------
Version: 0.5 (Ascendence)
URL: http://github.com/fangq/jnifti

[Update 10/11/2019] JNIfTI is now available on Fedora/NeuroFedora, install using
sudo dnf install octave-jnifti

== Overview ==
This is a fully functional NIfTI-1/2 reader/writer that supports both MATLAB and GNU Octave, and is capable of reading/writing both non-compressed and compressed NIfTI files (.nii, .nii.gz) as well as two-part Analyze7.5/NIfTI files (.hdr/.img and .hdr.gz/.img.gz).

More importantly, this is a toolbox that converts NIfTI data to its JSON-based replacement, JNIfTI (.jnii for text-based and .bnii for binary-based), defined by the JNIfTI specification (http://github.com/fangq/jnifti). JNIfTI is a much more flexible, human-readable and extensible file format compared to the more rigid and opaque NIfTI format, making the data much easier to manipulate and share.

== Installation ==
The JNIfTI toolbox includes a stand-alone NIfTI-1/2 parser that works on both MATLAB and GNU Octave without needing additional components. To just reading and writing the un-compressed NIfTI and Analyze7.5 files (.nii, .hdr/.img), one only needs to run addpath('/path/to/jnifti'). For MATLAB, JNIfTI toolbox utilizes memmapfile-based disk-reading, making it very fast. For Octave, memmapfile is currently not implemented, so, a full reading is required.

The JNIfTI toolbox is also capable of reading/writing gzip-compressed NIfTI and Analyze7.5 files (.nii.gz, .hdr.gz, .img.gz). This feature is supported in MATLAB directly without needing another toolbox (MATLAB must be in the JVM-enabled mode).

To process gzip-compressed NIfTI/Analyze files in Octave and MATLAB with -nojvm, one need to install the open-source JSONLab and ZMat toolboxes, both supporting MATLAB and Octave. They can be downloaded at

JSONLab: http://github.com/fangq/jsonlab
ZMat: http://github.com/fangq/zmat

To save NIfTI-1/2 data as JNIfTI files, one needs to install JSONLab. The JNIfTI data format supports internal compression (as oppose to external compression such as *.gz files). To create or read compressed JNIfTI files in Octave, one must install the ZMat toolbox, as listed above.

== Usage ==

=== nii2jnii - To convert a NIfTI-1/2 file to a JNIfTI file or data structure ===
Example:

savenifti(rand(10,10,10),'test.nii');
nii=nii2jnii('test.nii', 'nii'); % read a .nii file as a nii structure
gzip('test.nii');
nii=nii2jnii('test.nii.gz'); % read a .nii.gz file as a jnii structure
nii2jnii('test.nii.gz', 'newdata.jnii') ;% read a .nii.gz file and convert to a text-JNIfTI file
nii2jnii('test.nii.gz', 'newdata.bnii','compression','zlib'); % read a .nii.gz file and convert to a binary-JNIfTI file with compression

=== loadnifti - To read a NIfTI-1/2 (.nii or .nii.gz) file (alias to nii2jnii) ===
# Example:

nii=loadnifti('test.nii.gz'); % read a .nii.gz file as a jnii structure
nii=loadnifti('test.nii', 'nii'); % read a .nii file as a nii structure

=== savenifti - To write an image as NIfTI-1/2 (.nii or .nii.gz) file ===
Example:

savenifti(img,'test.nii.gz'); % save an array img to a compressed nifti file
savenifti(img, 'test.nii', 'nifti2'); % save an array img to a nifti-2 file file
savenifti(img, 'test.nii', header); % save an array img with an existing header

=== loadjnifti - To read a JNIfTI (.jnii or .bnii) file ===
# Example:

jnii=nii2jnii('test.nii.gz');
savejnifti(jnii, 'magic10.bnii','Compression','gzip');
newjnii=loadjnifti('magic10.bnii');

=== savejnifti - To write a JNIfTI structure into a file (.jnii or .bnii) ===
# Example:

jnii=jnifticreate(uint8(magic(10)),'Name','10x10 magic matrix');
savejnifti(jnii, 'magic10.jnii');
savejnifti(jnii, 'magic10_debug.bnii','Compression','gzip');

Citation pour cette source

Qianqian Fang (2024). JNIfTI (https://github.com/fangq/jnifti), GitHub. Récupéré le .

Compatibilité avec les versions de MATLAB
Créé avec R2016a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Data Import and Analysis dans Help Center et MATLAB Answers
Remerciements

Inspiré par : zmat, JSONLab (Development Branch)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

samples/basic

samples/colin27

samples/headct

samples/nifti2

Les versions qui utilisent la branche GitHub par défaut ne peuvent pas être téléchargées

Version Publié le Notes de version
0.5.1

- JNIfTI is now available on Fedora/NeuroFedora, install using
sudo dnf install octave-jnifti

Pour consulter ou signaler des problèmes liés à ce module complémentaire GitHub, accédez au dépôt GitHub.
Pour consulter ou signaler des problèmes liés à ce module complémentaire GitHub, accédez au dépôt GitHub.