Monte Carlo eXtreme (MCX)
Classes | Macros | Typedefs
nifti1.h File Reference

Official definition of the nifti1 header. Written by Bob Cox, SSCC, NIMH. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nifti_1_header
 Data structure defining the fields in the nifti1 header. This binary header should be found at the beginning of a valid NIFTI-1 header file. More...
 
struct  nifti1_extender
 This structure represents a 4-byte string that should follow the binary nifti_1_header data in a NIFTI-1 header file. If the char values are {1,0,0,0}, the file is expected to contain extensions, values of {0,0,0,0} imply the file does not contain extensions. Other sequences of values are not currently defined. More...
 
struct  nifti1_extension
 Data structure defining the fields of a header extension. More...
 

Macros

#define DT_NONE   0
 
#define DT_UNKNOWN   0 /* what it says, dude */
 
#define DT_BINARY   1 /* binary (1 bit/voxel) */
 
#define DT_UNSIGNED_CHAR   2 /* unsigned char (8 bits/voxel) */
 
#define DT_SIGNED_SHORT   4 /* signed short (16 bits/voxel) */
 
#define DT_SIGNED_INT   8 /* signed int (32 bits/voxel) */
 
#define DT_FLOAT   16 /* float (32 bits/voxel) */
 
#define DT_COMPLEX   32 /* complex (64 bits/voxel) */
 
#define DT_DOUBLE   64 /* double (64 bits/voxel) */
 
#define DT_RGB   128 /* RGB triple (24 bits/voxel) */
 
#define DT_ALL   255 /* not very useful (?) */
 
#define DT_UINT8   2
 
#define DT_INT16   4
 
#define DT_INT32   8
 
#define DT_FLOAT32   16
 
#define DT_COMPLEX64   32
 
#define DT_FLOAT64   64
 
#define DT_RGB24   128
 
#define DT_INT8   256 /* signed char (8 bits) */
 
#define DT_UINT16   512 /* unsigned short (16 bits) */
 
#define DT_UINT32   768 /* unsigned int (32 bits) */
 
#define DT_INT64   1024 /* long long (64 bits) */
 
#define DT_UINT64   1280 /* unsigned long long (64 bits) */
 
#define DT_FLOAT128   1536 /* long double (128 bits) */
 
#define DT_COMPLEX128   1792 /* double pair (128 bits) */
 
#define DT_COMPLEX256   2048 /* long double pair (256 bits) */
 
#define DT_RGBA32   2304 /* 4 byte RGBA (32 bits/voxel) */
 
#define NIFTI_TYPE_UINT8   2
 
#define NIFTI_TYPE_INT16   4
 
#define NIFTI_TYPE_INT32   8
 
#define NIFTI_TYPE_FLOAT32   16
 
#define NIFTI_TYPE_COMPLEX64   32
 
#define NIFTI_TYPE_FLOAT64   64
 
#define NIFTI_TYPE_RGB24   128
 
#define NIFTI_TYPE_INT8   256
 
#define NIFTI_TYPE_UINT16   512
 
#define NIFTI_TYPE_UINT32   768
 
#define NIFTI_TYPE_INT64   1024
 
#define NIFTI_TYPE_UINT64   1280
 
#define NIFTI_TYPE_FLOAT128   1536
 
#define NIFTI_TYPE_COMPLEX128   1792
 
#define NIFTI_TYPE_COMPLEX256   2048
 
#define NIFTI_TYPE_RGBA32   2304
 
#define NIFTI_INTENT_NONE   0
 
#define NIFTI_INTENT_CORREL   2
 
#define NIFTI_INTENT_TTEST   3
 
#define NIFTI_INTENT_FTEST   4
 
#define NIFTI_INTENT_ZSCORE   5
 
#define NIFTI_INTENT_CHISQ   6
 
#define NIFTI_INTENT_BETA   7
 
#define NIFTI_INTENT_BINOM   8
 
#define NIFTI_INTENT_GAMMA   9
 
#define NIFTI_INTENT_POISSON   10
 
#define NIFTI_INTENT_NORMAL   11
 
#define NIFTI_INTENT_FTEST_NONC   12
 
#define NIFTI_INTENT_CHISQ_NONC   13
 
#define NIFTI_INTENT_LOGISTIC   14
 
#define NIFTI_INTENT_LAPLACE   15
 
#define NIFTI_INTENT_UNIFORM   16
 
#define NIFTI_INTENT_TTEST_NONC   17
 
#define NIFTI_INTENT_WEIBULL   18
 
#define NIFTI_INTENT_CHI   19
 
#define NIFTI_INTENT_INVGAUSS   20
 
#define NIFTI_INTENT_EXTVAL   21
 
#define NIFTI_INTENT_PVAL   22
 
#define NIFTI_INTENT_LOGPVAL   23
 
#define NIFTI_INTENT_LOG10PVAL   24
 
#define NIFTI_FIRST_STATCODE   2
 
#define NIFTI_LAST_STATCODE   24
 
#define NIFTI_INTENT_ESTIMATE   1001
 
#define NIFTI_INTENT_LABEL   1002
 
#define NIFTI_INTENT_NEURONAME   1003
 
#define NIFTI_INTENT_GENMATRIX   1004
 
#define NIFTI_INTENT_SYMMATRIX   1005
 
#define NIFTI_INTENT_DISPVECT   1006 /* specifically for displacements */
 
#define NIFTI_INTENT_VECTOR   1007 /* for any other type of vector */
 
#define NIFTI_INTENT_POINTSET   1008
 
#define NIFTI_INTENT_TRIANGLE   1009
 
#define NIFTI_INTENT_QUATERNION   1010
 
