FEDRA emulsion software from the OPERA Collaboration
MilEdge.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /*
3 
4  Filename: MilEdge.h
5  Owner : Matrox Imaging dept.
6  Rev : $Revision: 1.1 $
7  Content : This file contains the defines and the prototypes for the
8  MIL edge and line crest extractor. (Medge...).
9 
10  COPYRIGHT (c) 2002 Matrox Electronic Systems Ltd.
11  All Rights Reserved
12 
13 */
14 /***************************************************************************/
15 
16 #ifndef __MILEDGEEXTR_H__
17 #define __MILEDGEEXTR_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 
28 /***************************************************************************/
29 /* MilEdge CAPI defines */
30 /***************************************************************************/
31 
32 
33 /***************************************************************************/
34 /* MedgeAlloc() */
35 /***************************************************************************/
36 #define M_CONTOUR 0x800L // Already defined in milblob.h
37 #define M_CREST 0x801L
38 
39 /***************************************************************************/
40 /* MedgeControl() */
41 /***************************************************************************/
42 
43 /* Global to context behaviour */
44 #define M_CHAIN_ALL_NEIGHBORS 3L
45 #define M_MAGNITUDE_TYPE 10L
46 #define M_NORM 4000L
47 #define M_SQR_NORM 4001L
48 #define M_FILTER 1046L // Already defined in mil.h
49 #define M_FILTER_WIDTH 109L // Already defined in milmod.h
50 #define M_KERNEL_SIZE 301L // Already defined in milmod.h
51 #define M_MAX_POWER_LOSS 0x1200L // Already defined in milmod.h
52 #define M_FILTER_MODE 122L // Already defined in milmod.h
53 #define M_FILTER_MAX_DEPTH 302L
54 #ifdef M_MIL_75_COMPATIBLE
55 #define M_KERNEL 0x00000200L // Already defined in milmod.h, mil.h
56 #else
57 #define M_KERNEL 0x00400000L // Already defined in milmod.h, mil.h
58 #endif //M_MIL_75_COMPATIBLE
59 #define M_RECURSIVE 0x00040000 // Already defined in mildev.h
60 #define M_SHEN 0x802L
61 #define M_EXPONENTIAL 2 // Already defined in mil.h
62 #define M_GAUSSIAN 0x805L
63 #define M_SOBEL M_EDGE_DETECT // Already defined in mil.h
64 #define M_PREWITT M_EDGE_DETECT2 // Already defined in mil.hL
65 #define M_FREI_CHEN M_ID_OFFSET_OF_DEFAULT_KERNEL + 9L
66 #define M_DERICHE M_ID_OFFSET_OF_DEFAULT_KERNEL + 10L
67 #define M_FILTER_SMOOTHNESS 1047L
68 #define M_ACCURACY 106L // Already defined in milmod.h
69 #define M_THRESHOLD_TYPE 3000L
70 #define M_THRESHOLD_MODE 33L
71 #define M_THRESHOLD_VALUE_LOW 3001L
72 #define M_THRESHOLD_VALUE_HIGH 3002L
73 #define M_THRESHOLD_LOW M_THRESHOLD_VALUE_LOW
74 #define M_THRESHOLD_HIGH M_THRESHOLD_VALUE_HIGH
75 #define M_DETAIL_LEVEL 111L // Already defined in milmod.h
76 #define M_NO_HYSTERESIS 20L
77 #define M_FULL_HYSTERESIS 25L
78 #define M_HYSTERESIS 31L
79 #define M_SAVE_DERIVATIVES 11L
80 #define M_SAVE_ANGLE 12L
81 #define M_SAVE_MAGNITUDE 13L
82 #define M_SAVE_MASK 39L
83 #define M_SAVE_CHAIN_MAGNITUDE 59L
84 #define M_SAVE_CHAIN_ANGLE 60L
85 #define M_SAVE_IMAGE 61L
86 #define M_MASK_SIZE_X 0x0000001DL
87 #define M_MASK_SIZE_Y 0x0000001EL
88 #define M_FILL_GAP_DISTANCE 44L
89 #define M_FILL_GAP_ANGLE 45L
90 #define M_FILL_GAP_POLARITY 46L
91 #define M_FILL_GAP_CONTINUITY 38L
92 #define M_EXTRACTION_ANGLE 47L
93 #define M_EXTRACTION_TOLERANCE 48L
94 #define M_EXTRACTION_USE_POLARITY 49L
95 
96 // Typical control values
97 #define M_LOW 1L // Already defined in milcode.h, milmod.h, milocr, milpat.h, mil.h
98 #define M_MEDIUM 2L // Already defined in milcode.h, milmod.h, milocr, milpat.h
99 #define M_HIGH 3L // Already defined in milcode.h, milmod.h, milocr, milpat.h, mil.h
100 #define M_VERY_HIGH 4L // Already defined in milcode.h, milmod.h, milocr, milpat.h
101 
102 // Utilities
103 #define M_FLOAT_MODE 70L
104 #define M_ALLIGNEMENT_MODE 51L
105 #define M_TIMEOUT 2077L // Already defined in milmod.h, mil.h
106 
107 /* Global to context features */
108 #define M_BOX_X_MIN 6L // Already defined in milblob.h
109 #define M_BOX_Y_MIN 7L // Already defined in milblob.h
110 #define M_BOX_X_MAX 8L // Already defined in milblob.h
111 #define M_BOX_Y_MAX 9L // Already defined in milblob.h
112 #define M_X_MIN_AT_Y_MIN 21L // Already defined in milblob.h
113 #define M_X_MAX_AT_Y_MAX 22L // Already defined in milblob.h
114 #define M_Y_MIN_AT_X_MAX 23L // Already defined in milblob.h
115 #define M_Y_MAX_AT_X_MIN 24L // Already defined in milblob.h
116 #define M_CHAIN_APPROXIMATION 0x00010200L
117 #define M_CHAINS 0x105L // Already defined in milblob.h
118 #define M_APPROXIMATION_TOLERANCE 26L
119 #define M_LINE 0x00000080L // Already defined in milmod.h
120 #define M_ARC 0x00000081L
121 #define M_CENTER_OF_GRAVITY_X 34L // Already defined in milblob.h
122 #define M_CENTER_OF_GRAVITY_Y 35L // Already defined in milblob.h
123 #define M_POSITION 0x00000402L // Already defined in milmeas.h
124 #define M_POSITION_X 0x00003400L // Already defined in milmeas.h, milcode.h, milmod.h, milpat.h, mil.h
125 #define M_POSITION_Y 0x00004400L // Already defined in milblob.h, milcode.h, milmod.h, milpat.h, mil.h
126 #define M_MOMENT_ELONGATION 50L
127 #define M_SIZE 0xC00L // Already defined in milmod.h
128 #define M_FAST_LENGTH 52L
129 #define M_TORTUOSITY 76L
130 #define M_CLOSURE 77L
131 #define M_STRENGTH 55L
132 #define M_AVERAGE_STRENGTH 57L
133 #define M_BOX 0x101L // Already defined in milblob.h
134 #define M_CONTACT_POINTS 0x102L // Already defined in milblob.h
135 #define M_CENTER_OF_GRAVITY 0x103L // Already defined in milblob.h
136 #define M_LENGTH 0x00002000L // Already defined in milblob.h, milcal.h, milmeas.h, milmod.h, mil.h
137 #define M_FERET_X 72L // Already defined in milblob.h
138 #define M_FERET_Y 5L // Already defined in milblob.h
139 #define M_FERET 69L
140 #define M_FERET_BOX M_FERET
141 #define M_FERET_MIN_ANGLE 15L // Already defined in milblob.h
142 #define M_FERET_MAX_ANGLE 17L // Already defined in milblob.h
143 #define M_FERET_MIN_DIAMETER 14L // Already defined in milblob.h
144 #define M_FERET_MAX_DIAMETER 16L // Already defined in milblob.h
145 #define M_FERET_MEAN_DIAMETER 18L // Already defined in milblob.h
146 #define M_FERET_ELONGATION 27L // Already defined in milblob.h
147 #define M_NUMBER_OF_FERETS 63L // Already defined in milblob.h
148 #define M_CONVEX_PERIMETER 20L // Already defined in milblob.h
149 #define M_GENERAL_FERET 0x400L // Already defined in milblob.h
150 
151 #define M_GENERAL_FERET_ANGLE 62L
152 #define M_ALL_FEATURES 0x100L // Already defined in milblob.h
153 #define M_FIRST_FERET_INDEX 640L
154 #define M_SECOND_FERET_INDEX 257L
155 #define M_FERET_INDEX (M_FIRST_FERET_INDEX|M_SECOND_FERET_INDEX)
156 #define M_NEAREST_EDGEL_X 37L
157 #define M_NEAREST_EDGEL_Y 264L
158 #define M_NEAREST_EDGEL (M_NEAREST_EDGEL_X|M_NEAREST_EDGEL_Y)
159 
160 /* Specific to M_CREST context behaviour */
161 #define M_FOREGROUND_VALUE 4L // Already defined in milblob.h, milmod.h, milcal.h, milcode.h, milocr.h
162 #define M_FOREGROUND_BLACK 0x100L // Already defined in milblob.h, milmod.h, milcode.h, milocr.h
163 #define M_FOREGROUND_WHITE 0x80L // Already defined in milblob.h, milmod.h, milcode.h, milocr.h
164 #define M_ANY 0x11000000L // Already defined in milmod.h, milcode.h, milocr.h, milmeas.h, mil.h
165 #define M_SAVE_CHAIN_WIDTH 28L
166 #define M_TOPOLOGY 28L
167 #define M_AVERAGE_WIDTH 104L
168 
169 /* Sorting keys */
170 #define M_SORT1_UP 0x02000000L // Already defined in milblob.h
171 #define M_SORT1_DOWN 0x0A000000L // Already defined in milblob.h
172 #define M_SORT2_UP 0x04000000L // Already defined in milblob.h
173 #define M_SORT2_DOWN 0x0C000000L // Already defined in milblob.h
174 #define M_SORT3_UP 0x06000000L // Already defined in milblob.h
175 #define M_SORT3_DOWN 0x0E000000L // Already defined in milblob.h
176 #define M_NO_SORT 0L // Already defined in milblob.h
177 
178 /* Statistic flags */
179 #define M_MIN 0x02000000L // Already defined in milmeas.h, mil.h
180 #define M_MAX 0x04000000L // Already defined in milmeas.h, mil.h
181 #define M_MEAN 0x08000000L // Already defined in milmeas.h, mil.h, milocr.h
182 #define M_MIN_ABS 0x00200000L // Already defined in mil.h
183 #define M_MAX_ABS 0x00800000L // Already defined in mil.h
184 #define M_STANDARD_DEVIATION 0x10000000L // Already defined in milmeas.h, mil.h
185 
186 /* Global to result behaviour */
187 #define M_DRAW_RELATIVE_ORIGIN_X 319L // Already defined in milmod.h
188 #define M_DRAW_RELATIVE_ORIGIN_Y 320L // Already defined in milmod.h
189 #define M_DRAW_SCALE_X 3203L // Already defined in milmod.h
190 #define M_DRAW_SCALE_Y 3204L // Already defined in milmod.h
191 #define M_DRAW_CROSS_SIZE 115L
192 #define M_MODEL_FINDER_COMPATIBLE 19L
193 
194 /***************************************************************************/
195 /* MedgeInquire() */
196 /***************************************************************************/
197 
198 /* To Context */
199 #define M_CONTEXT_TYPE 2L
200 #define M_FILTER_POWER 1048L
201 #define M_OVERSCAN 53L // Already defined in mil.h, milmod.h
202 #define M_OVERSCAN_REPLACE_VALUE 54L // Already defined in mil.h, milmod.h
203 #define M_MIRROR 0x01000061L // Already defined in mil.h
204 #define M_REPLACE 0x01000060L // Already defined in mil.h, milocr.h
205 
206 /***************************************************************************/
207 /* MedgeSelect() */
208 /***************************************************************************/
209 #define M_INCLUDE 1L // Already defined in milblob.h
210 #define M_INCLUDE_ONLY 0x101L // Already defined in milblob.h
211 #define M_EXCLUDE 2L // Already defined in milblob.h
212 #define M_EXCLUDE_ONLY 0x102L // Already defined in milblob.h
213 #define M_DELETE 3L // Already defined in milblob.h, milmod.h
214 #define M_GROUP 4L
215 #define M_UNGROUP 5L
216 #define M_ALL_EDGES 0x00200000L
217 #define M_INCLUDED_EDGES 0x00400000L
218 #define M_EXCLUDED_EDGES 0x00800000L
219 
220 #define M_IN_RANGE 1L // Already defined in milblob.h, mil.h
221 #define M_OUT_RANGE 2L // Already defined in milblob.h, mil.h
222 #define M_EQUAL 3L // Already defined in milblob.h, mil.h
223 #define M_NOT_EQUAL 4L // Already defined in milblob.h, mil.h
224 #define M_GREATER 5L // Already defined in milblob.h, mil.h
225 #define M_LESS 6L // Already defined in milblob.h, mil.h
226 #define M_GREATER_OR_EQUAL 7L // Already defined in milblob.h, mil.h
227 #define M_LESS_OR_EQUAL 8L // Already defined in milblob.h, mil.h
228 
229 #define M_INSIDE_BOX 300L
230 #define M_INSIDE_CHAIN 301L
231 #define M_OUTSIDE_BOX 302L
232 #define M_OUTSIDE_CHAIN 303L
233 #define M_EQUAL_CHAIN 0x40
234 #define M_INSIDE_OR_EQUAL_BOX (M_INSIDE_BOX|M_EQUAL_CHAIN)
235 #define M_INSIDE_OR_EQUAL_CHAIN (M_INSIDE_CHAIN|M_EQUAL_CHAIN)
236 #define M_OUTSIDE_OR_EQUAL_BOX (M_OUTSIDE_BOX|M_EQUAL_CHAIN)
237 #define M_OUTSIDE_OR_EQUAL_CHAIN (M_OUTSIDE_CHAIN|M_EQUAL_CHAIN)
238 #define M_CROP_CHAIN 304L
239 #define M_NEAREST_NEIGHBOR 0x00000040L // Already defined in milmeas.h, mil.h
240 #define M_ALL_NEAREST_NEIGHBORS 0x00000080L
241 
242 /***************************************************************************/
243 /* MedgeGetResult() */
244 /***************************************************************************/
245 #define M_LABEL_VALUE 1L // Already defined in milblob.h
246 #define M_THRESHOLD_VALUES 3003L
247 #define M_THRESHOLDS M_THRESHOLD_VALUES
248 #define M_NUMBER_OF_CHAINS 0x769L
249 #define M_CHAIN_MAGNITUDE 36L
250 #define M_CHAIN_ANGLE 258L
251 #define M_IMAGE_ID M_BUF_ID // Already defined in milmod.h (0x04000000L)
252 #define M_MASK_ID (M_BUF_ID | 0x80000L)
253 #define M_ANGLE_ID 0x20000000L
254 #define M_MAGNITUDE_ID 0x20000L
255 #define M_FIRST_DERIVATIVE_X_ID 0x10000L
256 #define M_FIRST_DERIVATIVE_Y_ID 0x8000L
257 #define M_SECOND_DERIVATIVE_X_ID 0x4000L
258 #define M_SECOND_DERIVATIVE_Y_ID 0x1000L
259 #define M_CROSS_DERIVATIVE_ID 0x800L
260 #define M_FIRST_DERIVATIVES_ID (M_FIRST_DERIVATIVE_X_ID | M_FIRST_DERIVATIVE_Y_ID)
261 #define M_SECOND_DERIVATIVES_ID (M_SECOND_DERIVATIVE_X_ID | M_SECOND_DERIVATIVE_Y_ID)
262 #define M_NUMBER_OF_CHAINED_PIXELS 56L // Already defined in milblob.h, milmod.h
263 #define M_NUMBER_OF_CHAINED_EDGELS M_NUMBER_OF_CHAINED_PIXELS
264 #define M_CHAIN_CODE 58L // Already defined in milblob.h
265 #define M_FIRST_POINT_X 75L // Already defined in milblob.h
266 #define M_FIRST_POINT_Y 132L
267 #define M_FIRST_POINT (M_FIRST_POINT_X|M_FIRST_POINT_Y)
268 #define M_CHAIN_INDEX 67L // Already defined in milblob.h, milmod.h
269 #define M_CHAIN_X 65L // Already defined in milblob.h, milmod.h
270 #define M_CHAIN_Y 144L // Already defined in milblob.h, milmod.h
271 #define M_CHAIN (M_CHAIN_X|M_CHAIN_Y)
272 #define M_VERTICES_CHAIN_INDEX 71L
273 #define M_VERTICES_INDEX 79L
274 #define M_VERTEX_X 68L
275 #define M_VERTEX_Y 40L
276 #define M_VERTEX (M_VERTEX_X|M_VERTEX_Y)
277 #define M_VERTICES_X M_VERTEX_X
278 #define M_VERTICES_Y M_VERTEX_Y
279 #define M_VERTICES M_VERTEX
280 #define M_NUMBER_OF_VERTICES 73L
281 #define M_NUMBER_OF_VERTEXES M_NUMBER_OF_VERTICES
282 #define M_NUMBER_OF_VERTEX M_NUMBER_OF_VERTICES
283 #define M_BULGE 145L
284 #define M_BULGES M_BULGE
285 
286 
287 /***************************************************************************/
288 /* MedgeGetNeighbors() */
289 /***************************************************************************/
290 #define M_NEAREST_NEIGHBOR_RADIUS 116L
291 #define M_NEIGHBOR_MINIMUM_SPACING 117L
292 #define M_NEIGHBOR_MAXIMUM_NUMBER 118L
293 #define M_NEIGHBOR_SEARCH_RADIUS_MAX 120L
294 #define M_NEIGHBOR_SEARCH_RADIUS_MIN 121L
295 #define M_NEIGHBOR_POLARITY 122L
296 #define M_NEIGHBOR_POLARITY_TOLERANCE 123L
297 #define M_NEIGHBOR_DIRECTION 124L
298 #define M_NEIGHBOR_DIRECTION_TOLERANCE 125L
299 #define M_NEIGHBOR_DIRECTION_SIGN 126L
300 #define M_GET_EDGELS 1L
301 #define M_GET_SUBEDGELS 2L
302 
303 
304 /***************************************************************************/
305 /* MedgeDraw() */
306 /***************************************************************************/
307 #define M_DRAW_LABEL 1L
308 #define M_DRAW_IMAGE 2L // Already defines in milmod.h, milpat.h
309 #define M_DRAW_EDGES 4L // Already defines in milmod.h, milmeas.h
310 #define M_DRAW_EDGE M_DRAW_EDGES
311 #define M_DRAW_FERET_MAX 0x008L // Already defined in milblob.h
312 #define M_DRAW_FERET_BOX 16L // Already defined in milblob.h
313 #define M_DRAW_BOX 32L // Already defined in milblob.h, milmod.h, milmeas.h, milpat.h
314 #define M_DRAW_POSITION 64L // Already defined in milblob.h, milmod.h, milmeas.h, milpat.h
315 #define M_DRAW_CENTER_OF_GRAVITY 0x080L // Already defined in milblob.h
316 #define M_DRAW_INDEX 0x100L
317 #define M_DRAW_MASK 0x200L
318 #define M_DRAW_VERTICES 0x400L
319 #define M_DRAW_VERTEXES M_DRAW_VERTICES
320 #define M_DRAW_VERTEX M_DRAW_VERTICES
321 #define M_DRAW_SEGMENTS 0x800L
322 #define M_DRAW_FERET_MIN 0x1000L // Already defined in milblob.h
323 #define M_DRAW_FIRST_DERIVATIVE_X 0x2000L
324 #define M_DRAW_FIRST_DERIVATIVE_Y 0x4000L
325 #define M_DRAW_MAGNITUDE 0x8000L
326 #define M_DRAW_SECOND_DERIVATIVE_X 0x10000L
327 #define M_DRAW_SECOND_DERIVATIVE_Y 0x20000L
328 #define M_DRAW_ANGLE 0x40000L
329 #define M_DRAW_CROSS_DERIVATIVE 0x80000L
330 #define M_DRAW_GENERAL_FERET 0x100000L
331 #define M_DRAW_EDGELS 0x200000L
332 #define M_DRAW_ACTIVEMIL_INDEX 0x400000L
333 #define M_DRAW_VALUE 0x800000L
334 #define M_DRAW_NEAREST_EDGELS 0x1000000L
335 
336 
337 /***************************************************************************/
338 /* Complementary definitions */
339 /***************************************************************************/
340 #define M_ENABLE -9997L // Already defined in milblob.h, milcal.h, milmeas.h, mil.h
341 #define M_DISABLE -9999L // Already defined in milblob.h, milcal.h, milmeas.h, mil.h
342 #define M_PACKED 0x00020000L // Already defined in mil.h
343 #define M_SUPPORTED 0x20000000L // Already defined in milmod.h
344 #define M_AVAILABLE 0x40000000L // Already defined in milmod.h
345 #define M_TYPE_LABEL 0x01000000L
346 #define M_TYPE_INDEX 0x02000000L
347 #define M_ALL 0x40000000L // Already defined in milmod.h, milmeas.h, milocr.h, milpat.h, mil.h
348 #define M_DEFAULT 0x10000000L // Already defined in milmod.h, milocr.h, milcode.h, mil.h
349 #define M_TYPE_LONG 0x00040000L // Already defined in milmod.h, milmeas.h, milcode.h, milblob.h, milcal.h, mil.h
350 #define M_TYPE_DOUBLE 0x00100000L // Already defined in milmod.h, milmeas.h, milcode.h, milblob.h, milcal.h, mil.h
351 #define M_TYPE_MIL_ID 0x00400000L // Already defined in mil.h
352 #define M_NUMBER_OF_RESULTS 0x80000000L
353 #define M_TRUE 1L // Already defined in mil.h, milmeas.h
354 #define M_FALSE 0L // Already defined in mil.h, milmeas.h
355 #define M_NO_CHECK 0x80000000L
356 #define M_SAME -1L // Already defined in milmod.h, milmeas.h, milocr.h
357 #define M_SAME_OR_REVERSE 5L // Already defined in milmod.h
358 #define M_SAME_EDGE 67L
359 #define M_REVERSE 4L // Already defined in milmod.h, mil.h
360 #define M_ANY 0x11000000L // Already defined in milmod.h, milmeas.h, milcode.h, milocr.h, mil.h
361 #define M_SIZE_X 1002L // Already defined in milcode.h, mil.h
362 #define M_SIZE_Y 1003L // Already defined in milcode.h, mil.h
363 #define M_SIZE_BAND 1005L // Already defined in mil.h
364 #define M_TYPE 1008L // Already defined in mil.h
365 #define M_SIGN 1014L // Already defined in mil.h
366 #define M_SIZE_BIT 1007L // Already defined in mil.h
367 #define M_WORLD 0x2000L // Already defined in milcal.h
368 #define M_FULL_ANGLE 78L
369 #define M_SIZE_BYTE 5061L // Already defined in milmod.h, milcode.h, mil.h
370 #ifndef M_MIL_75_COMPATIBLE
371 #define M_MEMORY (M_APP_INQUIRE_SYS_START+120L) /*5120*/ // Already defined in milmod.h, milcode.h, mil.h
372 #else
373 #define M_MEMORY 5L // Already defined in Mil.h
374 #endif //M_MIL_75_COMPATIBLE
375 #define M_EDGE_CONTOUR (M_EDGE_OBJECT | 0x00000001L) // Already defined in mil.h
376 #define M_EDGE_CONTEXT (M_EDGE_OBJECT | 0x00000002L) // Already defined in mil.h
377 #define M_EDGE_RESULT (M_EDGE_OBJECT | 0x00000004L) // Already defined in mil.h
378 #define M_EDGE_RESULT_BUFFER M_EDGE_RESULT
379 #define M_INTERACTIVE M_NULL // Already defined in mil.h, milcal.h, milcode.h, milmeas.h, milocr.h, milpat.h, milmod.h
380 
381 
382 /***************************************************************************/
383 /* MilEdge CAPI function prototypes */
384 /***************************************************************************/
385 
386 #ifndef __midl // MIDL compiler used by ActiveMIL
387 
388 /***************************************************************************/
389 /* MedgeAlloc() */
390 /***************************************************************************/
391 MFTYPE32 MIL_ID MFTYPE MedgeAlloc (MIL_ID SystemId,
392  long EdgeFinderType,
393  long ControlFlag,
394  MIL_ID* ContextIdPtr);
395 
396 /***************************************************************************/
397 /* MedgeAllocResult() */
398 /***************************************************************************/
399 MFTYPE32 MIL_ID MFTYPE MedgeAllocResult (MIL_ID SystemId,
400  long ControlFlag,
401  MIL_ID* EdgeResultIdPtr);
402 
403 /***************************************************************************/
404 /* MedgeControl() */
405 /***************************************************************************/
406 MFTYPE32 void MFTYPE MedgeControl (MIL_ID ContextOrResultId,
407  long ControlType,
408  double ControlValue);
409 
410 /***************************************************************************/
411 /* MedgeInquire() */
412 /***************************************************************************/
413 MFTYPE32 long MFTYPE MedgeInquire (MIL_ID ContextOrResultId,
414  long InquireType,
415  void* UserVarPtr);
416 
417 /***************************************************************************/
418 /* MedgeSelect() */
419 /***************************************************************************/
420 MFTYPE32 void MFTYPE MedgeSelect (MIL_ID EdgeResultId,
421  long Operation,
422  long Feature,
423  long Condition,
424  double Param1,
425  double Param2);
426 
427 /***************************************************************************/
428 /* MedgeGetResult() */
429 /***************************************************************************/
430 MFTYPE32 void MFTYPE MedgeGetResult (MIL_ID ResultId,
431  long ResultIndex,
432  long ResultType,
433  void* FirstResultArrayPtr,
434  void* SecondResultArrayPtr);
435 
436 /***************************************************************************/
437 /* MedgeDraw() */
438 /***************************************************************************/
439 MFTYPE32 void MFTYPE MedgeDraw (MIL_ID GraphContId,
440  MIL_ID EdgeResultId,
441  MIL_ID DestImageId,
442  long Operation,
443  long IndexOrLabel,
444  long ControlFlag);
445 
446 /***************************************************************************/
447 /* MedgeCalculate() */
448 /***************************************************************************/
449 MFTYPE32 void MFTYPE MedgeCalculate (MIL_ID ContextId,
450  MIL_ID SourceImageId,
451  MIL_ID SourceDeriv1Id,
452  MIL_ID SourceDeriv2Id,
453  MIL_ID SourceDeriv3Id,
454  MIL_ID EdgeResultId,
455  long ControlFlag);
456 
457 /***************************************************************************/
458 /* MedgeSave() */
459 /***************************************************************************/
460 MFTYPE32 void MFTYPE MedgeSave (MIL_TEXT_PTR FileName,
461  MIL_ID ContextOrResultId,
462  long ControlFlag);
463 
464 /***************************************************************************/
465 /* MedgeRestore() */
466 /***************************************************************************/
467 MFTYPE32 MIL_ID MFTYPE MedgeRestore (MIL_TEXT_PTR FileName,
468  MIL_ID SystemId,
469  long ControlFlag,
470  MIL_ID* ContextIdPtr);
471 
472 /***************************************************************************/
473 /* MedgeMask() */
474 /***************************************************************************/
475 MFTYPE32 void MFTYPE MedgeMask (MIL_ID ContextId,
476  MIL_ID MaskImageId,
477  long ControlFlag);
478 
479 /***************************************************************************/
480 /* MedgeGetNeighbors() */
481 /***************************************************************************/
482 MFTYPE32 void MFTYPE MedgeGetNeighbors (MIL_ID ResultId,
483  long SizeOfArray,
484  double* SrcArrayX,
485  double* SrcArrayY,
486  double* SrcArrayAngle,
487  double* DstArrayX,
488  double* DstArrayY,
489  long* Index,
490  long* Label,
491  long ControlFlag);
492 
493 /***************************************************************************/
494 /* MedgePut() */
495 /***************************************************************************/
496 MFTYPE32 void MFTYPE MedgePut (MIL_ID ResultId,
497  long NbEdgels,
498  long* pArrayLabel,
499  double* pArrayX,
500  double* pArrayY,
501  double* pArrayAngle,
502  double* pArrayMagnitude,
503  long ControlFlag );
504 
505 
506 /***************************************************************************/
507 /* MedgeFree() */
508 /***************************************************************************/
509 MFTYPE32 void MFTYPE MedgeFree (MIL_ID ObjectId);
510 
511 
512 
513 #endif /* #ifdef __midl */
514 
515 /* C++ directive if needed */
516 #ifdef __cplusplus
517 }
518 #endif
519 
520 #endif // !M_MIL_LITE
521 
522 #endif /* __MILEDGEEXTR_H__ */
long MIL_ID
Definition: AcqOdyssey.h:45
MFTYPE32 void MFTYPE MedgeGetResult(MIL_ID ResultId, long ResultIndex, long ResultType, void *FirstResultArrayPtr, void *SecondResultArrayPtr)
MFTYPE32 void MFTYPE MedgePut(MIL_ID ResultId, long NbEdgels, long *pArrayLabel, double *pArrayX, double *pArrayY, double *pArrayAngle, double *pArrayMagnitude, long ControlFlag)
MFTYPE32 void MFTYPE MedgeDraw(MIL_ID GraphContId, MIL_ID EdgeResultId, MIL_ID DestImageId, long Operation, long IndexOrLabel, long ControlFlag)
MFTYPE32 MIL_ID MFTYPE MedgeAllocResult(MIL_ID SystemId, long ControlFlag, MIL_ID *EdgeResultIdPtr)
MFTYPE32 void MFTYPE MedgeSave(MIL_TEXT_PTR FileName, MIL_ID ContextOrResultId, long ControlFlag)
MFTYPE32 void MFTYPE MedgeControl(MIL_ID ContextOrResultId, long ControlType, double ControlValue)
MFTYPE32 void MFTYPE MedgeCalculate(MIL_ID ContextId, MIL_ID SourceImageId, MIL_ID SourceDeriv1Id, MIL_ID SourceDeriv2Id, MIL_ID SourceDeriv3Id, MIL_ID EdgeResultId, long ControlFlag)
MFTYPE32 void MFTYPE MedgeFree(MIL_ID ObjectId)
MFTYPE32 MIL_ID MFTYPE MedgeAlloc(MIL_ID SystemId, long EdgeFinderType, long ControlFlag, MIL_ID *ContextIdPtr)
MFTYPE32 long MFTYPE MedgeInquire(MIL_ID ContextOrResultId, long InquireType, void *UserVarPtr)
MFTYPE32 void MFTYPE MedgeMask(MIL_ID ContextId, MIL_ID MaskImageId, long ControlFlag)
MFTYPE32 void MFTYPE MedgeGetNeighbors(MIL_ID ResultId, long SizeOfArray, double *SrcArrayX, double *SrcArrayY, double *SrcArrayAngle, double *DstArrayX, double *DstArrayY, long *Index, long *Label, long ControlFlag)
MFTYPE32 MIL_ID MFTYPE MedgeRestore(MIL_TEXT_PTR FileName, MIL_ID SystemId, long ControlFlag, MIL_ID *ContextIdPtr)
MFTYPE32 void MFTYPE MedgeSelect(MIL_ID EdgeResultId, long Operation, long Feature, long Condition, double Param1, double Param2)
char * MIL_TEXT_PTR
Definition: Milos.h:90