NAME
m-anlz - Analyze (SPM) medical image format (MedCon)
DESCRIPTION
This is a very simple format. The basic headers are written in one file with
extension `.hdr', the image data in another file with extension `.img'.
The basic defines for the format:
---------------------------------------------------------------------------
typedef struct Header_Key_t{
Int32 sizeof_hdr; /* 348 or 148 */
char data_type[10]; /* "dsr" */
char db_name[18]; /* filename without extension */
Int32 extents; /* 16384 */
Int16 session_error;
char regular; /* 'r' */
char hkey_un0;
} MDC_ANLZ_HEADER_KEY;
#define MDC_ANLZ_HK_SIZE 40
typedef struct Image_Dimensions_t{
Int16 dim[8]; /* [0] = # of dimensions */
/* [1] = X-dim */
/* [2] = Y-dim */
/* [3] = Z-dim */
/* [4] = t-dim */
/* ... */
Int16 unused[7];
Int16 datatype; /* pixel type */
/* 0 = Unknown 1 = one-bit */
/* 2 = Uint8 4 = Int16 */
/* 8 = Int32 16 = float */
/* 32 = complex 64 = double */
/*128 = RGB 255 = all */
Int16 bitpix; /* bits per pixel */
Int16 dim_un0;
float pixdim[8]; /* [0] = # of dimensions */
/* [1] = X-dim (mm) */
/* [2] = Y-dim (mm) */
/* [3] = Z-dim (mm) */
/* [4] = t-dim (ms) */
/* ... */
float funused[6];
float compressed;
float verified;
Int32 glmax,glmin;
} MDC_ANLZ_IMAGE_DIMS;
#define MDC_ANLZ_IMD_SIZE 108
typedef struct Data_History_t{
char descrip[80];
char aux_file[24];
char orient; /* patient orientation */
/* 0 = transverse unflipped */
/* 1 = coronal unflipped */
/* 2 = sagittal unflipped */
/* 3 = transverse flipped */
/* 4 = coronal flipped */
/* 5 = sagittal flipped */
char originator[10];
char generated[10];
char scannum[10];
char patient_id[10];
char exp_date[10];
char exp_time[10];
char hist_un0[3];
Int32 views;
Int32 vols_added;
Int32 start_field;
Int32 field_skip;
Int32 omax, omin;
Int32 smax, smin;
} MDC_ANLZ_DATA_HIST;
#define MDC_ANLZ_DH_SIZE 200
---------------------------------------------------------------------------
The structures are defined in the order as they should be found in the file.
The Data_History header is not obliged. The SPM Analyze format, intended for
the SPM software, differs a little from the normal Analyze format.
What does the format support or not support:
===========================================================================
Item Supported Not Supported
===========================================================================
Color Map : grayscale -
File Endian : little & big -
Pixeltypes : 1-bit, Uint8, Int16, Int32 Int8,Uint16,Uint32
float, double, (complex) Int64,Uint64
===========================================================================
Scaling factors : quantify & calibrate factors/image are NOT supported
---------------------------------------------------------------------------
Dimensions/Image : different dimensions for each image are NOT supported
---------------------------------------------------------------------------
Pixeltypes/Image : different pixeltypes for each image are NOT supported
---------------------------------------------------------------------------
SPM remarks : 1) imd.funused[0] = the offset
2) imd.funused[1] = one global scaling factor
3) (Int16)dh.originator[0...1] \
(Int16)dh.originator[2...3] } = origin (X, Y, Z)
(Int16)dh.originator[4...5] /
===========================================================================
NOTES
A note about the image (patient) orientation in SPM:
X-axis
increases from leftside (hand) to rightside (hand).
Y-axis
increases from posterior (back) to anterior (front).
Z-axis
increases from inferior (feet) to superior (head).
FILES
/usr/local/xmedcon/source/m-anlz.h The header file.
/usr/local/xmedcon/source/m-anlz.c The source file.
SEE ALSO
medcon(1), xmedcon(1), xmedcon-config(1)
m-acr(4), m-gif(4), m-inw(4), m-intf(4), m-ecat(4)
medcon(3)
AUTHOR
(X)MedCon project was originally written by Erik Nolf (eNlf) for the former
PET-Centre at Ghent University (Belgium).
e-mail: enlf-at-users.sourceforge.net www: http://xmedcon.sourceforge.net