PDF文件本地下载:
files/ANALYZE75.pdfHeader File
The header file is represented here as a `C' structure which describes the dimensions and history of the
pixel data. The header structure consists of three substructures:
• header_key describes the header
• image_dimension describes image sizes
• data_history optional
/* ANALYZETM Header File Format
*
* (c) Copyright, 1986-1995
* Biomedical Imaging Resource
* Mayo Foundation
*
* dbh.h
*
* databse sub-definitions
*/
struct header_key /* header key */
{ /* off + size */
int sizeof_hdr /* 0 + 4 */
char data_type[10]; /* 4 + 10 */
char db_name[18]; /* 14 + 18 */
int extents; /* 32 + 4 */
short int session_error; /* 36 + 2 */
char regular; /* 38 + 1 */
char hkey_un0; /* 39 + 1 */
}; /* total=40 bytes */
struct image_dimension
{ /* off + size */
short int dim[8]; /* 0 + 16 */
short int unused8; /* 16 + 2 */
short int unused9; /* 18 + 2 */
short int unused10; /* 20 + 2 */
short int unused11; /* 22 + 2 */
short int unused12; /* 24 + 2 */
short int unused13; /* 26 + 2 */
short int unused14; /* 28 + 2 */
short int datatype; /* 30 + 2 */
short int bitpix; /* 32 + 2 */
short int dim_un0; /* 34 + 2 */
float pixdim[8]; /* 36 + 32 */
/*
pixdim[] specifies the voxel dimensitons:
pixdim[1] - voxel width
pixdim[2] - voxel height
pixdim[3] - interslice distance
...etc
*/
float vox_offset; /* 68 + 4 */
float funused1; /* 72 + 4 */
float funused2; /* 76 + 4 */
float funused3; /* 80 + 4 */
float cal_max; /* 84 + 4 */
float cal_min; /* 88 + 4 */
float compressed; /* 92 + 4 */
float verified; /* 96 + 4 */
int glmax,glmin; /* 100 + 8 */
}; /* total=108 bytes */
struct data_history
{ /* off + size */
char descrip[80]; /* 0 + 80 */
char aux_file[24]; /* 80 + 24 */
char orient; /* 104 + 1 */
char originator[10]; /* 105 + 10 */
char generated[10]; /* 115 + 10 */
char scannum[10]; /* 125 + 10 */
char patient_id[10]; /* 135 + 10 */
char exp_date[10]; /* 145 + 10 */
char exp_time[10]; /* 155 + 10 */
char hist_un0[3]; /* 165 + 3 */
int views /* 168 + 4 */
int vols_added; /* 172 + 4 */
int start_field; /* 176 + 4 */
int field_skip; /* 180 + 4 */
int omax, omin; /* 184 + 8 */
int smax, smin; /* 192 + 8 */
};
struct dsr
{
struct header_key hk; /* 0 + 40 */
struct image_dimension dime; /* 40 + 108 */
struct data_history hist; /* 148 + 200 */
}; /* total= 348 bytes */
/* Acceptable values for datatype */
#define DT_NONE 0
#define DT_UNKNOWN 0
#define DT_BINARY 1
#define DT_UNSIGNED_CHAR 2
#define DT_SIGNED_SHORT 4
#define DT_SIGNED_INT 8
#define DT_FLOAT 16
#define DT_COMPLEX 32
#define DT_DOUBLE 64
#define DT_RGB 128
#define DT_ALL 255
typedef struct
{
float real;
float imag;
} COMPLEX;