FEDRA emulsion software from the OPERA Collaboration
milpat.h
Go to the documentation of this file.
1/***************************************************************************/
2/*
3
4 Filename: MILPAT.H
5 Owner : Matrox Imaging dept.
6 Rev : $Revision: 1.1 $
7 Content : This file contains the defines for the MIL pattern
8 recognition module. (Mpat...).
9
10 COPYRIGHT (c) 1993 Matrox Electronic Systems Ltd.
11 All Rights Reserved
12
13*/
14/***************************************************************************/
15
16#ifndef __MILPAT_H__
17#define __MILPAT_H__
18
19#if (!M_MIL_LITE) // MIL FULL ONLY
20
21/* C++ directive if needed */
22#ifdef __cplusplus
23extern "C"
24{
25#endif
26
27/* Bit encoded model types */
28#define M_NORMALIZED 0x00000002L
29#define M_NO_PYRAMIDS 0x00000008L
30#define M_6_BITS_MODEL 0x00000010L
31#define M_ORIENTATION 0x00002400L
32#define M_NOISY 0x00000800L
33#define M_CIRCULAR_OVERSCAN 0x00010000L
34
35
36/* Levels of speed and/or accuracy */
37#define M_VERY_LOW 0L
38#define M_LOW 1L
39#define M_MEDIUM 2L
40#define M_HIGH 3L
41#define M_VERY_HIGH 4L
42#define M_FULL_SEARCH 0x80L
43
44
45/* Bit encoded flags for MpatPreprocModel() */
46#define M_DELETE_LOW 0x10L
47#define M_DELETE_MEDIUM 0x20L
48#define M_DELETE_HIGH 0x40L
49
50#define M_ALL 0x40000000L // Already defined in Mil.h
51#define M_ALL_OLD 0L
52#define M_DISABLE -9999L
53#define M_UNKNOWN -9999L
54#define M_NO_CHANGE -9998L
55#define M_ABSOLUTE 1L
56#define M_OFFSET 2L
57#define M_GAUSSNOISE 4L
58
59/* 'type' parameter of MpatAlloc() */
60#define M_REGULAR 0x00020000L
61#ifdef M_MIL_75_COMPATIBLE //TBR MIL 8.0
62#define M_FAST 0x00040000L
63#else
64#define M_FAST 0x00002000L
65#endif
66#define M_NO_ROTATION 0x00080000L
67#define M_BEST 0x00100000L
68#define M_PAT_DEBUG 0x00200000L
69#define M_MULTIPLE 0x00400000L
70
71/* 'Flag' parameter of MpatCopy() */
72#define M_CLEAR_BACKGROUND 0x2000L
73#define M_INTERNAL_BUF 0x4000L
74
75
76/* Used by MpatDraw() */
77#define M_DRAW_IMAGE 2L // Already define in MilMod.h
78#define M_DRAW_DONT_CARES 8L // Already define in MilMod.h
79#define M_DRAW_BOX 32L // Already define in MilMod.h
80#define M_DRAW_POSITION 64L // Already define in MilMod.h
81#define M_ORIGINAL 409L // Already define in MilMod.h
82
83
84/* Used by MpatGetResult() */
85#define M_FOUND_FLAG 1L
86#define M_SCORE 0x00001400L
87#define M_POSITION_X 0x00003400L
88#define M_POSITION_Y 0x00004400L
89#define M_MOD_INDEX 0x00005400L
90#define M_SCALE 0x00008010L // Already define in MilMod.h
91#define M_NOISE_CORRECTED_SCORE 0x00008400L
92#define M_FIRST_LEVEL_USED 0x00009400L
93#define M_LAST_LEVEL_USED 0x00009500L
94
95
96
97/* Used by MpatInquire() */
98#define M_ALLOC_TYPE 322L
99#define M_ALLOC_SIZE_X 2L
100#define M_ALLOC_SIZE_Y 3L
101#define M_CENTER_X 4L
102#define M_CENTER_Y 5L
103#define M_ORIGINAL_X 6L
104#define M_ORIGINAL_Y 7L
105#define M_SPEED_FACTOR 8L
106#define M_SPEED M_SPEED_FACTOR
107#define M_POSITION_START_X 9L
108#define M_POSITION_START_Y 10L
109#define M_POSITION_UNCERTAINTY_X 11L
110#define M_POSITION_UNCERTAINTY_Y 12L
111#define M_POSITION_ACCURACY 13L
112#define M_PREPROCESSED 14L
113#define M_ALLOC_OFFSET_X 15L
114#define M_ALLOC_OFFSET_Y 16L
115#define M_ACCEPTANCE_THRESHOLD 17L
116#define M_NUMBER_OF_OCCURENCES 18L
117#define M_NUMBER_OF_OCCURRENCES M_NUMBER_OF_OCCURENCES
118#define M_NUMBER_OF_ENTRIES 24L
119#define M_CERTAINTY_THRESHOLD 25L
120#define M_ALLOC_SIZE_BIT 26L
121#define M_INTERNAL_SIZE_X 27L
122#define M_INTERNAL_SIZE_Y 28L
123
124
125/* Search parameters */
126#define M_FIRST_LEVEL 31L
127#define M_LAST_LEVEL 32L
128#define M_MODEL_STEP 33L
129#define M_FAST_FIND 34L
130#define M_MIN_SPACING_X 35L
131#define M_MIN_SPACING_Y 36L
132#define M_SCORE_TYPE 37L
133#define M_TARGET_CACHING 39L
134#define M_REJECTION_THRESHOLD 41L
135#define M_HIGHEST_REJECTED_SCORE 42L
136#define M_HIGHEST_REJECTED_LEVEL 43L
137#define M_HIGHEST_REJECTED_POS_X 44L
138#define M_HIGHEST_REJECTED_POS_Y 45L
139#define M_EXTRA_PEAKS 46L
140#define M_EXTRA_CANDIDATES M_EXTRA_PEAKS
141#define M_MODEL_NOISE_VAR 47L
142#define M_TARGET_NOISE_VAR 48L
143#define M_PROC_FIRST_LEVEL 50L
144#define M_PROC_LAST_LEVEL 51L
145#define M_DEF_PROC_FIRST_LEVEL M_PROC_FIRST_LEVEL
146#define M_DEF_PROC_LAST_LEVEL M_PROC_LAST_LEVEL
147#define M_AUTO_RESET 0x00002000L // Already defined in mil.h
148
149/* Search parameter values */
150#define M_ENABLE -9997L // Already defined in mil.h
151#define M_DISABLE -9999L // Already defined in mil.h
152
153
154/* MpatFindMultiple */
155#define M_FIND_ALL_MODELS M_DEFAULT
156#define M_FIND_BEST_MODELS 1L
157#define M_FIND_ALL_MODEL 2L
158
159
160/* Parameters for find orientation */
161#define M_RESULT_RANGE_180 0x00000001L
162#define M_RESULT_RANGE_90 0x00000002L
163#define M_RESULT_RANGE_360 0x00000004L
164#define M_RESULT_RANGE_45 0x00000008L
165#define M_ORIENTATION_ACCEPTANCE 200.0
166
167
168/* Search parameters for search with rotation */
169#define M_SEARCH_ANGLE_MODE 0x00000080L
170#define M_SEARCH_ANGLE 0x00000100L
171#define M_SEARCH_ANGLE_DELTA_NEG 0x00000200L
172#define M_SEARCH_ANGLE_DELTA_POS 0x00000400L
173#define M_SEARCH_ANGLE_TOLERANCE 0x00000800L
174#define M_SEARCH_ANGLE_ACCURACY 0x00001000L
175#define M_SEARCH_ANGLE_FINE_REGION 0x00002000L
176#define M_SEARCH_ANGLE_DEBUG 0x00004000L
177#define M_SEARCH_ANGLE_INTERPOLATION_MODE 0x00008000L
178#define M_SEARCH_ANGLE_DIRTY 0x00010000L
179#define M_SEARCH_ANGLE_MAGIC_V1 0x0100CAFEL
180#define M_SEARCH_ANGLE_V1_FREE 0x128L
181
182#define M_CIRCULAR_OVERSCAN_V1 0x1BADCAFEL
183#define M_CIRCULAR_OVERSCAN_V1_FREE 0x400L
184
185
186#define M_DEF_SEARCH_ANGLE_MODE M_DISABLE
187#define M_DEF_SEARCH_ANGLE 0.0
188#define M_DEF_SEARCH_ANGLE_DELTA_NEG 0.0
189#define M_DEF_SEARCH_ANGLE_DELTA_POS 0.0
190#define M_DEF_SEARCH_ANGLE_TOLERANCE 5.0
191#define M_DEF_SEARCH_ANGLE_ACCURACY M_DISABLE
192#define M_DEF_SEARCH_ANGLE_FINE_REGION 14L
193#define M_DEF_SEARCH_ANGLE_DEBUG M_DISABLE
194#define M_DEF_SEARCH_ANGLE_INTERPOLATION_MODE M_NEAREST_NEIGHBOR
195
196/* Spelling variations and synonyms*/
197#define M_CENTRE_X M_CENTER_X
198#define M_CENTRE_Y M_CENTER_Y
199#define M_COARSE_SEARCH_ACCEPTANCE M_REJECTION_THRESHOLD
200#define M_MODEL_INDEX M_MOD_INDEX
201#define M_KEEP_PYRAMID M_TARGET_CACHING
202
203
204/* MpatRestore, MpatSave*/
205#define M_INTERACTIVE M_NULL // Already defined in mil.h, milcal.h, milcode.h, miledge.h, milmeas.h, milocr.h, milmod.h
206
207
208
209/********************************************************************
210 * Function prototypes
211 ********************************************************************/
212
213#ifndef __midl // MIDL compiler used by ActiveMIL
214
215
216MFTYPE32 MIL_ID MFTYPE MpatAllocModel( MIL_ID SystemId,
217 MIL_ID SrcImageId,
218 long OffX,
219 long OffY,
220 long SizeX,
221 long SizeY,
222 long ModelType,
223 MIL_ID MPTYPE *IdPtr);
224MFTYPE32 MIL_ID MFTYPE MpatAllocResult( MIL_ID SystemId,
225 long NumEntries,
226 MIL_ID MPTYPE *IdPtr);
227MFTYPE32 void MFTYPE MpatCopy( MIL_ID ModelId,
228 MIL_ID ImageId,
229 long Version);
230MFTYPE32 void MFTYPE MpatFindModel( MIL_ID ImageId,
231 MIL_ID ModelId,
232 MIL_ID ResultId);
233MFTYPE32 void MFTYPE MpatFindMultipleModel( MIL_ID ImageId,
234 MIL_ID MPTYPE *ModelId,
235 MIL_ID MPTYPE *ResultId,
236 long NumModels,
237 long Flag);
238MFTYPE32 void MFTYPE MpatFindOrientation( MIL_ID ImageId,
239 MIL_ID ModelId,
240 MIL_ID ResultId,
241 long ResultRange);
242MFTYPE32 void MFTYPE MpatFree( MIL_ID PatBufferId);
243MFTYPE32 long MFTYPE MpatGetNumber( MIL_ID ResultId,
244 long MPTYPE *CountPtr);
245MFTYPE32 void MFTYPE MpatGetResult( MIL_ID ResultId,
246 long Type,
247 double MPTYPE *ArrayPtr);
248MFTYPE32 long MFTYPE MpatInquire( MIL_ID ModelId,
249 long Item,
250 void MPTYPE *VarPtr);
251MFTYPE32 void MFTYPE MpatPreprocModel( MIL_ID ImageId,
252 MIL_ID ModelId,
253 long Mode);
254MFTYPE32 MIL_ID MFTYPE MpatRead( MIL_ID SystemId,
255 void *FileHandle,
256 MIL_ID MPTYPE *IdPtr);
257MFTYPE32 MIL_ID MFTYPE MpatReadMemory( MIL_ID SystemId,
258 void *UserArray,
259 MIL_ID MPTYPE *modelid_ptr);
260MFTYPE32 MIL_ID MFTYPE MpatRestore( MIL_ID SystemId,
261 MIL_TEXT_PTR FileName,
262 MIL_ID MPTYPE *IdPtr);
263MFTYPE32 MIL_ID MFTYPE MpatAllocRotatedModel( MIL_ID SystemId,
264 MIL_ID SrcModelorImageId,
265 double Angle,
266 long InterpolMode,
267 long ModelType,
268 MIL_ID MPTYPE *IdPtr);
269MFTYPE32 void MFTYPE MpatSave( MIL_TEXT_PTR FileName,
270 MIL_ID ModelId);
271MFTYPE32 void MFTYPE MpatSetAcceptance( MIL_ID ModelId,
272 double AcceptanceThreshold);
273MFTYPE32 void MFTYPE MpatSetAccuracy( MIL_ID ModelId,
274 long Accuracy);
275MFTYPE32 void MFTYPE MpatSetAngle( MIL_ID ModelId,
276 long ControlType,
277 double ControlValue);
278MFTYPE32 void MFTYPE MpatSetCenter( MIL_ID ModelId,
279 double OffX,
280 double OffY);
281MFTYPE32 void MFTYPE MpatSetCertainty( MIL_ID ModelId,
282 double CertaintyThreshold);
283MFTYPE32 void MFTYPE MpatSetDontCare( MIL_ID ModelId,
284 MIL_ID ImageId,
285 long OffX,
286 long OffY,
287 long Value);
288MFTYPE32 void MFTYPE MpatSetNumber( MIL_ID ModelId,
289 long NumMatches);
290MFTYPE32 void MFTYPE MpatSetPosition( MIL_ID ModelId,
291 long StartX,
292 long StartY,
293 long SizeX,
294 long SizeY);
295MFTYPE32 void MFTYPE MpatSetSearchParameter( MIL_ID ModelId,
296 long Parameter,
297 double Value);
298MFTYPE32 void MFTYPE MpatSetSpeed( MIL_ID ModelId,
299 long Speed);
300MFTYPE32 void MFTYPE MpatWrite( void *FileHandle,
301 MIL_ID ModelId);
302MFTYPE32 long MFTYPE MpatWriteMemory( void *UserArray,
303 MIL_ID ModelId);
304MFTYPE32 MIL_ID MFTYPE MpatAllocAutoModel( MIL_ID SystemId,
305 MIL_ID BufId,
306 long ModelSizeX,
307 long ModelSizeY,
308 long PosUncertaintyX,
309 long PosUncertaintyY,
310 long ModelType,
311 long Mode,
312 MIL_ID *ModelId);
313
314MFTYPE32 void MFTYPE MpatDraw( MIL_ID GraphContId,
315 MIL_ID ModelOrResultId,
316 MIL_ID DestImageId,
317 long Operation,
318 long Index,
319 long ControlFlag);
320
321#endif /* #ifdef __midl */
322
323
324/* C++ directive if needed */
325#ifdef __cplusplus
326}
327#endif
328
329#endif // !M_MIL_LITE
330
331#endif /* __MILPAT_H__ */
332
long MIL_ID
Definition: AcqOdyssey.h:45
char * MIL_TEXT_PTR
Definition: Milos.h:90
float Speed
Definition: hwinit.C:69
MFTYPE32 MIL_ID MFTYPE MpatRestore(MIL_ID SystemId, MIL_TEXT_PTR FileName, MIL_ID MPTYPE *IdPtr)
MFTYPE32 MIL_ID MFTYPE MpatAllocResult(MIL_ID SystemId, long NumEntries, MIL_ID MPTYPE *IdPtr)
MFTYPE32 MIL_ID MFTYPE MpatRead(MIL_ID SystemId, void *FileHandle, MIL_ID MPTYPE *IdPtr)
MFTYPE32 void MFTYPE MpatSetSearchParameter(MIL_ID ModelId, long Parameter, double Value)
MFTYPE32 void MFTYPE MpatSetCenter(MIL_ID ModelId, double OffX, double OffY)
MFTYPE32 void MFTYPE MpatSetCertainty(MIL_ID ModelId, double CertaintyThreshold)
MFTYPE32 void MFTYPE MpatSetDontCare(MIL_ID ModelId, MIL_ID ImageId, long OffX, long OffY, long Value)
MFTYPE32 void MFTYPE MpatSetNumber(MIL_ID ModelId, long NumMatches)
MFTYPE32 void MFTYPE MpatCopy(MIL_ID ModelId, MIL_ID ImageId, long Version)
MFTYPE32 void MFTYPE MpatSetAngle(MIL_ID ModelId, long ControlType, double ControlValue)
MFTYPE32 void MFTYPE MpatSetAccuracy(MIL_ID ModelId, long Accuracy)
MFTYPE32 MIL_ID MFTYPE MpatAllocRotatedModel(MIL_ID SystemId, MIL_ID SrcModelorImageId, double Angle, long InterpolMode, long ModelType, MIL_ID MPTYPE *IdPtr)
MFTYPE32 void MFTYPE MpatWrite(void *FileHandle, MIL_ID ModelId)
MFTYPE32 void MFTYPE MpatFree(MIL_ID PatBufferId)
MFTYPE32 void MFTYPE MpatSetPosition(MIL_ID ModelId, long StartX, long StartY, long SizeX, long SizeY)
MFTYPE32 void MFTYPE MpatSetSpeed(MIL_ID ModelId, long Speed)
MFTYPE32 void MFTYPE MpatPreprocModel(MIL_ID ImageId, MIL_ID ModelId, long Mode)
MFTYPE32 long MFTYPE MpatInquire(MIL_ID ModelId, long Item, void MPTYPE *VarPtr)
MFTYPE32 void MFTYPE MpatFindMultipleModel(MIL_ID ImageId, MIL_ID MPTYPE *ModelId, MIL_ID MPTYPE *ResultId, long NumModels, long Flag)
MFTYPE32 long MFTYPE MpatGetNumber(MIL_ID ResultId, long MPTYPE *CountPtr)
MFTYPE32 MIL_ID MFTYPE MpatAllocModel(MIL_ID SystemId, MIL_ID SrcImageId, long OffX, long OffY, long SizeX, long SizeY, long ModelType, MIL_ID MPTYPE *IdPtr)
MFTYPE32 void MFTYPE MpatFindOrientation(MIL_ID ImageId, MIL_ID ModelId, MIL_ID ResultId, long ResultRange)
MFTYPE32 void MFTYPE MpatDraw(MIL_ID GraphContId, MIL_ID ModelOrResultId, MIL_ID DestImageId, long Operation, long Index, long ControlFlag)
MFTYPE32 MIL_ID MFTYPE MpatAllocAutoModel(MIL_ID SystemId, MIL_ID BufId, long ModelSizeX, long ModelSizeY, long PosUncertaintyX, long PosUncertaintyY, long ModelType, long Mode, MIL_ID *ModelId)
MFTYPE32 void MFTYPE MpatSetAcceptance(MIL_ID ModelId, double AcceptanceThreshold)
MFTYPE32 void MFTYPE MpatSave(MIL_TEXT_PTR FileName, MIL_ID ModelId)
MFTYPE32 MIL_ID MFTYPE MpatReadMemory(MIL_ID SystemId, void *UserArray, MIL_ID MPTYPE *modelid_ptr)
MFTYPE32 long MFTYPE MpatWriteMemory(void *UserArray, MIL_ID ModelId)
MFTYPE32 void MFTYPE MpatFindModel(MIL_ID ImageId, MIL_ID ModelId, MIL_ID ResultId)
MFTYPE32 void MFTYPE MpatGetResult(MIL_ID ResultId, long Type, double MPTYPE *ArrayPtr)