Imagine++
AnalyzeHeader.h
1// ===========================================================================
2// Imagine++ Libraries
3// Copyright (C) Imagine
4// For detailed information: http://imagine.enpc.fr/software
5// ===========================================================================
6
7#ifndef DOXYGEN_SHOULD_SKIP_THIS
8
9namespace Imagine {
10
11 namespace Analyze {
12
13 /* ANALYZETM Header File Format
14 *
15 * (c) Copyright, 1986-1995
16 * Biomedical Imaging Resource
17 * Mayo Foundation
18 *
19 * dbh.h
20 *
21 * databse sub-definitions
22 */
23
24 struct header_key /* header key */
25 { /* off + size */
26 int sizeof_hdr; /* 0 + 4 */
27 char data_type[10]; /* 4 + 10 */
28 char db_name[18]; /* 14 + 18 */
29 int extents; /* 32 + 4 */
30 short int session_error; /* 36 + 2 */
31 char regular; /* 38 + 1 */
32 char hkey_un0; /* 39 + 1 */
33 }; /* total=40 bytes */
34
35 struct image_dimension
36 { /* off + size */
37 short int dim[8]; /* 0 + 16 */
38 short int unused8; /* 16 + 2 */
39 short int unused9; /* 18 + 2 */
40 short int unused10; /* 20 + 2 */
41 short int unused11; /* 22 + 2 */
42 short int unused12; /* 24 + 2 */
43 short int unused13; /* 26 + 2 */
44 short int unused14; /* 28 + 2 */
45 short int datatype; /* 30 + 2 */
46 short int bitpix; /* 32 + 2 */
47 short int dim_un0; /* 34 + 2 */
48 float pixdim[8]; /* 36 + 32 */
49 /*
50 pixdim[] specifies the voxel dimensitons:
51 pixdim[1] - voxel width
52 pixdim[2] - voxel height
53 pixdim[3] - interslice distance
54 ...etc
55 */
56 float vox_offset; /* 68 + 4 */
57 float funused1; /* 72 + 4 */
58 float funused2; /* 76 + 4 */
59 float funused3; /* 80 + 4 */
60 float cal_max; /* 84 + 4 */
61 float cal_min; /* 88 + 4 */
62 float compressed; /* 92 + 4 */
63 float verified; /* 96 + 4 */
64 int glmax,glmin; /* 100 + 8 */
65 }; /* total=108 bytes */
66
67 struct data_history
68 { /* off + size */
69 char descrip[80]; /* 0 + 80 */
70 char aux_file[24]; /* 80 + 24 */
71 char orient; /* 104 + 1 */
72 char originator[10]; /* 105 + 10 */
73 char generated[10]; /* 115 + 10 */
74 char scannum[10]; /* 125 + 10 */
75 char patient_id[10]; /* 135 + 10 */
76 char exp_date[10]; /* 145 + 10 */
77 char exp_time[10]; /* 155 + 10 */
78 char hist_un0[3]; /* 165 + 3 */
79 int views; /* 168 + 4 */
80 int vols_added; /* 172 + 4 */
81 int start_field; /* 176 + 4 */
82 int field_skip; /* 180 + 4 */
83 int omax, omin; /* 184 + 8 */
84 int smax, smin; /* 192 + 8 */
85 };
86
87 struct dsr
88 {
89 struct header_key hk; /* 0 + 40 */
90 struct image_dimension dime; /* 40 + 108 */
91 struct data_history hist; /* 148 + 200 */
92 }; /* total= 348 bytes */
93
94 /* Acceptable values for datatype */
95#define DT_NONE 0
96#define DT_UNKNOWN 0
97#define DT_BINARY 1
98#define DT_UNSIGNED_CHAR 2
99#define DT_SIGNED_SHORT 4
100#define DT_SIGNED_INT 8
101#define DT_FLOAT 16
102#define DT_COMPLEX 32
103#define DT_DOUBLE 64
104#define DT_RGB 128
105#define DT_ALL 255
106
107 typedef struct
108 {
109 float real;
110 float imag;
111 } COMPLEX;
112
113 }
114}
115
116#endif
Imagine++ namespace.