JNIfTI

A fast and portable NIfTI-1/2 reader and NIfTI-to-JNIfTI converter
208 descargas
Actualizado 28 jun 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');

Citar como

Qianqian Fang (2024). JNIfTI (https://github.com/fangq/jnifti), GitHub. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R2016a
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux
Categorías
Más información sobre Data Import and Analysis en Help Center y MATLAB Answers.
Agradecimientos

Inspirado por: 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

No se pueden descargar versiones que utilicen la rama predeterminada de GitHub

Versión Publicado Notas de la versión
0.5.1

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

Para consultar o notificar algún problema sobre este complemento de GitHub, visite el repositorio de GitHub.
Para consultar o notificar algún problema sobre este complemento de GitHub, visite el repositorio de GitHub.