#define NIFTI_INTENT_DIMLESS   1011
 
#define NIFTI_INTENT_TIME_SERIES   2001
 
#define NIFTI_INTENT_NODE_INDEX   2002
 
#define NIFTI_INTENT_RGB_VECTOR   2003
 
#define NIFTI_INTENT_RGBA_VECTOR   2004
 
#define NIFTI_INTENT_SHAPE   2005
 
#define NIFTI_XFORM_UNKNOWN   0
 
#define NIFTI_XFORM_SCANNER_ANAT   1
 
#define NIFTI_XFORM_ALIGNED_ANAT   2
 
#define NIFTI_XFORM_TALAIRACH   3
 
#define NIFTI_XFORM_MNI_152   4
 
#define NIFTI_UNITS_UNKNOWN   0
 
#define NIFTI_UNITS_METER   1
 
#define NIFTI_UNITS_MM   2
 
#define NIFTI_UNITS_MICRON   3
 
#define NIFTI_UNITS_SEC   8
 
#define NIFTI_UNITS_MSEC   16
 
#define NIFTI_UNITS_USEC   24
 
#define NIFTI_UNITS_HZ   32
 
#define NIFTI_UNITS_PPM   40
 
#define NIFTI_UNITS_RADS   48
 
#define XYZT_TO_SPACE(xyzt)   ( (xyzt) & 0x07 )
 
#define XYZT_TO_TIME(xyzt)   ( (xyzt) & 0x38 )
 
#define SPACE_TIME_TO_XYZT(ss, tt)
 
#define DIM_INFO_TO_FREQ_DIM(di)   ( ((di) ) & 0x03 )
 
#define DIM_INFO_TO_PHASE_DIM(di)   ( ((di) >> 2) & 0x03 )
 
#define DIM_INFO_TO_SLICE_DIM(di)   ( ((di) >> 4) & 0x03 )
 
#define FPS_INTO_DIM_INFO(fd, pd, sd)
 
#define NIFTI_SLICE_UNKNOWN   0
 
#define NIFTI_SLICE_SEQ_INC   1
 
#define NIFTI_SLICE_SEQ_DEC   2
 
#define NIFTI_SLICE_ALT_INC   3
 
#define NIFTI_SLICE_ALT_DEC   4
 
#define NIFTI_SLICE_ALT_INC2   5 /* 05 May 2005: RWCox */
 
#define NIFTI_SLICE_ALT_DEC2   6 /* 05 May 2005: RWCox */
 
#define NIFTI_VERSION(h)
 
#define NIFTI_ONEFILE(h)   ( (h).magic[1] == '+' )
 
#define NIFTI_NEEDS_SWAP(h)   ( (h).dim[0] < 0 || (h).dim[0] > 7 )
 
#define NIFTI_5TH_DIM(h)   ( ((h).dim[0]>4 && (h).dim[5]>1) ? (h).dim[5] : 0 )
 

Typedefs

typedef struct nifti_1_header nifti_1_header
 
typedef struct nifti1_extender nifti1_extender
 
typedef struct nifti1_extension nifti1_extension
 

Detailed Description

Official definition of the nifti1 header. Written by Bob Cox, SSCC, NIMH.

HISTORY:

29 Nov 2007 [rickr]
   - added DT_RGBA32 and NIFTI_TYPE_RGBA32
   - added NIFTI_INTENT codes:
        TIME_SERIES, NODE_INDEX, RGB_VECTOR, RGBA_VECTOR, SHAPE

Macro Definition Documentation

◆ FPS_INTO_DIM_INFO

#define FPS_INTO_DIM_INFO (   fd,
  pd,
  sd 
)
Value:
( ( ( ((char)(fd)) & 0x03) ) | \
( ( ((char)(pd)) & 0x03) << 2 ) | \
( ( ((char)(sd)) & 0x03) << 4 ) )

◆ NIFTI_5TH_DIM

#define NIFTI_5TH_DIM (   h)    ( ((h).dim[0]>4 && (h).dim[5]>1) ? (h).dim[5] : 0 )

Check if a nifti_1_header struct contains a 5th (vector) dimension. Returns size of 5th dimension if > 1, returns 0 otherwise.

◆ NIFTI_INTENT_NONE

#define NIFTI_INTENT_NONE   0

default: no intention is indicated in the header.

◆ NIFTI_NEEDS_SWAP

#define NIFTI_NEEDS_SWAP (   h)    ( (h).dim[0] < 0 || (h).dim[0] > 7 )

Check if a nifti_1_header struct needs to be byte swapped. Returns 1 if it needs to be swapped, 0 if it does not.

◆ NIFTI_ONEFILE

#define NIFTI_ONEFILE (   h)    ( (h).magic[1] == '+' )

Check if a nifti_1_header struct says if the data is stored in the same file or in a separate file. Returns 1 if the data is in the same file as the header, 0 if it is not.

◆ NIFTI_VERSION

#define NIFTI_VERSION (   h)
Value:
( ( (h).magic[0]=='n' && (h).magic[3]=='\0' && \
( (h).magic[1]=='i' || (h).magic[1]=='+' ) && \
( (h).magic[2]>='1' && (h).magic[2]<='9' ) ) \
? (h).magic[2]-'0' : 0 )

Given a nifti_1_header struct, check if it has a good magic number. Returns NIFTI version number (1..9) if magic is good, 0 if it is not.

◆ SPACE_TIME_TO_XYZT

#define SPACE_TIME_TO_XYZT (   ss,
  tt 
)
Value:
( (((char)(ss)) & 0x07) \
| (((char)(tt)) & 0x38) )