blob: 16c88b1ea95d61f4cfa1684dcd3aed53afbe8b9b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
# Header file for XREGISTER
# Define the cross correlation structure
define LEN_XCSTRUCT (50 + 12 * SZ_FNAME + 12)
define XC_RC1 Memi[$1] # pointers to 1st column of ref regions
define XC_RC2 Memi[$1+1] # pointers to 2nd column of ref regions
define XC_RL1 Memi[$1+2] # pointers to 1st line of ref regions
define XC_RL2 Memi[$1+3] # pointers to 2nd line of ref regions
define XC_RZERO Memi[$1+4] # pointers to zero pts of ref regions
define XC_RXSLOPE Memi[$1+5] # pointers to x slopes of ref regions
define XC_RYSLOPE Memi[$1+6] # pointers to y slopes of ref regions
define XC_XSHIFTS Memi[$1+7] # pointers to x shifts of ref regions
define XC_YSHIFTS Memi[$1+8] # pointers to y shifts of ref regions
define XC_NREGIONS Memi[$1+9] # total number of regions
define XC_CREGION Memi[$1+10] # the current region
define XC_NREFPTS Memi[$1+11] # number of reference points
define XC_XREF Memi[$1+12] # pointer to x reference points
define XC_YREF Memi[$1+13] # pointer to y reference points
define XC_TRANSFORM Memi[$1+14] # pointer to the transform
define XC_IXLAG Memi[$1+15] # initial shift in x
define XC_IYLAG Memi[$1+16] # initial shift in y
define XC_XLAG Memi[$1+17] # current shift in x
define XC_YLAG Memi[$1+18] # current shift in y
define XC_DXLAG Memi[$1+19] # incremental shift in x
define XC_DYLAG Memi[$1+20] # incremental shift in y
define XC_BACKGRD Memi[$1+21] # type of background subtraction
define XC_BORDER Memi[$1+22] # width of background border
define XC_BVALUER Memr[P2R($1+23)] # reference background value
define XC_BVALUE Memr[P2R($1+24)] # image bacground value
define XC_LOREJECT Memr[P2R($1+25)] # low side rejection
define XC_HIREJECT Memr[P2R($1+26)] # high side rejection
define XC_APODIZE Memr[P2R($1+27)] # fraction of apodized region
define XC_FILTER Memi[$1+28] # filter type
define XC_CFUNC Memi[$1+30] # crosscor function
define XC_XWINDOW Memi[$1+31] # width of correlation window in x
define XC_YWINDOW Memi[$1+32] # width of correlation window in y
define XC_XCOR Memi[$1+33] # pointer to cross-correlation function
define XC_PFUNC Memi[$1+34] # correlation peak fitting function
define XC_XCBOX Memi[$1+35] # x width of cor fitting box
define XC_YCBOX Memi[$1+36] # y width of cor fitting box
define XC_TXSHIFT Memr[P2R($1+37)] # total x shift
define XC_TYSHIFT Memr[P2R($1+38)] # total y shift
define XC_BSTRING Memc[P2C($1+50)] # background type
define XC_FSTRING Memc[P2C($1+50+SZ_FNAME+1)] # filter string
define XC_CSTRING Memc[P2C($1+50+2*SZ_FNAME+2)] # cross-correlation type
define XC_PSTRING Memc[P2C($1+50+3*SZ_FNAME+3)] # peak centering
define XC_IMAGE Memc[P2C($1+50+4*SZ_FNAME+4)] # input image
define XC_REFIMAGE Memc[P2C($1+50+5*SZ_FNAME+5)] # reference image
define XC_REGIONS Memc[P2C($1+50+6*SZ_FNAME+6)] # regions list
define XC_DATABASE Memc[P2C($1+50+7*SZ_FNAME+7)] # shifts database
define XC_OUTIMAGE Memc[P2C($1+50+8*SZ_FNAME+8)] # output image
define XC_REFFILE Memc[P2C($1+50+9*SZ_FNAME+9)] # coordinates file
define XC_RECORD Memc[P2C($1+50+10*SZ_FNAME+10)] # record
# Define the id strings
define RC1 1
define RC2 2
define RL1 3
define RL2 4
define RZERO 5
define RXSLOPE 6
define RYSLOPE 7
define XSHIFTS 8
define YSHIFTS 9
define NREGIONS 10
define CREGION 11
define NREFPTS 12
define XREF 13
define YREF 14
define TRANSFORM 15
define IXLAG 16
define IYLAG 17
define XLAG 18
define YLAG 19
define DXLAG 20
define DYLAG 21
define BACKGRD 22
define BVALUER 23
define BVALUE 24
define BORDER 25
define LOREJECT 26
define HIREJECT 27
define APODIZE 28
define FILTER 29
define CFUNC 30
define XWINDOW 31
define YWINDOW 32
define XCOR 33
define PFUNC 34
define XCBOX 35
define YCBOX 36
define TXSHIFT 37
define TYSHIFT 38
define CSTRING 39
define BSTRING 40
define PSTRING 41
define FSTRING 42
define IMAGE 43
define REFIMAGE 44
define REGIONS 45
define OUTIMAGE 46
define REFFILE 47
define DATABASE 48
define RECORD 49
# Define the default parameter values
define DEF_IXLAG 0
define DEF_IYLAG 0
define DEF_DXLAG 0
define DEF_DYLAG 0
define DEF_XWINDOW 5
define DEF_YWINDOW 5
define DEF_BACKGRD XC_BNONE
define DEF_BORDER INDEFI
define DEF_LOREJECT INDEFR
define DEF_HIREJECT INDEFR
define DEF_XCBOX 5
define DEF_YCBOX 5
define DEF_PFUNC XC_CENTROID
# Define the background fitting techniques
define XC_BNONE 1
define XC_MEAN 2
define XC_MEDIAN 3
define XC_SLOPE 4
define XC_BTYPES "|none|mean|median|plane|"
# Define the filtering options
define XC_FNONE 1
define XC_LAPLACE 2
define XC_FTYPES "|none|laplace|"
# Define the cross correlation techniques
define XC_DISCRETE 1
define XC_FOURIER 2
define XC_DIFFERENCE 3
define XC_FILE 4
define XC_CTYPES "|discrete|fourier|difference|file|"
# Define the peak fitting functions
define XC_PNONE 1
define XC_CENTROID 2
define XC_SAWTOOTH 3
define XC_PARABOLA 4
define XC_MARK 5
define XC_PTYPES "|none|centroid|sawtooth|parabola|mark|"
# Miscellaneous
define MAX_NREGIONS 100
define MAX_NREF 3
define MAX_NTRANSFORM 6
# Commands
define XCMDS "|reference|input|regions|shifts|output|records|transform|\
cregion|xlag|ylag|dxlag|dylag|background|border|loreject|hireject|apodize|\
filter|correlation|xwindow|ywindow|function|xcbox|ycbox|show|mark|"
define XSHOW "|data|background|correlation|center|"
define XSHOW_DATA 1
define XSHOW_BACKGROUND 2
define XSHOW_CORRELATION 3
define XSHOW_PEAKCENTER 4
define XCMD_REFIMAGE 1
define XCMD_IMAGE 2
define XCMD_REGIONS 3
define XCMD_DATABASE 4
define XCMD_OUTIMAGE 5
define XCMD_RECORD 6
define XCMD_REFFILE 7
define XCMD_CREGION 8
define XCMD_XLAG 9
define XCMD_YLAG 10
define XCMD_DXLAG 11
define XCMD_DYLAG 12
define XCMD_BACKGROUND 13
define XCMD_BORDER 14
define XCMD_LOREJECT 15
define XCMD_HIREJECT 16
define XCMD_APODIZE 17
define XCMD_FILTER 18
define XCMD_CORRELATION 19
define XCMD_XWINDOW 20
define XCMD_YWINDOW 21
define XCMD_PEAKCENTER 22
define XCMD_XCBOX 23
define XCMD_YCBOX 24
define XCMD_SHOW 25
define XCMD_MARK 26
# Keywords
define KY_REFIMAGE "reference"
define KY_IMAGE "input"
define KY_REGIONS "regions"
define KY_DATABASE "shifts"
define KY_OUTIMAGE "output"
define KY_RECORD "record"
define KY_REFFILE "coords"
define KY_NREGIONS "nregions"
define KY_CREGION "region"
define KY_XLAG "xlag"
define KY_YLAG "ylag"
define KY_DXLAG "dxlag"
define KY_DYLAG "dylag"
define KY_BACKGROUND "background"
define KY_BORDER "border"
define KY_LOREJECT "loreject"
define KY_HIREJECT "hireject"
define KY_APODIZE "apodize"
define KY_FILTER "filter"
define KY_CORRELATION "correlation"
define KY_XWINDOW "xwindow"
define KY_YWINDOW "ywindow"
define KY_PEAKCENTER "function"
define KY_XCBOX "xcbox"
define KY_YCBOX "ycbox"
define KY_TXSHIFT "xshift"
define KY_TYSHIFT "yshift"
|