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
23 extern "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 
216 MFTYPE32 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);
224 MFTYPE32 MIL_ID MFTYPE MpatAllocResult( MIL_ID SystemId,
225  long NumEntries,
226  MIL_ID MPTYPE *IdPtr);
227 MFTYPE32 void MFTYPE MpatCopy( MIL_ID ModelId,
228  MIL_ID ImageId,
229  long Version);
230 MFTYPE32 void MFTYPE MpatFindModel( MIL_ID ImageId,
231  MIL_ID ModelId,
232  MIL_ID ResultId);
233 MFTYPE32 void MFTYPE MpatFindMultipleModel( MIL_ID ImageId,
234  MIL_ID MPTYPE *ModelId,
235  MIL_ID MPTYPE *ResultId,
236  long NumModels,
237  long Flag);
238 MFTYPE32 void MFTYPE MpatFindOrientation( MIL_ID ImageId,
239  MIL_ID ModelId,
240  MIL_ID ResultId,
241  long ResultRange);
242 MFTYPE32 void MFTYPE MpatFree( MIL_ID PatBufferId);
243 MFTYPE32 long MFTYPE MpatGetNumber( MIL_ID ResultId,
244  long MPTYPE *CountPtr);
245 MFTYPE32 void MFTYPE MpatGetResult( MIL_ID ResultId,
246  long Type,
247  double MPTYPE *ArrayPtr);
248 MFTYPE32 long MFTYPE MpatInquire( MIL_ID ModelId,
249  long Item,
250  void MPTYPE *VarPtr);
251 MFTYPE32 void MFTYPE MpatPreprocModel( MIL_ID ImageId,
252  MIL_ID ModelId,
253  long Mode);
254 MFTYPE32 MIL_ID MFTYPE MpatRead( MIL_ID SystemId,
255  void *FileHandle,
256  MIL_ID MPTYPE *IdPtr);
257 MFTYPE32 MIL_ID MFTYPE MpatReadMemory( MIL_ID SystemId,
258  void *UserArray,
259  MIL_ID MPTYPE *modelid_ptr);
260 MFTYPE32 MIL_ID MFTYPE MpatRestore( MIL_ID SystemId,
261  MIL_TEXT_PTR FileName,
262  MIL_ID MPTYPE *IdPtr);
263 MFTYPE32 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);
269 MFTYPE32 void MFTYPE MpatSave( MIL_TEXT_PTR FileName,
270  MIL_ID ModelId);
271 MFTYPE32 void MFTYPE MpatSetAcceptance( MIL_ID ModelId,
272  double AcceptanceThreshold);
273 MFTYPE32 void MFTYPE MpatSetAccuracy( MIL_ID ModelId,
274  long Accuracy);
275 MFTYPE32 void MFTYPE MpatSetAngle( MIL_ID ModelId,
276  long ControlType,
277  double ControlValue);
278 MFTYPE32 void MFTYPE MpatSetCenter( MIL_ID ModelId,
279  double OffX,
280  double OffY);
281 MFTYPE32 void MFTYPE MpatSetCertainty( MIL_ID ModelId,
282  double CertaintyThreshold);
283 MFTYPE32 void MFTYPE MpatSetDontCare( MIL_ID ModelId,
284  MIL_ID ImageId,
285  long OffX,
286  long OffY,
287  long Value);
288 MFTYPE32 void MFTYPE MpatSetNumber( MIL_ID ModelId,
289  long NumMatches);
290 MFTYPE32 void MFTYPE MpatSetPosition( MIL_ID ModelId,
291  long StartX,
292  long StartY,
293  long SizeX,
294  long SizeY);
295 MFTYPE32 void MFTYPE MpatSetSearchParameter( MIL_ID ModelId,
296  long Parameter,
297  double Value);
298 MFTYPE32 void MFTYPE MpatSetSpeed( MIL_ID ModelId,
299  long Speed);
300 MFTYPE32 void MFTYPE MpatWrite( void *FileHandle,
301  MIL_ID ModelId);
302 MFTYPE32 long MFTYPE MpatWriteMemory( void *UserArray,
303  MIL_ID ModelId);
304 MFTYPE32 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 
314 MFTYPE32 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)