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
23extern "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/***************************************************************************/
391MFTYPE32 MIL_ID MFTYPE MedgeAlloc (MIL_ID SystemId,
392 long EdgeFinderType,
393 long ControlFlag,
394 MIL_ID* ContextIdPtr);
395
396/***************************************************************************/
397/* MedgeAllocResult() */
398/***************************************************************************/
399MFTYPE32 MIL_ID MFTYPE MedgeAllocResult (MIL_ID SystemId,
400 long ControlFlag,
401 MIL_ID* EdgeResultIdPtr);
402
403/***************************************************************************/
404/* MedgeControl() */
405/***************************************************************************/
406MFTYPE32 void MFTYPE MedgeControl (MIL_ID ContextOrResultId,
407 long ControlType,
408 double ControlValue);
409
410/***************************************************************************/
411/* MedgeInquire() */
412/***************************************************************************/
413MFTYPE32 long MFTYPE MedgeInquire (MIL_ID ContextOrResultId,
414 long InquireType,
415 void* UserVarPtr);
416
417/***************************************************************************/
418/* MedgeSelect() */
419/***************************************************************************/
420MFTYPE32 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/***************************************************************************/
430MFTYPE32 void MFTYPE MedgeGetResult (MIL_ID ResultId,
431 long ResultIndex,
432 long ResultType,
433 void* FirstResultArrayPtr,
434 void* SecondResultArrayPtr);
435
436/***************************************************************************/
437/* MedgeDraw() */
438/***************************************************************************/
439MFTYPE32 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/***************************************************************************/
449MFTYPE32 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/***************************************************************************/
460MFTYPE32 void MFTYPE MedgeSave (MIL_TEXT_PTR FileName,
461 MIL_ID ContextOrResultId,
462 long ControlFlag);
463
464/***************************************************************************/
465/* MedgeRestore() */
466/***************************************************************************/
467MFTYPE32 MIL_ID MFTYPE MedgeRestore (MIL_TEXT_PTR FileName,
468 MIL_ID SystemId,
469 long ControlFlag,
470 MIL_ID* ContextIdPtr);
471
472/***************************************************************************/
473/* MedgeMask() */
474/***************************************************************************/
475MFTYPE32 void MFTYPE MedgeMask (MIL_ID ContextId,
476 MIL_ID MaskImageId,
477 long ControlFlag);
478
479/***************************************************************************/
480/* MedgeGetNeighbors() */
481/***************************************************************************/
482MFTYPE32 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/***************************************************************************/
496MFTYPE32 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/***************************************************************************/
509MFTYPE32 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