99 lines
3.9 KiB
C
99 lines
3.9 KiB
C
/*
|
|
*
|
|
* (c) Copyright, 1986-1991
|
|
* Biodynamics Research Unit
|
|
* Mayo Foundation
|
|
*
|
|
* dbh.h
|
|
*
|
|
*
|
|
* database sub-definitions
|
|
*/
|
|
|
|
/*
|
|
*
|
|
* The previous-generation header for Analyze images. Although (c) Mayo
|
|
* Foundation, it has been in the public domain for many years.
|
|
*
|
|
* Analyze images have a 348 byte header stored in a file with a .hdr suffix,
|
|
* and a corresponding .img file containing just the pixel data.
|
|
*
|
|
*/
|
|
|
|
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 */
|
|
|
|
struct image_dimension /* image_dimension */
|
|
{ /* off + size*/
|
|
short int dim[8]; /* 0 + 16 */
|
|
char vox_units[4]; /* 16 + 4 */
|
|
char cal_units[8]; /* 20 + 4 */
|
|
short int unused1; /* 24 + 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 dimensions:
|
|
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 */
|
|
int compressed; /* 92 + 4 */
|
|
int verified; /* 96 + 4 */
|
|
int glmax, glmin; /* 100 + 8 */
|
|
};
|
|
|
|
struct data_history /* 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 */
|
|
}; /* total=200 */
|
|
|
|
struct dsr /* dsr */
|
|
{ /* off + size*/
|
|
struct header_key hk; /* 0 + 40 */
|
|
struct image_dimension dime; /* 40 + 108 */
|
|
struct data_history hist; /* 148 + 200 */
|
|
}; /* total=348 */
|
|
|
|
/* Acceptable values for hdr.dime.datatype */
|
|
#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
|