blob: 97bd5f704f13cfda71fc3aa70a091a5eecdb37f9 [file] [log] [blame]
jerrymf1579332013-02-07 01:56:28 +00001/*============================================================================*/
2/* IMAQ Vision */
3/*----------------------------------------------------------------------------*/
4/* Copyright (c) National Instruments 2001. All Rights Reserved. */
5/*----------------------------------------------------------------------------*/
6/* */
7/* Title: NIVision.h */
8/* */
9/*============================================================================*/
10#if !defined(NiVision_h)
11#define NiVision_h
12
13//============================================================================
14// Includes
15//============================================================================
16#include <stddef.h>
17
18
19//============================================================================
20// Control Defines
21//============================================================================
22#if !defined(IMAQ_IMPORT)
23 #ifndef __GNUC__
24 #define IMAQ_IMPORT __declspec(dllimport)
25 #else
26 #define IMAQ_IMPORT
27 #endif
28#endif
29
30#if !defined(IMAQ_FUNC)
31 #if !defined(__cplusplus)
32 #define IMAQ_FUNC IMAQ_IMPORT
33 #else
34 #define IMAQ_FUNC extern "C" IMAQ_IMPORT
35 #endif
36#endif
37
38#if !defined(IMAQ_STDCALL)
39 #ifndef __GNUC__
40 #define IMAQ_STDCALL __stdcall
41 #else
42 #define IMAQ_STDCALL
43 #endif
44#endif
45
46#ifdef _CVI_
47#pragma EnableLibraryRuntimeChecking
48#include <ansi_c.h>
49#endif
50
51#define IMAQ_CALLBACK __cdecl
52
53//============================================================================
54// Manifest Constants
55//============================================================================
56#ifndef NULL
57 #ifdef __cplusplus
58 #define NULL 0
59 #else
60 #define NULL ((void *)0)
61 #endif
62#endif
63
64#ifndef FALSE
65 #define FALSE 0
66#endif
67
68#ifndef TRUE
69 #define TRUE 1
70#endif
71
72#define IMAQ_DEFAULT_SHOW_COORDINATES TRUE
73#define IMAQ_DEFAULT_MAX_ICONS_PER_LINE 4
74#define IMAQ_DEFAULT_LEARNING_MODE IMAQ_LEARN_SHIFT_INFORMATION
75#define IMAQ_DEFAULT_BMP_COMPRESS FALSE
76#define IMAQ_DEFAULT_PNG_QUALITY 750
77#define IMAQ_DEFAULT_JPEG_QUALITY 750
78#define IMAQ_ALL_CONTOURS -1
79#define IMAQ_ALL_WINDOWS -1
80#define IMAQ_SHIFT 1
81#define IMAQ_ALT 2
82#define IMAQ_CTRL 4
83#define IMAQ_CAPS_LOCK 8
84#define IMAQ_MODAL_DIALOG -1
85#define IMAQ_INIT_RGB_TRANSPARENT { 0, 0, 0, 1 }
86#define IMAQ_INIT_RGB_RED { 0, 0, 255, 0 }
87#define IMAQ_INIT_RGB_BLUE { 255, 0, 0, 0 }
88#define IMAQ_INIT_RGB_GREEN { 0, 255, 0, 0 }
89#define IMAQ_INIT_RGB_YELLOW { 0, 255, 255, 0 }
90#define IMAQ_INIT_RGB_WHITE { 255, 255, 255, 0 }
91#define IMAQ_INIT_RGB_BLACK { 0, 0, 0, 0 }
92#define IMAQ_USE_DEFAULT_QUALITY -1
93#define IMAQ_ALL_SAMPLES -1
94#define IMAQ_ALL_OBJECTS -1
95#define IMAQ_ALL_CHARACTERS -1
96
97//============================================================================
98// Predefined Valid Characters
99//============================================================================
100#define IMAQ_ANY_CHARACTER "" //Any Character
101#define IMAQ_ALPHABETIC "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" //Alphabetic
102#define IMAQ_ALPHANUMERIC "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" //Alphanumeric
103#define IMAQ_UPPERCASE_LETTERS "ABCDEFGHIJKLMNOPQRSTUVWXYZ" //Uppercase Letters
104#define IMAQ_LOWERCASE_LETTERS "abcdefghijklmnopqrstuvwxyz" //Lowercase Letters
105#define IMAQ_DECIMAL_DIGITS "0123456789" //Decimal Digits
106#define IMAQ_HEXADECIMAL_DIGITS "0123456789ABCDEFabcdef" //Hexadecimal Digits
107#define IMAQ_PATTERN "\xFF" //Pattern (A single character string with the character value set to 255)
108#define IMAQ_FORCE_SPACE " " //Force Space
109
110//============================================================================
111// Macros
112//============================================================================
113#define IMAQ_NO_RECT imaqMakeRect( 0, 0, 0x7FFFFFFF, 0x7FFFFFFF)
114#define IMAQ_NO_ROTATED_RECT imaqMakeRotatedRect( 0, 0, 0x7FFFFFFF, 0x7FFFFFFF, 0)
115#define IMAQ_NO_POINT imaqMakePoint( -1, -1)
116#define IMAQ_NO_POINT_FLOAT imaqMakePointFloat( -1.0, -1.0 )
117#define IMAQ_NO_OFFSET imaqMakePointFloat( 0.0, 0.0 )
118
119
120
121//============================================================================
122// When in Borland, some functions must be mapped to different names.
123// This accomplishes said task.
124//============================================================================
125#if defined(__BORLANDC__) || (defined(_CVI_) && defined(_NI_BC_))
126 #define imaqMakePoint imaqMakePoint_BC
127 #define imaqMakePointFloat imaqMakePointFloat_BC
128#endif
129
130
131//============================================================================
132// When in Watcom, some functions must be mapped to different names.
133// This accomplishes said task.
134//============================================================================
135#if defined(__WATCOMC__) || (defined(_CVI_) && defined(_NI_WC_))
136 #define imaqMakePoint imaqMakePoint_BC
137 #define imaqMakePointFloat imaqMakePointFloat_BC
138#endif
139
140//============================================================================
141// If using Visual C++, force startup & shutdown code to run.
142//============================================================================
143#if defined(_MSC_VER) && !defined(_CVI_) && !defined(__BORLANDC__)
144 #pragma comment(linker, "/INCLUDE:_nivision_startup_shutdown")
145 #pragma comment(linker, "/DEFAULTLIB:nivision.lib")
146#endif
147
148//============================================================================
149// Error Codes
150//============================================================================
151#define ERR_SUCCESS 0 // No error.
152#define ERR_SYSTEM_ERROR -1074396160 // System error.
153#define ERR_OUT_OF_MEMORY -1074396159 // Not enough memory for requested operation.
154#define ERR_MEMORY_ERROR -1074396158 // Memory error.
155#define ERR_UNREGISTERED -1074396157 // Unlicensed copy of NI Vision.
156#define ERR_NEED_FULL_VERSION -1074396156 // The function requires an NI Vision 5.0 Advanced license.
157#define ERR_UNINIT -1074396155 // NI Vision did not initialize properly.
158#define ERR_IMAGE_TOO_SMALL -1074396154 // The image is not large enough for the operation.
159#define ERR_BARCODE_CODABAR -1074396153 // The barcode is not a valid Codabar barcode.
160#define ERR_BARCODE_CODE39 -1074396152 // The barcode is not a valid Code 3 of 9 barcode.
161#define ERR_BARCODE_CODE93 -1074396151 // The barcode is not a valid Code93 barcode.
162#define ERR_BARCODE_CODE128 -1074396150 // The barcode is not a valid Code128 barcode.
163#define ERR_BARCODE_EAN8 -1074396149 // The barcode is not a valid EAN8 barcode.
164#define ERR_BARCODE_EAN13 -1074396148 // The barcode is not a valid EAN13 barcode.
165#define ERR_BARCODE_I25 -1074396147 // The barcode is not a valid Interleaved 2 of 5 barcode.
166#define ERR_BARCODE_MSI -1074396146 // The barcode is not a valid MSI barcode.
167#define ERR_BARCODE_UPCA -1074396145 // The barcode is not a valid UPCA barcode.
168#define ERR_BARCODE_CODE93_SHIFT -1074396144 // The Code93 barcode contains invalid shift encoding.
169#define ERR_BARCODE_TYPE -1074396143 // The barcode type is invalid.
170#define ERR_BARCODE_INVALID -1074396142 // The image does not represent a valid linear barcode.
171#define ERR_BARCODE_CODE128_FNC -1074396141 // The FNC value in the Code128 barcode is not located before the first data value.
172#define ERR_BARCODE_CODE128_SET -1074396140 // The starting code set in the Code128 barcode is not valid.
173#define ERR_ROLLBACK_RESOURCE_OUT_OF_MEMORY -1074396139 // Not enough reserved memory in the timed environment for the requested operation.
174#define ERR_ROLLBACK_NOT_SUPPORTED -1074396138 // The function is not supported when a time limit is active.
175#define ERR_DIRECTX_DLL_NOT_FOUND -1074396137 // Quartz.dll not found. Install DirectX 8.1 or later.
176#define ERR_DIRECTX_INVALID_FILTER_QUALITY -1074396136 // The filter quality you provided is invalid. Valid quality values range from -1 to 1000.
177#define ERR_INVALID_BUTTON_LABEL -1074396135 // Invalid button label.
178#define ERR_THREAD_INITIALIZING -1074396134 // Could not execute the function in the separate thread because the thread has not completed initialization.
179#define ERR_THREAD_COULD_NOT_INITIALIZE -1074396133 // Could not execute the function in the separate thread because the thread could not initialize.
180#define ERR_MASK_NOT_TEMPLATE_SIZE -1074396132 // The mask must be the same size as the template.
181#define ERR_NOT_RECT_OR_ROTATED_RECT -1074396130 // The ROI must only have either a single Rectangle contour or a single Rotated Rectangle contour.
182#define ERR_ROLLBACK_UNBOUNDED_INTERFACE -1074396129 // During timed execution, you must use the preallocated version of this operation.
183#define ERR_ROLLBACK_RESOURCE_CONFLICT_3 -1074396128 // An image being modified by one process cannot be requested by another process while a time limit is active.
184#define ERR_ROLLBACK_RESOURCE_CONFLICT_2 -1074396127 // An image with pattern matching, calibration, or overlay information cannot be manipulated while a time limit is active.
185#define ERR_ROLLBACK_RESOURCE_CONFLICT_1 -1074396126 // An image created before a time limit is started cannot be resized while a time limit is active.
186#define ERR_INVALID_CONTRAST_THRESHOLD -1074396125 // Invalid contrast threshold. The threshold value must be greater than 0.
187#define ERR_INVALID_CALIBRATION_ROI_MODE -1074396124 // NI Vision does not support the calibration ROI mode you supplied.
188#define ERR_INVALID_CALIBRATION_MODE -1074396123 // NI Vision does not support the calibration mode you supplied.
189#define ERR_DRAWTEXT_COLOR_MUST_BE_GRAYSCALE -1074396122 // Set the foreground and background text colors to grayscale to draw on a U8 image.
190#define ERR_SATURATION_THRESHOLD_OUT_OF_RANGE -1074396121 // The value of the saturation threshold must be from 0 to 255.
191#define ERR_NOT_IMAGE -1074396120 // Not an image.
192#define ERR_CUSTOMDATA_INVALID_KEY -1074396119 // They custom data key you supplied is invalid. The only valid character values are decimal 32-126 and 161-255. There must also be no repeated, leading, or trailing spaces.
193#define ERR_INVALID_STEP_SIZE -1074396118 // Step size must be greater than zero and less than Image size
194#define ERR_MATRIX_SIZE -1074396117 // Invalid matrix size in the structuring element.
195#define ERR_CALIBRATION_INSF_POINTS -1074396116 // Insufficient number of calibration feature points.
196#define ERR_CALIBRATION_IMAGE_CORRECTED -1074396115 // The operation is invalid in a corrected image.
197#define ERR_CALIBRATION_INVALID_ROI -1074396114 // The ROI contains an invalid contour type or is not contained in the ROI learned for calibration.
198#define ERR_CALIBRATION_IMAGE_UNCALIBRATED -1074396113 // The source/input image has not been calibrated.
199#define ERR_INCOMP_MATRIX_SIZE -1074396112 // The number of pixel and real-world coordinates must be equal.
200#define ERR_CALIBRATION_FAILED_TO_FIND_GRID -1074396111 // Unable to automatically detect grid because the image is too distorted.
201#define ERR_CALIBRATION_INFO_VERSION -1074396110 // Invalid calibration information version.
202#define ERR_CALIBRATION_INVALID_SCALING_FACTOR -1074396109 // Invalid calibration scaling factor.
203#define ERR_CALIBRATION_ERRORMAP -1074396108 // The calibration error map cannot be computed.
204#define ERR_CALIBRATION_INFO_1 -1074396107 // Invalid calibration template image.
205#define ERR_CALIBRATION_INFO_2 -1074396106 // Invalid calibration template image.
206#define ERR_CALIBRATION_INFO_3 -1074396105 // Invalid calibration template image.
207#define ERR_CALIBRATION_INFO_4 -1074396104 // Invalid calibration template image.
208#define ERR_CALIBRATION_INFO_5 -1074396103 // Invalid calibration template image.
209#define ERR_CALIBRATION_INFO_6 -1074396102 // Invalid calibration template image.
210#define ERR_CALIBRATION_INFO_MICRO_PLANE -1074396101 // Invalid calibration template image.
211#define ERR_CALIBRATION_INFO_PERSPECTIVE_PROJECTION -1074396100 // Invalid calibration template image.
212#define ERR_CALIBRATION_INFO_SIMPLE_TRANSFORM -1074396099 // Invalid calibration template image.
213#define ERR_RESERVED_MUST_BE_NULL -1074396098 // You must pass NULL for the reserved parameter.
214#define ERR_INVALID_PARTICLE_PARAMETER_VALUE -1074396097 // You entered an invalid selection in the particle parameter.
215#define ERR_NOT_AN_OBJECT -1074396096 // Not an object.
216#define ERR_CALIBRATION_DUPLICATE_REFERENCE_POINT -1074396095 // The reference points passed are inconsistent. At least two similar pixel coordinates correspond to different real-world coordinates.
217#define ERR_ROLLBACK_RESOURCE_CANNOT_UNLOCK -1074396094 // A resource conflict occurred in the timed environment. Two processes cannot manage the same resource and be time bounded.
218#define ERR_ROLLBACK_RESOURCE_LOCKED -1074396093 // A resource conflict occurred in the timed environment. Two processes cannot access the same resource and be time bounded.
219#define ERR_ROLLBACK_RESOURCE_NON_EMPTY_INITIALIZE -1074396092 // Multiple timed environments are not supported.
220#define ERR_ROLLBACK_RESOURCE_UNINITIALIZED_ENABLE -1074396091 // A time limit cannot be started until the timed environment is initialized.
221#define ERR_ROLLBACK_RESOURCE_ENABLED -1074396090 // Multiple timed environments are not supported.
222#define ERR_ROLLBACK_RESOURCE_REINITIALIZE -1074396089 // The timed environment is already initialized.
223#define ERR_ROLLBACK_RESIZE -1074396088 // The results of the operation exceeded the size limits on the output data arrays.
224#define ERR_ROLLBACK_STOP_TIMER -1074396087 // No time limit is available to stop.
225#define ERR_ROLLBACK_START_TIMER -1074396086 // A time limit could not be set.
226#define ERR_ROLLBACK_INIT_TIMER -1074396085 // The timed environment could not be initialized.
227#define ERR_ROLLBACK_DELETE_TIMER -1074396084 // No initialized timed environment is available to close.
228#define ERR_ROLLBACK_TIMEOUT -1074396083 // The time limit has expired.
229#define ERR_PALETTE_NOT_SUPPORTED -1074396082 // Only 8-bit images support the use of palettes. Either do not use a palette, or convert your image to an 8-bit image before using a palette.
230#define ERR_BAD_PASSWORD -1074396081 // Incorrect password.
231#define ERR_INVALID_IMAGE_TYPE -1074396080 // Invalid image type.
232#define ERR_INVALID_METAFILE_HANDLE -1074396079 // Invalid metafile handle.
233#define ERR_INCOMP_TYPE -1074396077 // Incompatible image type.
234#define ERR_COORD_SYS_FIRST_AXIS -1074396076 // Unable to fit a line for the primary axis.
235#define ERR_COORD_SYS_SECOND_AXIS -1074396075 // Unable to fit a line for the secondary axis.
236#define ERR_INCOMP_SIZE -1074396074 // Incompatible image size.
237#define ERR_MASK_OUTSIDE_IMAGE -1074396073 // When the mask's offset was applied, the mask was entirely outside of the image.
238#define ERR_INVALID_BORDER -1074396072 // Invalid image border.
239#define ERR_INVALID_SCAN_DIRECTION -1074396071 // Invalid scan direction.
240#define ERR_INVALID_FUNCTION -1074396070 // Unsupported function.
241#define ERR_INVALID_COLOR_MODE -1074396069 // NI Vision does not support the color mode you specified.
242#define ERR_INVALID_ACTION -1074396068 // The function does not support the requested action.
243#define ERR_IMAGES_NOT_DIFF -1074396067 // The source image and destination image must be different.
244#define ERR_INVALID_POINTSYMBOL -1074396066 // Invalid point symbol.
245#define ERR_CANT_RESIZE_EXTERNAL -1074396065 // Cannot resize an image in an acquisition buffer.
246#define ERR_EXTERNAL_NOT_SUPPORTED -1074396064 // This operation is not supported for images in an acquisition buffer.
247#define ERR_EXTERNAL_ALIGNMENT -1074396063 // The external buffer must be aligned on a 4-byte boundary. The line width and border pixels must be 4-byte aligned, as well.
248#define ERR_INVALID_TOLERANCE -1074396062 // The tolerance parameter must be greater than or equal to 0.
249#define ERR_INVALID_WINDOW_SIZE -1074396061 // The size of each dimension of the window must be greater than 2 and less than or equal to the size of the image in the corresponding dimension.
250#define ERR_JPEG2000_LOSSLESS_WITH_FLOATING_POINT -1074396060 // Lossless compression cannot be used with the floating point wavelet transform mode. Either set the wavelet transform mode to integer, or use lossy compression.
251#define ERR_INVALID_MAX_ITERATIONS -1074396059 // Invalid maximum number of iterations. Maximum number of iterations must be greater than zero.
252#define ERR_INVALID_ROTATION_MODE -1074396058 // Invalid rotation mode.
253#define ERR_INVALID_SEARCH_VECTOR_WIDTH -1074396057 // Invalid search vector width. The width must be an odd number greater than zero.
254#define ERR_INVALID_MATRIX_MIRROR_MODE -1074396056 // Invalid matrix mirror mode.
255#define ERR_INVALID_ASPECT_RATIO -1074396055 // Invalid aspect ratio. Valid aspect ratios must be greater than or equal to zero.
256#define ERR_INVALID_CELL_FILL_TYPE -1074396054 // Invalid cell fill type.
257#define ERR_INVALID_BORDER_INTEGRITY -1074396053 // Invalid border integrity. Valid values range from 0 to 100.
258#define ERR_INVALID_DEMODULATION_MODE -1074396052 // Invalid demodulation mode.
259#define ERR_INVALID_CELL_FILTER_MODE -1074396051 // Invalid cell filter mode.
260#define ERR_INVALID_ECC_TYPE -1074396050 // Invalid ECC type.
261#define ERR_INVALID_MATRIX_POLARITY -1074396049 // Invalid matrix polarity.
262#define ERR_INVALID_CELL_SAMPLE_SIZE -1074396048 // Invalid cell sample size.
263#define ERR_INVALID_LINEAR_AVERAGE_MODE -1074396047 // Invalid linear average mode.
264#define ERR_INVALID_2D_BARCODE_CONTRAST_FOR_ROI -1074396046 // When using a region of interest that is not a rectangle, you must specify the contrast mode of the barcode as either black on white or white on black.
265#define ERR_INVALID_2D_BARCODE_SUBTYPE -1074396045 // Invalid 2-D barcode Data Matrix subtype.
266#define ERR_INVALID_2D_BARCODE_SHAPE -1074396044 // Invalid 2-D barcode shape.
267#define ERR_INVALID_2D_BARCODE_CELL_SHAPE -1074396043 // Invalid 2-D barcode cell shape.
268#define ERR_INVALID_2D_BARCODE_CONTRAST -1074396042 // Invalid 2-D barcode contrast.
269#define ERR_INVALID_2D_BARCODE_TYPE -1074396041 // Invalid 2-D barcode type.
270#define ERR_DRIVER -1074396040 // Cannot access NI-IMAQ driver.
271#define ERR_IO_ERROR -1074396039 // I/O error.
272#define ERR_FIND_COORDSYS_MORE_THAN_ONE_EDGE -1074396038 // When searching for a coordinate system, the number of lines to fit must be 1.
273#define ERR_TIMEOUT -1074396037 // Trigger timeout.
274#define ERR_INVALID_SKELETONMODE -1074396036 // The Skeleton mode you specified is invalid.
275#define ERR_TEMPLATEIMAGE_NOCIRCLE -1074396035 // The template image does not contain enough information for learning the aggressive search strategy.
276#define ERR_TEMPLATEIMAGE_EDGEINFO -1074396034 // The template image does not contain enough edge information for the sample size(s) requested.
277#define ERR_TEMPLATEDESCRIPTOR_LEARNSETUPDATA -1074396033 // Invalid template descriptor.
278#define ERR_TEMPLATEDESCRIPTOR_ROTATION_SEARCHSTRATEGY -1074396032 // The template descriptor does not contain data required for the requested search strategy in rotation-invariant matching.
279#define ERR_INVALID_TETRAGON -1074396031 // The input tetragon must have four points. The points are specified clockwise starting with the top left point.
280#define ERR_TOO_MANY_CLASSIFICATION_SESSIONS -1074396030 // There are too many classification sessions open. You must close a session before you can open another one.
281#define ERR_TIME_BOUNDED_EXECUTION_NOT_SUPPORTED -1074396028 // NI Vision no longer supports time-bounded execution.
282#define ERR_INVALID_COLOR_RESOLUTION -1074396027 // Invalid Color Resolution for the Color Classifier
283#define ERR_INVALID_PROCESS_TYPE_FOR_EDGE_DETECTION -1074396026 // Invalid process type for edge detection.
284#define ERR_INVALID_ANGLE_RANGE_FOR_STRAIGHT_EDGE -1074396025 // Angle range value should be equal to or greater than zero.
285#define ERR_INVALID_MIN_COVERAGE_FOR_STRAIGHT_EDGE -1074396024 // Minimum coverage value should be greater than zero.
286#define ERR_INVALID_ANGLE_TOL_FOR_STRAIGHT_EDGE -1074396023 // The angle tolerance should be equal to or greater than 0.001.
287#define ERR_INVALID_SEARCH_MODE_FOR_STRAIGHT_EDGE -1074396022 // Invalid search mode for detecting straight edges
288#define ERR_INVALID_KERNEL_SIZE_FOR_EDGE_DETECTION -1074396021 // Invalid kernel size for edge detection. The minimum kernel size is 3, the maximum kernel size is 1073741823 and the kernel size must be odd.
289#define ERR_INVALID_GRADING_MODE -1074396020 // Invalid grading mode.
290#define ERR_INVALID_THRESHOLD_PERCENTAGE -1074396019 // Invalid threshold percentage. Valid values range from 0 to 100.
291#define ERR_INVALID_EDGE_POLARITY_SEARCH_MODE -1074396018 // Invalid edge polarity search mode.
292#define ERR_OPENING_NEWER_AIM_GRADING_DATA -1074396017 // The AIM grading data attached to the image you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
293#define ERR_NO_VIDEO_DRIVER -1074396016 // No video driver is installed.
294#define ERR_RPC_EXECUTE_IVB -1074396015 // Unable to establish network connection with remote system.
295#define ERR_INVALID_VIDEO_BLIT -1074396014 // RT Video Out does not support displaying the supplied image type at the selected color depth.
296#define ERR_INVALID_VIDEO_MODE -1074396013 // Invalid video mode.
297#define ERR_RPC_EXECUTE -1074396012 // Unable to display remote image on network connection.
298#define ERR_RPC_BIND -1074396011 // Unable to establish network connection.
299#define ERR_INVALID_FRAME_NUMBER -1074396010 // Invalid frame number.
300#define ERR_DIRECTX -1074396009 // An internal DirectX error has occurred. Try upgrading to the latest version of DirectX.
301#define ERR_DIRECTX_NO_FILTER -1074396008 // An appropriate DirectX filter to process this file could not be found. Install the filter that was used to create this AVI. Upgrading to the latest version of DirectX may correct this error. NI Vision requires DirectX 8.1 or higher.
302#define ERR_DIRECTX_INCOMPATIBLE_COMPRESSION_FILTER -1074396007 // Incompatible compression filter.
303#define ERR_DIRECTX_UNKNOWN_COMPRESSION_FILTER -1074396006 // Unknown compression filter.
304#define ERR_INVALID_AVI_SESSION -1074396005 // Invalid AVI session.
305#define ERR_DIRECTX_CERTIFICATION_FAILURE -1074396004 // A software key is restricting the use of this compression filter.
306#define ERR_AVI_DATA_EXCEEDS_BUFFER_SIZE -1074396003 // The data for this frame exceeds the data buffer size specified when creating the AVI file.
307#define ERR_INVALID_LINEGAUGEMETHOD -1074396002 // Invalid line gauge method.
308#define ERR_TOO_MANY_AVI_SESSIONS -1074396001 // There are too many AVI sessions open. You must close a session before you can open another one.
309#define ERR_FILE_FILE_HEADER -1074396000 // Invalid file header.
310#define ERR_FILE_FILE_TYPE -1074395999 // Invalid file type.
311#define ERR_FILE_COLOR_TABLE -1074395998 // Invalid color table.
312#define ERR_FILE_ARGERR -1074395997 // Invalid parameter.
313#define ERR_FILE_OPEN -1074395996 // File is already open for writing.
314#define ERR_FILE_NOT_FOUND -1074395995 // File not found.
315#define ERR_FILE_TOO_MANY_OPEN -1074395994 // Too many files open.
316#define ERR_FILE_IO_ERR -1074395993 // File I/O error.
317#define ERR_FILE_PERMISSION -1074395992 // File access denied.
318#define ERR_FILE_INVALID_TYPE -1074395991 // NI Vision does not support the file type you specified.
319#define ERR_FILE_GET_INFO -1074395990 // Could not read Vision info from file.
320#define ERR_FILE_READ -1074395989 // Unable to read data.
321#define ERR_FILE_WRITE -1074395988 // Unable to write data.
322#define ERR_FILE_EOF -1074395987 // Premature end of file.
323#define ERR_FILE_FORMAT -1074395986 // Invalid file format.
324#define ERR_FILE_OPERATION -1074395985 // Invalid file operation.
325#define ERR_FILE_INVALID_DATA_TYPE -1074395984 // NI Vision does not support the file data type you specified.
326#define ERR_FILE_NO_SPACE -1074395983 // Disk full.
327#define ERR_INVALID_FRAMES_PER_SECOND -1074395982 // The frames per second in an AVI must be greater than zero.
328#define ERR_INSUFFICIENT_BUFFER_SIZE -1074395981 // The buffer that was passed in is not big enough to hold all of the data.
329#define ERR_COM_INITIALIZE -1074395980 // Error initializing COM.
330#define ERR_INVALID_PARTICLE_INFO -1074395979 // The image has invalid particle information. Call imaqCountParticles on the image to create particle information.
331#define ERR_INVALID_PARTICLE_NUMBER -1074395978 // Invalid particle number.
332#define ERR_AVI_VERSION -1074395977 // The AVI file was created in a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this AVI file.
333#define ERR_NUMBER_OF_PALETTE_COLORS -1074395976 // The color palette must have exactly 0 or 256 entries.
334#define ERR_AVI_TIMEOUT -1074395975 // DirectX has timed out reading or writing the AVI file. When closing an AVI file, try adding an additional delay. When reading an AVI file, try reducing CPU and disk load.
335#define ERR_UNSUPPORTED_JPEG2000_COLORSPACE_METHOD -1074395974 // NI Vision does not support reading JPEG2000 files with this colorspace method.
336#define ERR_JPEG2000_UNSUPPORTED_MULTIPLE_LAYERS -1074395973 // NI Vision does not support reading JPEG2000 files with more than one layer.
337#define ERR_DIRECTX_ENUMERATE_FILTERS -1074395972 // DirectX is unable to enumerate the compression filters. This is caused by a third-party compression filter that is either improperly installed or is preventing itself from being enumerated. Remove any recently installed compression filters and try again.
338#define ERR_INVALID_OFFSET -1074395971 // The offset you specified must be size 2.
339#define ERR_INIT -1074395960 // Initialization error.
340#define ERR_CREATE_WINDOW -1074395959 // Unable to create window.
341#define ERR_WINDOW_ID -1074395958 // Invalid window ID.
342#define ERR_ARRAY_SIZE_MISMATCH -1074395957 // The array sizes are not compatible.
343#define ERR_INVALID_QUALITY -1074395956 // The quality you provided is invalid. Valid quality values range from -1 to 1000.
344#define ERR_INVALID_MAX_WAVELET_TRANSFORM_LEVEL -1074395955 // Invalid maximum wavelet transform level. Valid values range from 0 to 255.
345#define ERR_INVALID_QUANTIZATION_STEP_SIZE -1074395954 // The quantization step size must be greater than or equal to 0.
346#define ERR_INVALID_WAVELET_TRANSFORM_MODE -1074395953 // Invalid wavelet transform mode.
347#define ERR_ROI_NOT_POINT -1074395952 // The ROI must only have a single Point contour.
348#define ERR_ROI_NOT_POINTS -1074395951 // The ROI must only have Point contours.
349#define ERR_ROI_NOT_LINE -1074395950 // The ROI must only have a single Line contour.
350#define ERR_ROI_NOT_ANNULUS -1074395949 // The ROI must only have a single Annulus contour.
351#define ERR_INVALID_MEASURE_PARTICLES_CALIBRATION_MODE -1074395948 // Invalid measure particles calibration mode.
352#define ERR_INVALID_PARTICLE_CLASSIFIER_THRESHOLD_TYPE -1074395947 // Invalid particle classifier threshold type.
353#define ERR_INVALID_DISTANCE -1074395946 // Invalid Color Segmentation Distance
354#define ERR_INVALID_PARTICLE_AREA -1074395945 // Invalid Color Segmenation Particle Area
355#define ERR_CLASS_NAME_NOT_FOUND -1074395944 // Required Class name is not found in trained labels/Class names
356#define ERR_NUMBER_LABEL_LIMIT_EXCEEDED -1074395943 // Number of Labels exceeded limit of label Image type
357#define ERR_INVALID_DISTANCE_LEVEL -1074395942 // Invalid Color Segmentation distance level
358#define ERR_INVALID_SVM_TYPE -1074395941 // Invalid SVM model type
359#define ERR_INVALID_SVM_KERNEL -1074395940 // Invalid SVM kernel type
360#define ERR_NO_SUPPORT_VECTOR_FOUND -1074395939 // No Support Vector is found at SVM training
361#define ERR_COST_LABEL_NOT_FOUND -1074395938 // Label name is not found in added samples
362#define ERR_EXCEEDED_SVM_MAX_ITERATION -1074395937 // SVM training exceeded maximim Iteration limit
363#define ERR_INVALID_SVM_PARAMETER -1074395936 // Invalid SVM Parameter
364#define ERR_INVALID_IDENTIFICATION_SCORE -1074395935 // Invalid Identification score. Must be between 0-1000.
365#define ERR_INVALID_TEXTURE_FEATURE -1074395934 // Requested for invalid texture feature
366#define ERR_INVALID_COOCCURRENCE_LEVEL -1074395933 // The coOccurrence Level must lie between 1 and the maximum pixel value of an image (255 for U8 image)
367#define ERR_INVALID_WAVELET_SUBBAND -1074395932 // Request for invalid wavelet subBand
368#define ERR_INVALID_FINAL_STEP_SIZE -1074395931 // The final step size must be lesser than the initial step size
369#define ERR_INVALID_ENERGY -1074395930 // Minimum Energy should lie between 0 and 100
370#define ERR_INVALID_TEXTURE_LABEL -1074395929 // The classification label must be texture or defect for texture defect classifier
371#define ERR_INVALID_WAVELET_TYPE -1074395928 // The wavelet type is invalid
372#define ERR_SAME_WAVELET_BANDS_SELECTED -1074395927 // Same Wavelet band is selected multiple times
373#define ERR_IMAGE_SIZE_MISMATCH -1074395926 // The two input image sizes are different
374#define ERR_NUMBER_CLASS -1074395920 // Invalid number of classes.
375#define ERR_INVALID_LUCAS_KANADE_WINDOW_SIZE -1074395888 // Both dimensions of the window size should be odd, greater than 2 and less than 16.
376#define ERR_INVALID_MATRIX_TYPE -1074395887 // The type of matrix supplied to the function is not supported.
377#define ERR_INVALID_OPTICAL_FLOW_TERMINATION_CRITERIA_TYPE -1074395886 // An invalid termination criteria was specified for the optical flow computation.
378#define ERR_LKP_NULL_PYRAMID -1074395885 // The pyramid levels where not properly allocated.
379#define ERR_INVALID_PYRAMID_LEVEL -1074395884 // The pyramid level specified cannot be negative
380#define ERR_INVALID_LKP_KERNEL -1074395883 // The kernel must be symmetric with non-zero coefficients and of odd size
381#define ERR_INVALID_HORN_SCHUNCK_LAMBDA -1074395882 // Invalid smoothing parameter in Horn Schunck operation.
382#define ERR_INVALID_HORN_SCHUNCK_TYPE -1074395881 // Invalid stopping criteria type for Horn Schunck optical flow.
383#define ERR_PARTICLE -1074395880 // Invalid particle.
384#define ERR_BAD_MEASURE -1074395879 // Invalid measure number.
385#define ERR_PROP_NODE_WRITE_NOT_SUPPORTED -1074395878 // The Image Display control does not support writing this property node.
386#define ERR_COLORMODE_REQUIRES_CHANGECOLORSPACE2 -1074395877 // The specified color mode requires the use of imaqChangeColorSpace2.
387#define ERR_UNSUPPORTED_COLOR_MODE -1074395876 // This function does not currently support the color mode you specified.
388#define ERR_BARCODE_PHARMACODE -1074395875 // The barcode is not a valid Pharmacode symbol
389#define ERR_BAD_INDEX -1074395840 // Invalid handle table index.
390#define ERR_INVALID_COMPRESSION_RATIO -1074395837 // The compression ratio must be greater than or equal to 1.
391#define ERR_TOO_MANY_CONTOURS -1074395801 // The ROI contains too many contours.
392#define ERR_PROTECTION -1074395800 // Protection error.
393#define ERR_INTERNAL -1074395799 // Internal error.
394#define ERR_INVALID_CUSTOM_SAMPLE -1074395798 // The size of the feature vector in the custom sample must match the size of those you have already added.
395#define ERR_INVALID_CLASSIFIER_SESSION -1074395797 // Not a valid classifier session.
396#define ERR_INVALID_KNN_METHOD -1074395796 // You requested an invalid Nearest Neighbor classifier method.
397#define ERR_K_TOO_LOW -1074395795 // The k parameter must be greater than two.
398#define ERR_K_TOO_HIGH -1074395794 // The k parameter must be <= the number of samples in each class.
399#define ERR_INVALID_OPERATION_ON_COMPACT_SESSION_ATTEMPTED -1074395793 // This classifier session is compact. Only the Classify and Dispose functions may be called on a compact classifier session.
400#define ERR_CLASSIFIER_SESSION_NOT_TRAINED -1074395792 // This classifier session is not trained. You may only call this function on a trained classifier session.
401#define ERR_CLASSIFIER_INVALID_SESSION_TYPE -1074395791 // This classifier function cannot be called on this type of classifier session.
402#define ERR_INVALID_DISTANCE_METRIC -1074395790 // You requested an invalid distance metric.
403#define ERR_OPENING_NEWER_CLASSIFIER_SESSION -1074395789 // The classifier session you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
404#define ERR_NO_SAMPLES -1074395788 // This operation cannot be performed because you have not added any samples.
405#define ERR_INVALID_CLASSIFIER_TYPE -1074395787 // You requested an invalid classifier type.
406#define ERR_INVALID_PARTICLE_OPTIONS -1074395786 // The sum of Scale Dependence and Symmetry Dependence must be less than 1000.
407#define ERR_NO_PARTICLE -1074395785 // The image yielded no particles.
408#define ERR_INVALID_LIMITS -1074395784 // The limits you supplied are not valid.
409#define ERR_BAD_SAMPLE_INDEX -1074395783 // The Sample Index fell outside the range of Samples.
410#define ERR_DESCRIPTION_TOO_LONG -1074395782 // The description must be <= 255 characters.
411#define ERR_CLASSIFIER_INVALID_ENGINE_TYPE -1074395781 // The engine for this classifier session does not support this operation.
412#define ERR_INVALID_PARTICLE_TYPE -1074395780 // You requested an invalid particle type.
413#define ERR_CANNOT_COMPACT_UNTRAINED -1074395779 // You may only save a session in compact form if it is trained.
414#define ERR_INVALID_KERNEL_SIZE -1074395778 // The Kernel size must be smaller than the image size.
415#define ERR_INCOMPATIBLE_CLASSIFIER_TYPES -1074395777 // The session you read from file must be the same type as the session you passed in.
416#define ERR_INVALID_USE_OF_COMPACT_SESSION_FILE -1074395776 // You can not use a compact classification file with read options other than Read All.
417#define ERR_ROI_HAS_OPEN_CONTOURS -1074395775 // The ROI you passed in may only contain closed contours.
418#define ERR_NO_LABEL -1074395774 // You must pass in a label.
419#define ERR_NO_DEST_IMAGE -1074395773 // You must provide a destination image.
420#define ERR_INVALID_REGISTRATION_METHOD -1074395772 // You provided an invalid registration method.
421#define ERR_OPENING_NEWER_INSPECTION_TEMPLATE -1074395771 // The golden template you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
422#define ERR_INVALID_INSPECTION_TEMPLATE -1074395770 // Invalid golden template.
423#define ERR_INVALID_EDGE_THICKNESS -1074395769 // Edge Thickness to Ignore must be greater than zero.
424#define ERR_INVALID_SCALE -1074395768 // Scale must be greater than zero.
425#define ERR_INVALID_ALIGNMENT -1074395767 // The supplied scale is invalid for your template.
426#define ERR_DEPRECATED_FUNCTION -1074395766 // This backwards-compatibility function can not be used with this session. Use newer, supported functions instead.
427#define ERR_INVALID_NORMALIZATION_METHOD -1074395763 // You must provide a valid normalization method.
428#define ERR_INVALID_NIBLACK_DEVIATION_FACTOR -1074395762 // The deviation factor for Niblack local threshold must be between 0 and 1.
429#define ERR_BOARD_NOT_FOUND -1074395760 // Board not found.
430#define ERR_BOARD_NOT_OPEN -1074395758 // Board not opened.
431#define ERR_DLL_NOT_FOUND -1074395757 // DLL not found.
432#define ERR_DLL_FUNCTION_NOT_FOUND -1074395756 // DLL function not found.
433#define ERR_TRIG_TIMEOUT -1074395754 // Trigger timeout.
434#define ERR_CONTOUR_INVALID_REFINEMENTS -1074395746 // Invalid number specified for maximum contour refinements.
435#define ERR_TOO_MANY_CURVES -1074395745 // Too many curves extracted from image. Raise the edge threshold or reduce the ROI.
436#define ERR_CONTOUR_INVALID_KERNEL_FOR_SMOOTHING -1074395744 // Invalid kernel for contour smoothing. Zero indicates no smoothing, otherwise value must be odd.
437#define ERR_CONTOUR_LINE_INVALID -1074395743 // The contour line fit is invalid. Line segment start and stop must differ.
438#define ERR_CONTOUR_TEMPLATE_IMAGE_INVALID -1074395742 // The template image must be trained with IMAQ Learn Contour Pattern or be the same size as the target image.
439#define ERR_CONTOUR_GPM_FAIL -1074395741 // Matching failed to align the template and target contours.
440#define ERR_CONTOUR_OPENING_NEWER_VERSION -1074395740 // The contour you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
441#define ERR_CONTOUR_CONNECT_DUPLICATE -1074395739 // Only one range is allowed per curve connection constraint type.
442#define ERR_CONTOUR_CONNECT_TYPE -1074395738 // Invalid contour connection constraint type.
443#define ERR_CONTOUR_MATCH_STR_NOT_APPLICABLE -1074395737 // In order to use contour matching, you must provide a template image that has been trained with IMAQ Learn Contour Pattern
444#define ERR_CONTOUR_CURVATURE_KERNEL -1074395736 // Invalid kernel width for curvature calculation. Must be an odd value greater than 1.
445#define ERR_CONTOUR_EXTRACT_SELECTION -1074395735 // Invalid Contour Selection method for contour extraction.
446#define ERR_CONTOUR_EXTRACT_DIRECTION -1074395734 // Invalid Search Direction for contour extraction.
447#define ERR_CONTOUR_EXTRACT_ROI -1074395733 // Invalid ROI for contour extraction. The ROI must contain an annulus, rectangle or rotated rectangle.
448#define ERR_CONTOUR_NO_CURVES -1074395732 // No curves were found in the image.
449#define ERR_CONTOUR_COMPARE_KERNEL -1074395731 // Invalid Smoothing Kernel width for contour comparison. Must be zero or an odd positive integer.
450#define ERR_CONTOUR_COMPARE_SINGLE_IMAGE -1074395730 // If no template image is provided, the target image must contain both a contour with extracted points and a fitted equation.
451#define ERR_CONTOUR_INVALID -1074395729 // Invalid contour image.
452#define ERR_INVALID_2D_BARCODE_SEARCH_MODE -1074395728 // NI Vision does not support the search mode you provided.
453#define ERR_UNSUPPORTED_2D_BARCODE_SEARCH_MODE -1074395727 // NI Vision does not support the search mode you provided for the type of 2D barcode for which you are searching.
454#define ERR_MATCHFACTOR_OBSOLETE -1074395726 // matchFactor has been obsoleted. Instead, set the initialMatchListLength and matchListReductionFactor in the MatchPatternAdvancedOptions structure.
455#define ERR_DATA_VERSION -1074395725 // The data was stored with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this data.
456#define ERR_CUSTOMDATA_INVALID_SIZE -1074395724 // The size you specified is out of the valid range.
457#define ERR_CUSTOMDATA_KEY_NOT_FOUND -1074395723 // The key you specified cannot be found in the image.
458#define ERR_CLASSIFIER_CLASSIFY_IMAGE_WITH_CUSTOM_SESSION -1074395722 // Custom classifier sessions only classify feature vectors. They do not support classifying images.
459#define ERR_INVALID_BIT_DEPTH -1074395721 // NI Vision does not support the bit depth you supplied for the image you supplied.
460#define ERR_BAD_ROI -1074395720 // Invalid ROI.
461#define ERR_BAD_ROI_BOX -1074395719 // Invalid ROI global rectangle.
462#define ERR_LAB_VERSION -1074395718 // The version of LabVIEW or BridgeVIEW you are running does not support this operation.
463#define ERR_INVALID_RANGE -1074395717 // The range you supplied is invalid.
464#define ERR_INVALID_SCALING_METHOD -1074395716 // NI Vision does not support the scaling method you provided.
465#define ERR_INVALID_CALIBRATION_UNIT -1074395715 // NI Vision does not support the calibration unit you supplied.
466#define ERR_INVALID_AXIS_ORIENTATION -1074395714 // NI Vision does not support the axis orientation you supplied.
467#define ERR_VALUE_NOT_IN_ENUM -1074395713 // Value not in enumeration.
468#define ERR_WRONG_REGION_TYPE -1074395712 // You selected a region that is not of the right type.
469#define ERR_NOT_ENOUGH_REGIONS -1074395711 // You specified a viewer that does not contain enough regions.
470#define ERR_TOO_MANY_PARTICLES -1074395710 // The image has too many particles for this process.
471#define ERR_AVI_UNOPENED_SESSION -1074395709 // The AVI session has not been opened.
472#define ERR_AVI_READ_SESSION_REQUIRED -1074395708 // The AVI session is a write session, but this operation requires a read session.
473#define ERR_AVI_WRITE_SESSION_REQUIRED -1074395707 // The AVI session is a read session, but this operation requires a write session.
474#define ERR_AVI_SESSION_ALREADY_OPEN -1074395706 // This AVI session is already open. You must close it before calling the Create or Open functions.
475#define ERR_DATA_CORRUPTED -1074395705 // The data is corrupted and cannot be read.
476#define ERR_INVALID_COMPRESSION_TYPE -1074395704 // Invalid compression type.
477#define ERR_INVALID_TYPE_OF_FLATTEN -1074395703 // Invalid type of flatten.
478#define ERR_INVALID_LENGTH -1074395702 // The length of the edge detection line must be greater than zero.
479#define ERR_INVALID_MATRIX_SIZE_RANGE -1074395701 // The maximum Data Matrix barcode size must be equal to or greater than the minimum Data Matrix barcode size.
480#define ERR_REQUIRES_WIN2000_OR_NEWER -1074395700 // The function requires the operating system to be Microsoft Windows 2000 or newer.
481#define ERR_INVALID_CALIBRATION_METHOD -1074395662 // Invalid calibration method requested
482#define ERR_INVALID_OPERATION_ON_COMPACT_CALIBRATION_ATTEMPTED -1074395661 // This calibration is compact. Re-Learning calibration and retrieving thumbnails are not possible with this calibration
483#define ERR_INVALID_POLYNOMIAL_MODEL_K_COUNT -1074395660 // Invalid number of K values
484#define ERR_INVALID_DISTORTION_MODEL -1074395659 // Invalid distortion model type
485#define ERR_CAMERA_MODEL_NOT_AVAILABLE -1074395658 // Camera Model is not learned
486#define ERR_INVALID_THUMBNAIL_INDEX -1074395657 // Supplied thumbnail index is invalid
487#define ERR_SMOOTH_CONTOURS_MUST_BE_SAME -1074395656 // You must specify the same value for the smooth contours advanced match option for all templates you want to match.
488#define ERR_ENABLE_CALIBRATION_SUPPORT_MUST_BE_SAME -1074395655 // You must specify the same value for the enable calibration support advanced match option for all templates you want to match.
489#define ERR_GRADING_INFORMATION_NOT_FOUND -1074395654 // The source image does not contain grading information. You must prepare the source image for grading when reading the Data Matrix, and you cannot change the contents of the source image between reading and grading the Data Matrix.
490#define ERR_OPENING_NEWER_MULTIPLE_GEOMETRIC_TEMPLATE -1074395653 // The multiple geometric matching template you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
491#define ERR_OPENING_NEWER_GEOMETRIC_MATCHING_TEMPLATE -1074395652 // The geometric matching template you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
492#define ERR_EDGE_FILTER_SIZE_MUST_BE_SAME -1074395651 // You must specify the same edge filter size for all the templates you want to match.
493#define ERR_CURVE_EXTRACTION_MODE_MUST_BE_SAME -1074395650 // You must specify the same curve extraction mode for all the templates you want to match.
494#define ERR_INVALID_GEOMETRIC_FEATURE_TYPE -1074395649 // The geometric feature type specified is invalid.
495#define ERR_TEMPLATE_NOT_LEARNED -1074395648 // You supplied a template that was not learned.
496#define ERR_INVALID_MULTIPLE_GEOMETRIC_TEMPLATE -1074395647 // Invalid multiple geometric template.
497#define ERR_NO_TEMPLATE_TO_LEARN -1074395646 // Need at least one template to learn.
498#define ERR_INVALID_NUMBER_OF_LABELS -1074395645 // You supplied an invalid number of labels.
499#define ERR_LABEL_TOO_LONG -1074395644 // Labels must be <= 255 characters.
500#define ERR_INVALID_NUMBER_OF_MATCH_OPTIONS -1074395643 // You supplied an invalid number of match options.
501#define ERR_LABEL_NOT_FOUND -1074395642 // Cannot find a label that matches the one you specified.
502#define ERR_DUPLICATE_LABEL -1074395641 // Duplicate labels are not allowed.
503#define ERR_TOO_MANY_ZONES -1074395640 // The number of zones found exceeded the capacity of the algorithm.
504#define ERR_INVALID_HATCH_STYLE -1074395639 // The hatch style for the window background is invalid.
505#define ERR_INVALID_FILL_STYLE -1074395638 // The fill style for the window background is invalid.
506#define ERR_HARDWARE_DOESNT_SUPPORT_NONTEARING -1074395637 // Your hardware is not supported by DirectX and cannot be put into NonTearing mode.
507#define ERR_DIRECTX_NOT_FOUND -1074395636 // DirectX is required for this feature. Please install the latest version..
508#define ERR_INVALID_SHAPE_DESCRIPTOR -1074395635 // The passed shape descriptor is invalid.
509#define ERR_INVALID_MAX_MATCH_OVERLAP -1074395634 // Invalid max match overlap. Values must be between -1 and 100.
510#define ERR_INVALID_MIN_MATCH_SEPARATION_SCALE -1074395633 // Invalid minimum match separation scale. Values must be greater than or equal to -1.
511#define ERR_INVALID_MIN_MATCH_SEPARATION_ANGLE -1074395632 // Invalid minimum match separation angle. Values must be between -1 and 360.
512#define ERR_INVALID_MIN_MATCH_SEPARATION_DISTANCE -1074395631 // Invalid minimum match separation distance. Values must be greater than or equal to -1.
513#define ERR_INVALID_MAXIMUM_FEATURES_LEARNED -1074395630 // Invalid maximum number of features learn. Values must be integers greater than zero.
514#define ERR_INVALID_MAXIMUM_PIXEL_DISTANCE_FROM_LINE -1074395629 // Invalid maximum pixel distance from line. Values must be positive real numbers.
515#define ERR_INVALID_GEOMETRIC_MATCHING_TEMPLATE -1074395628 // Invalid geometric matching template image.
516#define ERR_NOT_ENOUGH_TEMPLATE_FEATURES_1 -1074395627 // The template does not contain enough features for geometric matching.
517#define ERR_NOT_ENOUGH_TEMPLATE_FEATURES -1074395626 // The template does not contain enough features for geometric matching.
518#define ERR_INVALID_MATCH_CONSTRAINT_TYPE -1074395625 // You specified an invalid value for the match constraint value of the range settings.
519#define ERR_INVALID_OCCLUSION_RANGE -1074395624 // Invalid occlusion range. Valid values for the bounds range from 0 to 100 and the upper bound must be greater than or equal to the lower bound.
520#define ERR_INVALID_SCALE_RANGE -1074395623 // Invalid scale range. Values for the lower bound must be a positive real numbers and the upper bound must be greater than or equal to the lower bound.
521#define ERR_INVALID_MATCH_GEOMETRIC_PATTERN_SETUP_DATA -1074395622 // Invalid match geometric pattern setup data.
522#define ERR_INVALID_LEARN_GEOMETRIC_PATTERN_SETUP_DATA -1074395621 // Invalid learn geometric pattern setup data.
523#define ERR_INVALID_CURVE_EXTRACTION_MODE -1074395620 // Invalid curve extraction mode.
524#define ERR_TOO_MANY_OCCLUSION_RANGES -1074395619 // You can specify only one occlusion range.
525#define ERR_TOO_MANY_SCALE_RANGES -1074395618 // You can specify only one scale range.
526#define ERR_INVALID_NUMBER_OF_FEATURES_RANGE -1074395617 // The minimum number of features must be less than or equal to the maximum number of features.
527#define ERR_INVALID_EDGE_FILTER_SIZE -1074395616 // Invalid edge filter size.
528#define ERR_INVALID_MINIMUM_FEATURE_STRENGTH -1074395615 // Invalid minimum strength for features. Values must be positive real numbers.
529#define ERR_INVALID_MINIMUM_FEATURE_ASPECT_RATIO -1074395614 // Invalid aspect ratio for rectangular features. Values must be positive real numbers in the range 0.01 to 1.0.
530#define ERR_INVALID_MINIMUM_FEATURE_LENGTH -1074395613 // Invalid minimum length for linear features. Values must be integers greater than 0.
531#define ERR_INVALID_MINIMUM_FEATURE_RADIUS -1074395612 // Invalid minimum radius for circular features. Values must be integers greater than 0.
532#define ERR_INVALID_MINIMUM_RECTANGLE_DIMENSION -1074395611 // Invalid minimum rectangle dimension. Values must be integers greater than 0.
533#define ERR_INVALID_INITIAL_MATCH_LIST_LENGTH -1074395610 // Invalid initial match list length. Values must be integers greater than 5.
534#define ERR_INVALID_SUBPIXEL_TOLERANCE -1074395609 // Invalid subpixel tolerance. Values must be positive real numbers.
535#define ERR_INVALID_SUBPIXEL_ITERATIONS -1074395608 // Invalid number of subpixel iterations. Values must be integers greater 10.
536#define ERR_INVALID_MAXIMUM_FEATURES_PER_MATCH -1074395607 // Invalid maximum number of features used per match. Values must be integers greater than or equal to zero.
537#define ERR_INVALID_MINIMUM_FEATURES_TO_MATCH -1074395606 // Invalid minimum number of features used for matching. Values must be integers greater than zero.
538#define ERR_INVALID_MAXIMUM_END_POINT_GAP -1074395605 // Invalid maximum end point gap. Valid values range from 0 to 32767.
539#define ERR_INVALID_COLUMN_STEP -1074395604 // Invalid column step. Valid range is 1 to 255.
540#define ERR_INVALID_ROW_STEP -1074395603 // Invalid row step. Valid range is 1 to 255.
541#define ERR_INVALID_MINIMUM_CURVE_LENGTH -1074395602 // Invalid minimum length. Valid values must be greater than or equal to zero.
542#define ERR_INVALID_EDGE_THRESHOLD -1074395601 // Invalid edge threshold. Valid values range from 1 to 360.
543#define ERR_INFO_NOT_FOUND -1074395600 // You must provide information about the subimage within the browser.
544#define ERR_NIOCR_INVALID_ACCEPTANCE_LEVEL -1074395598 // The acceptance level is outside the valid range of 0 to 1000.
545#define ERR_NIOCR_NOT_A_VALID_SESSION -1074395597 // Not a valid OCR session.
546#define ERR_NIOCR_INVALID_CHARACTER_SIZE -1074395596 // Invalid character size. Character size must be >= 1.
547#define ERR_NIOCR_INVALID_THRESHOLD_MODE -1074395595 // Invalid threshold mode value.
548#define ERR_NIOCR_INVALID_SUBSTITUTION_CHARACTER -1074395594 // Invalid substitution character. Valid substitution characters are ASCII values that range from 1 to 254.
549#define ERR_NIOCR_INVALID_NUMBER_OF_BLOCKS -1074395593 // Invalid number of blocks. Number of blocks must be >= 4 and <= 50.
550#define ERR_NIOCR_INVALID_READ_STRATEGY -1074395592 // Invalid read strategy.
551#define ERR_NIOCR_INVALID_CHARACTER_INDEX -1074395591 // Invalid character index.
552#define ERR_NIOCR_INVALID_NUMBER_OF_VALID_CHARACTER_POSITIONS -1074395590 // Invalid number of character positions. Valid values range from 0 to 255.
553#define ERR_NIOCR_INVALID_LOW_THRESHOLD_VALUE -1074395589 // Invalid low threshold value. Valid threshold values range from 0 to 255.
554#define ERR_NIOCR_INVALID_HIGH_THRESHOLD_VALUE -1074395588 // Invalid high threshold value. Valid threshold values range from 0 to 255.
555#define ERR_NIOCR_INVALID_THRESHOLD_RANGE -1074395587 // The low threshold must be less than the high threshold.
556#define ERR_NIOCR_INVALID_LOWER_THRESHOLD_LIMIT -1074395586 // Invalid lower threshold limit. Valid lower threshold limits range from 0 to 255.
557#define ERR_NIOCR_INVALID_UPPER_THRESHOLD_LIMIT -1074395585 // Invalid upper threshold limit. Valid upper threshold limits range from 0 to 255.
558#define ERR_NIOCR_INVALID_THRESHOLD_LIMITS -1074395584 // The lower threshold limit must be less than the upper threshold limit.
559#define ERR_NIOCR_INVALID_MIN_CHAR_SPACING -1074395583 // Invalid minimum character spacing value. Character spacing must be >= 1 pixel.
560#define ERR_NIOCR_INVALID_MAX_HORIZ_ELEMENT_SPACING -1074395582 // Invalid maximum horizontal element spacing value. Maximum horizontal element spacing must be >= 0.
561#define ERR_NIOCR_INVALID_MAX_VERT_ELEMENT_SPACING -1074395581 // Invalid maximum vertical element spacing value. Maximum vertical element spacing must be >= 0.
562#define ERR_NIOCR_INVALID_MIN_BOUNDING_RECT_WIDTH -1074395580 // Invalid minimum bounding rectangle width. Minimum bounding rectangle width must be >= 1.
563#define ERR_NIOCR_INVALID_ASPECT_RATIO -1074395579 // Invalid aspect ratio value. The aspect ratio must be zero or >= 100.
564#define ERR_NIOCR_INVALID_CHARACTER_SET_FILE -1074395578 // Invalid or corrupt character set file.
565#define ERR_NIOCR_CHARACTER_VALUE_CANNOT_BE_EMPTYSTRING -1074395577 // The character value must not be an empty string.
566#define ERR_NIOCR_CHARACTER_VALUE_TOO_LONG -1074395576 // Character values must be <=255 characters.
567#define ERR_NIOCR_INVALID_NUMBER_OF_EROSIONS -1074395575 // Invalid number of erosions. The number of erosions must be >= 0.
568#define ERR_NIOCR_CHARACTER_SET_DESCRIPTION_TOO_LONG -1074395574 // The character set description must be <=255 characters.
569#define ERR_NIOCR_INVALID_CHARACTER_SET_FILE_VERSION -1074395573 // The character set file was created by a newer version of NI Vision. Upgrade to the latest version of NI Vision to read the character set file.
570#define ERR_NIOCR_INTEGER_VALUE_FOR_STRING_ATTRIBUTE -1074395572 // You must specify characters for a string. A string cannot contain integers.
571#define ERR_NIOCR_GET_ONLY_ATTRIBUTE -1074395571 // This attribute is read-only.
572#define ERR_NIOCR_INTEGER_VALUE_FOR_BOOLEAN_ATTRIBUTE -1074395570 // This attribute requires a Boolean value.
573#define ERR_NIOCR_INVALID_ATTRIBUTE -1074395569 // Invalid attribute.
574#define ERR_NIOCR_STRING_VALUE_FOR_INTEGER_ATTRIBUTE -1074395568 // This attribute requires integer values.
575#define ERR_NIOCR_STRING_VALUE_FOR_BOOLEAN_ATTRIBUTE -1074395567 // String values are invalid for this attribute. Enter a boolean value.
576#define ERR_NIOCR_BOOLEAN_VALUE_FOR_INTEGER_ATTRIBUTE -1074395566 // Boolean values are not valid for this attribute. Enter an integer value.
577#define ERR_NIOCR_MUST_BE_SINGLE_CHARACTER -1074395565 // Requires a single-character string.
578#define ERR_NIOCR_INVALID_PREDEFINED_CHARACTER -1074395564 // Invalid predefined character value.
579#define ERR_NIOCR_UNLICENSED -1074395563 // This copy of NI OCR is unlicensed.
580#define ERR_NIOCR_BOOLEAN_VALUE_FOR_STRING_ATTRIBUTE -1074395562 // String values are not valid for this attribute. Enter a Boolean value.
581#define ERR_NIOCR_INVALID_NUMBER_OF_CHARACTERS -1074395561 // The number of characters in the character value must match the number of objects in the image.
582#define ERR_NIOCR_INVALID_OBJECT_INDEX -1074395560 // Invalid object index.
583#define ERR_NIOCR_INVALID_READ_OPTION -1074395559 // Invalid read option.
584#define ERR_NIOCR_INVALID_CHARACTER_SIZE_RANGE -1074395558 // The minimum character size must be less than the maximum character size.
585#define ERR_NIOCR_INVALID_BOUNDING_RECT_WIDTH_RANGE -1074395557 // The minimum character bounding rectangle width must be less than the maximum character bounding rectangle width.
586#define ERR_NIOCR_INVALID_BOUNDING_RECT_HEIGHT_RANGE -1074395556 // The minimum character bounding rectangle height must be less than the maximum character bounding rectangle height.
587#define ERR_NIOCR_INVALID_SPACING_RANGE -1074395555 // The maximum horizontal element spacing value must not exceed the minimum character spacing value.
588#define ERR_NIOCR_INVALID_READ_RESOLUTION -1074395554 // Invalid read resolution.
589#define ERR_NIOCR_INVALID_MIN_BOUNDING_RECT_HEIGHT -1074395553 // Invalid minimum bounding rectangle height. The minimum bounding rectangle height must be >= 1.
590#define ERR_NIOCR_NOT_A_VALID_CHARACTER_SET -1074395552 // Not a valid character set.
591#define ERR_NIOCR_RENAME_REFCHAR -1074395551 // A trained OCR character cannot be renamed while it is a reference character.
592#define ERR_NIOCR_INVALID_CHARACTER_VALUE -1074395550 // A character cannot have an ASCII value of 255.
593#define ERR_NIOCR_INVALID_NUMBER_OF_OBJECTS_TO_VERIFY -1074395549 // The number of objects found does not match the number of expected characters or patterns to verify.
594#define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_CAP -1074395421 // The specified value for the filter cap for block matching is invalid.
595#define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_SIZE -1074395420 // The specified prefilter size for block matching is invalid.
596#define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_TYPE -1074395419 // The specified prefilter type for block matching is invalid.
597#define ERR_INVALID_STEREO_BLOCKMATCHING_NUMDISPARITIES -1074395418 // The specifed value for number of disparities is invalid.
598#define ERR_INVALID_STEREO_BLOCKMATCHING_WINDOW_SIZE -1074395417 // The specified window size for block matching is invalid.
599#define ERR_3DVISION_INVALID_SESSION_TYPE -1074395416 // This 3D vision function cannot be called on this type of 3d vision session.
600#define ERR_TOO_MANY_3DVISION_SESSIONS -1074395415 // There are too many 3D vision sessions open. You must close a session before you can open another one.
601#define ERR_OPENING_NEWER_3DVISION_SESSION -1074395414 // The 3D vision session you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
602#define ERR_INVALID_STEREO_BLOCKMATCHING_FILTERTYPE -1074395413 // You have specified an invalid filter type for block matching.
603#define ERR_INVALID_STEREO_CAMERA_POSITION -1074395412 // You have requested results at an invalid camera position in the stereo setup.
604#define ERR_INVALID_3DVISION_SESSION -1074395411 // Not a valid 3D Vision session.
605#define ERR_INVALID_ICONS_PER_LINE -1074395410 // NI Vision does not support less than one icon per line.
606#define ERR_INVALID_SUBPIXEL_DIVISIONS -1074395409 // Invalid subpixel divisions.
607#define ERR_INVALID_DETECTION_MODE -1074395408 // Invalid detection mode.
608#define ERR_INVALID_CONTRAST -1074395407 // Invalid contrast value. Valid contrast values range from 0 to 255.
609#define ERR_COORDSYS_NOT_FOUND -1074395406 // The coordinate system could not be found on this image.
610#define ERR_INVALID_TEXTORIENTATION -1074395405 // NI Vision does not support the text orientation value you supplied.
611#define ERR_INVALID_INTERPOLATIONMETHOD_FOR_UNWRAP -1074395404 // UnwrapImage does not support the interpolation method value you supplied. Valid interpolation methods are zero order and bilinear.
612#define ERR_EXTRAINFO_VERSION -1074395403 // The image was created in a newer version of NI Vision. Upgrade to the latest version of NI Vision to use this image.
613#define ERR_INVALID_MAXPOINTS -1074395402 // The function does not support the maximum number of points that you specified.
614#define ERR_INVALID_MATCHFACTOR -1074395401 // The function does not support the matchFactor that you specified.
615#define ERR_MULTICORE_OPERATION -1074395400 // The operation you have given Multicore Options is invalid. Please see the available enumeration values for Multicore Operation.
616#define ERR_MULTICORE_INVALID_ARGUMENT -1074395399 // You have given Multicore Options an invalid argument.
617#define ERR_COMPLEX_IMAGE_REQUIRED -1074395397 // A complex image is required.
618#define ERR_COLOR_IMAGE_REQUIRED -1074395395 // The input image must be a color image.
619#define ERR_COLOR_SPECTRUM_MASK -1074395394 // The color mask removes too much color information.
620#define ERR_COLOR_TEMPLATE_IMAGE_TOO_SMALL -1074395393 // The color template image is too small.
621#define ERR_COLOR_TEMPLATE_IMAGE_TOO_LARGE -1074395392 // The color template image is too large.
622#define ERR_COLOR_TEMPLATE_IMAGE_HUE_CONTRAST_TOO_LOW -1074395391 // The contrast in the hue plane of the image is too low for learning shape features.
623#define ERR_COLOR_TEMPLATE_IMAGE_LUMINANCE_CONTRAST_TOO_LOW -1074395390 // The contrast in the luminance plane of the image is too low to learn shape features.
624#define ERR_COLOR_LEARN_SETUP_DATA -1074395389 // Invalid color learn setup data.
625#define ERR_COLOR_LEARN_SETUP_DATA_SHAPE -1074395388 // Invalid color learn setup data.
626#define ERR_COLOR_MATCH_SETUP_DATA -1074395387 // Invalid color match setup data.
627#define ERR_COLOR_MATCH_SETUP_DATA_SHAPE -1074395386 // Invalid color match setup data.
628#define ERR_COLOR_ROTATION_REQUIRES_SHAPE_FEATURE -1074395385 // Rotation-invariant color pattern matching requires a feature mode including shape.
629#define ERR_COLOR_TEMPLATE_DESCRIPTOR -1074395384 // Invalid color template image.
630#define ERR_COLOR_TEMPLATE_DESCRIPTOR_1 -1074395383 // Invalid color template image.
631#define ERR_COLOR_TEMPLATE_DESCRIPTOR_2 -1074395382 // Invalid color template image.
632#define ERR_COLOR_TEMPLATE_DESCRIPTOR_3 -1074395381 // Invalid color template image.
633#define ERR_COLOR_TEMPLATE_DESCRIPTOR_4 -1074395380 // Invalid color template image.
634#define ERR_COLOR_TEMPLATE_DESCRIPTOR_5 -1074395379 // Invalid color template image.
635#define ERR_COLOR_TEMPLATE_DESCRIPTOR_6 -1074395378 // Invalid color template image.
636#define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT -1074395377 // Invalid color template image.
637#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSHIFT -1074395376 // The color template image does not contain data required for shift-invariant color matching.
638#define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT_1 -1074395375 // Invalid color template image.
639#define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT_2 -1074395374 // Invalid color template image.
640#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION -1074395373 // Invalid color template image.
641#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOROTATION -1074395372 // The color template image does not contain data required for rotation-invariant color matching.
642#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_1 -1074395371 // Invalid color template image.
643#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_2 -1074395370 // Invalid color template image.
644#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_3 -1074395369 // Invalid color template image.
645#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_4 -1074395368 // Invalid color template image.
646#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_5 -1074395367 // Invalid color template image.
647#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSHAPE -1074395366 // The color template image does not contain data required for color matching in shape feature mode.
648#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSPECTRUM -1074395365 // The color template image does not contain data required for color matching in color feature mode.
649#define ERR_IGNORE_COLOR_SPECTRUM_SET -1074395364 // The ignore color spectra array is invalid.
650#define ERR_INVALID_SUBSAMPLING_RATIO -1074395363 // Invalid subsampling ratio.
651#define ERR_INVALID_WIDTH -1074395362 // Invalid pixel width.
652#define ERR_INVALID_STEEPNESS -1074395361 // Invalid steepness.
653#define ERR_COMPLEX_PLANE -1074395360 // Invalid complex plane.
654#define ERR_INVALID_COLOR_IGNORE_MODE -1074395357 // Invalid color ignore mode.
655#define ERR_INVALID_MIN_MATCH_SCORE -1074395356 // Invalid minimum match score. Acceptable values range from 0 to 1000.
656#define ERR_INVALID_NUM_MATCHES_REQUESTED -1074395355 // Invalid number of matches requested. You must request a minimum of one match.
657#define ERR_INVALID_COLOR_WEIGHT -1074395354 // Invalid color weight. Acceptable values range from 0 to 1000.
658#define ERR_INVALID_SEARCH_STRATEGY -1074395353 // Invalid search strategy.
659#define ERR_INVALID_FEATURE_MODE -1074395352 // Invalid feature mode.
660#define ERR_INVALID_RECT -1074395351 // NI Vision does not support rectangles with negative widths or negative heights.
661#define ERR_INVALID_VISION_INFO -1074395350 // NI Vision does not support the vision information type you supplied.
662#define ERR_INVALID_SKELETONMETHOD -1074395349 // NI Vision does not support the SkeletonMethod value you supplied.
663#define ERR_INVALID_3DPLANE -1074395348 // NI Vision does not support the 3DPlane value you supplied.
664#define ERR_INVALID_3DDIRECTION -1074395347 // NI Vision does not support the 3DDirection value you supplied.
665#define ERR_INVALID_INTERPOLATIONMETHOD_FOR_ROTATE -1074395346 // imaqRotate does not support the InterpolationMethod value you supplied.
666#define ERR_INVALID_FLIPAXIS -1074395345 // NI Vision does not support the axis of symmetry you supplied.
667#define ERR_FILE_FILENAME_NULL -1074395343 // You must pass a valid file name. Do not pass in NULL.
668#define ERR_INVALID_SIZETYPE -1074395340 // NI Vision does not support the SizeType value you supplied.
669#define ERR_UNKNOWN_ALGORITHM -1074395336 // You specified the dispatch status of an unknown algorithm.
670#define ERR_DISPATCH_STATUS_CONFLICT -1074395335 // You are attempting to set the same algorithm to dispatch and to not dispatch. Remove one of the conflicting settings.
671#define ERR_INVALID_CONVERSIONSTYLE -1074395334 // NI Vision does not support the Conversion Method value you supplied.
672#define ERR_INVALID_VERTICAL_TEXT_ALIGNMENT -1074395333 // NI Vision does not support the VerticalTextAlignment value you supplied.
673#define ERR_INVALID_COMPAREFUNCTION -1074395332 // NI Vision does not support the CompareFunction value you supplied.
674#define ERR_INVALID_BORDERMETHOD -1074395331 // NI Vision does not support the BorderMethod value you supplied.
675#define ERR_INVALID_BORDER_SIZE -1074395330 // Invalid border size. Acceptable values range from 0 to 50.
676#define ERR_INVALID_OUTLINEMETHOD -1074395329 // NI Vision does not support the OutlineMethod value you supplied.
677#define ERR_INVALID_INTERPOLATIONMETHOD -1074395328 // NI Vision does not support the InterpolationMethod value you supplied.
678#define ERR_INVALID_SCALINGMODE -1074395327 // NI Vision does not support the ScalingMode value you supplied.
679#define ERR_INVALID_DRAWMODE_FOR_LINE -1074395326 // imaqDrawLineOnImage does not support the DrawMode value you supplied.
680#define ERR_INVALID_DRAWMODE -1074395325 // NI Vision does not support the DrawMode value you supplied.
681#define ERR_INVALID_SHAPEMODE -1074395324 // NI Vision does not support the ShapeMode value you supplied.
682#define ERR_INVALID_FONTCOLOR -1074395323 // NI Vision does not support the FontColor value you supplied.
683#define ERR_INVALID_TEXTALIGNMENT -1074395322 // NI Vision does not support the TextAlignment value you supplied.
684#define ERR_INVALID_MORPHOLOGYMETHOD -1074395321 // NI Vision does not support the MorphologyMethod value you supplied.
685#define ERR_TEMPLATE_EMPTY -1074395320 // The template image is empty.
686#define ERR_INVALID_SUBPIX_TYPE -1074395319 // NI Vision does not support the interpolation type you supplied.
687#define ERR_INSF_POINTS -1074395318 // You supplied an insufficient number of points to perform this operation.
688#define ERR_UNDEF_POINT -1074395317 // You specified a point that lies outside the image.
689#define ERR_INVALID_KERNEL_CODE -1074395316 // Invalid kernel code.
690#define ERR_INEFFICIENT_POINTS -1074395315 // You supplied an inefficient set of points to match the minimum score.
691#define ERR_WRITE_FILE_NOT_SUPPORTED -1074395313 // Writing files is not supported on this device.
692#define ERR_LCD_CALIBRATE -1074395312 // The input image does not seem to be a valid LCD or LED calibration image.
693#define ERR_INVALID_COLOR_SPECTRUM -1074395311 // The color spectrum array you provided has an invalid number of elements or contains an element set to not-a-number (NaN).
694#define ERR_INVALID_PALETTE_TYPE -1074395310 // NI Vision does not support the PaletteType value you supplied.
695#define ERR_INVALID_WINDOW_THREAD_POLICY -1074395309 // NI Vision does not support the WindowThreadPolicy value you supplied.
696#define ERR_INVALID_COLORSENSITIVITY -1074395308 // NI Vision does not support the ColorSensitivity value you supplied.
697#define ERR_PRECISION_NOT_GTR_THAN_0 -1074395307 // The precision parameter must be greater than 0.
698#define ERR_INVALID_TOOL -1074395306 // NI Vision does not support the Tool value you supplied.
699#define ERR_INVALID_REFERENCEMODE -1074395305 // NI Vision does not support the ReferenceMode value you supplied.
700#define ERR_INVALID_MATHTRANSFORMMETHOD -1074395304 // NI Vision does not support the MathTransformMethod value you supplied.
701#define ERR_INVALID_NUM_OF_CLASSES -1074395303 // Invalid number of classes for auto threshold. Acceptable values range from 2 to 256.
702#define ERR_INVALID_THRESHOLDMETHOD -1074395302 // NI Vision does not support the threshold method value you supplied.
703#define ERR_ROI_NOT_2_LINES -1074395301 // The ROI you passed into imaqGetMeterArc must consist of two lines.
704#define ERR_INVALID_METERARCMODE -1074395300 // NI Vision does not support the MeterArcMode value you supplied.
705#define ERR_INVALID_COMPLEXPLANE -1074395299 // NI Vision does not support the ComplexPlane value you supplied.
706#define ERR_COMPLEXPLANE_NOT_REAL_OR_IMAGINARY -1074395298 // You can perform this operation on a real or an imaginary ComplexPlane only.
707#define ERR_INVALID_PARTICLEINFOMODE -1074395297 // NI Vision does not support the ParticleInfoMode value you supplied.
708#define ERR_INVALID_BARCODETYPE -1074395296 // NI Vision does not support the BarcodeType value you supplied.
709#define ERR_INVALID_INTERPOLATIONMETHOD_INTERPOLATEPOINTS -1074395295 // imaqInterpolatePoints does not support the InterpolationMethod value you supplied.
710#define ERR_CONTOUR_INDEX_OUT_OF_RANGE -1074395294 // The contour index you supplied is larger than the number of contours in the ROI.
711#define ERR_CONTOURID_NOT_FOUND -1074395293 // The supplied ContourID did not correlate to a contour inside the ROI.
712#define ERR_POINTS_ARE_COLLINEAR -1074395292 // Do not supply collinear points for this operation.
713#define ERR_SHAPEMATCH_BADIMAGEDATA -1074395291 // Shape Match requires the image to contain only pixel values of 0 or 1.
714#define ERR_SHAPEMATCH_BADTEMPLATE -1074395290 // The template you supplied for ShapeMatch contains no shape information.
715#define ERR_CONTAINER_CAPACITY_EXCEEDED_UINT_MAX -1074395289 // The operation would have exceeded the capacity of an internal container, which is limited to 4294967296 unique elements.
716#define ERR_CONTAINER_CAPACITY_EXCEEDED_INT_MAX -1074395288 // The operation would have exceeded the capacity of an internal container, which is limited to 2147483648 unique elements.
717#define ERR_INVALID_LINE -1074395287 // The line you provided contains two identical points, or one of the coordinate locations for the line is not a number (NaN).
718#define ERR_INVALID_CONCENTRIC_RAKE_DIRECTION -1074395286 // Invalid concentric rake direction.
719#define ERR_INVALID_SPOKE_DIRECTION -1074395285 // Invalid spoke direction.
720#define ERR_INVALID_EDGE_PROCESS -1074395284 // Invalid edge process.
721#define ERR_INVALID_RAKE_DIRECTION -1074395283 // Invalid rake direction.
722#define ERR_CANT_DRAW_INTO_VIEWER -1074395282 // Unable to draw to viewer. You must have the latest version of the control.
723#define ERR_IMAGE_SMALLER_THAN_BORDER -1074395281 // Your image must be larger than its border size for this operation.
724#define ERR_ROI_NOT_RECT -1074395280 // The ROI must only have a single Rectangle contour.
725#define ERR_ROI_NOT_POLYGON -1074395279 // ROI is not a polygon.
726#define ERR_LCD_NOT_NUMERIC -1074395278 // LCD image is not a number.
727#define ERR_BARCODE_CHECKSUM -1074395277 // The decoded barcode information did not pass the checksum test.
728#define ERR_LINES_PARALLEL -1074395276 // You specified parallel lines for the meter ROI.
729#define ERR_INVALID_BROWSER_IMAGE -1074395275 // Invalid browser image.
730#define ERR_DIV_BY_ZERO -1074395270 // Cannot divide by zero.
731#define ERR_NULL_POINTER -1074395269 // Null pointer.
732#define ERR_LINEAR_COEFF -1074395268 // The linear equations are not independent.
733#define ERR_COMPLEX_ROOT -1074395267 // The roots of the equation are complex.
734#define ERR_BARCODE -1074395265 // The barcode does not match the type you specified.
735#define ERR_LCD_NO_SEGMENTS -1074395263 // No lit segment.
736#define ERR_LCD_BAD_MATCH -1074395262 // The LCD does not form a known digit.
737#define ERR_GIP_RANGE -1074395261 // An internal error occurred while attempting to access an invalid coordinate on an image.
738#define ERR_HEAP_TRASHED -1074395260 // An internal memory error occurred.
739#define ERR_BAD_FILTER_WIDTH -1074395258 // The filter width must be odd for the Canny operator.
740#define ERR_INVALID_EDGE_DIR -1074395257 // You supplied an invalid edge direction in the Canny operator.
741#define ERR_EVEN_WINDOW_SIZE -1074395256 // The window size must be odd for the Canny operator.
742#define ERR_INVALID_LEARN_MODE -1074395253 // Invalid learn mode.
743#define ERR_LEARN_SETUP_DATA -1074395252 // Invalid learn setup data.
744#define ERR_INVALID_MATCH_MODE -1074395251 // Invalid match mode.
745#define ERR_MATCH_SETUP_DATA -1074395250 // Invalid match setup data.
746#define ERR_ROTATION_ANGLE_RANGE_TOO_LARGE -1074395249 // At least one range in the array of rotation angle ranges exceeds 360 degrees.
747#define ERR_TOO_MANY_ROTATION_ANGLE_RANGES -1074395248 // The array of rotation angle ranges contains too many ranges.
748#define ERR_TEMPLATE_DESCRIPTOR -1074395247 // Invalid template descriptor.
749#define ERR_TEMPLATE_DESCRIPTOR_1 -1074395246 // Invalid template descriptor.
750#define ERR_TEMPLATE_DESCRIPTOR_2 -1074395245 // Invalid template descriptor.
751#define ERR_TEMPLATE_DESCRIPTOR_3 -1074395244 // Invalid template descriptor.
752#define ERR_TEMPLATE_DESCRIPTOR_4 -1074395243 // The template descriptor was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to use this template.
753#define ERR_TEMPLATE_DESCRIPTOR_ROTATION -1074395242 // Invalid template descriptor.
754#define ERR_TEMPLATE_DESCRIPTOR_NOROTATION -1074395241 // The template descriptor does not contain data required for rotation-invariant matching.
755#define ERR_TEMPLATE_DESCRIPTOR_ROTATION_1 -1074395240 // Invalid template descriptor.
756#define ERR_TEMPLATE_DESCRIPTOR_SHIFT -1074395239 // Invalid template descriptor.
757#define ERR_TEMPLATE_DESCRIPTOR_NOSHIFT -1074395238 // The template descriptor does not contain data required for shift-invariant matching.
758#define ERR_TEMPLATE_DESCRIPTOR_SHIFT_1 -1074395237 // Invalid template descriptor.
759#define ERR_TEMPLATE_DESCRIPTOR_NOSCALE -1074395236 // The template descriptor does not contain data required for scale-invariant matching.
760#define ERR_TEMPLATE_IMAGE_CONTRAST_TOO_LOW -1074395235 // The template image does not contain enough contrast.
761#define ERR_TEMPLATE_IMAGE_TOO_SMALL -1074395234 // The template image is too small.
762#define ERR_TEMPLATE_IMAGE_TOO_LARGE -1074395233 // The template image is too large.
763#define ERR_TOO_MANY_OCR_SESSIONS -1074395214 // There are too many OCR sessions open. You must close a session before you can open another one.
764#define ERR_OCR_TEMPLATE_WRONG_SIZE -1074395212 // The size of the template string must match the size of the string you are trying to correct.
765#define ERR_OCR_BAD_TEXT_TEMPLATE -1074395211 // The supplied text template contains nonstandard characters that cannot be generated by OCR.
766#define ERR_OCR_CANNOT_MATCH_TEXT_TEMPLATE -1074395210 // At least one character in the text template was of a lexical class that did not match the supplied character reports.
767#define ERR_OCR_LIB_INIT -1074395203 // The OCR library cannot be initialized correctly.
768#define ERR_OCR_LOAD_LIBRARY -1074395201 // There was a failure when loading one of the internal OCR engine or LabView libraries.
769#define ERR_OCR_INVALID_PARAMETER -1074395200 // One of the parameters supplied to the OCR function that generated this error is invalid.
770#define ERR_MARKER_INFORMATION_NOT_SUPPLIED -1074395199 // Marker image and points are not supplied
771#define ERR_INCOMPATIBLE_MARKER_IMAGE_SIZE -1074395198 // Source Image and Marker Image should be of same size.
772#define ERR_BOTH_MARKER_INPUTS_SUPPLIED -1074395197 // Both Marker Image and Points are supplied.
773#define ERR_INVALID_MORPHOLOGICAL_OPERATION -1074395196 // Invalid Morphological Operation.
774#define ERR_IMAGE_CONTAINS_NAN_VALUES -1074395195 // Float image contains NaN values
775#define ERR_OVERLAY_EXTRAINFO_OPENING_NEW_VERSION -1074395194 // The overlay information you tried to open was created with a newer version of NI Vision. Upgrade to the latest version of NI Vision to read this file.
776#define ERR_NO_CLAMP_FOUND -1074395193 // No valid clamp was found with the current configuration
777#define ERR_NO_CLAMP_WITHIN_ANGLE_RANGE -1074395192 // Supplied angle range for clamp is insufficient
778#define ERR_GHT_INVALID_USE_ALL_CURVES_VALUE -1074395188 // The use all curves advanced option specified during learn is not supported
779#define ERR_INVALID_GAUSS_SIGMA_VALUE -1074395187 // The sigma value specified for the Gaussian filter is too small.
780#define ERR_INVALID_GAUSS_FILTER_TYPE -1074395186 // The specified Gaussian filter type is not supported.
781#define ERR_INVALID_CONTRAST_REVERSAL_MODE -1074395185 // The contrast reversal mode specified during matching is invalid.
782#define ERR_INVALID_ROTATION_RANGE -1074395184 // Invalid roation angle range. The upper bound must be greater than or equal to the lower bound.
783#define ERR_GHT_INVALID_MINIMUM_LEARN_ANGLE_VALUE -1074395183 // The minimum rotation angle value specifed during learning of the template is not supported.
784#define ERR_GHT_INVALID_MAXIMUM_LEARN_ANGLE_VALUE -1074395182 // The maximum rotation angle value specifed during learning of the template is not supported.
785#define ERR_GHT_INVALID_MAXIMUM_LEARN_SCALE_FACTOR -1074395181 // The maximum scale factor specifed during learning of the template is not supported.
786#define ERR_GHT_INVALID_MINIMUM_LEARN_SCALE_FACTOR -1074395180 // The minimum scale factor specifed during learning of the template is not supported.
787#define ERR_OCR_PREPROCESSING_FAILED -1074395179 // The OCR engine failed during the preprocessing stage.
788#define ERR_OCR_RECOGNITION_FAILED -1074395178 // The OCR engine failed during the recognition stage.
789#define ERR_OCR_BAD_USER_DICTIONARY -1074395175 // The provided filename is not valid user dictionary filename.
790#define ERR_OCR_INVALID_AUTOORIENTMODE -1074395174 // NI Vision does not support the AutoOrientMode value you supplied.
791#define ERR_OCR_INVALID_LANGUAGE -1074395173 // NI Vision does not support the Language value you supplied.
792#define ERR_OCR_INVALID_CHARACTERSET -1074395172 // NI Vision does not support the CharacterSet value you supplied.
793#define ERR_OCR_INI_FILE_NOT_FOUND -1074395171 // The system could not locate the initialization file required for OCR initialization.
794#define ERR_OCR_INVALID_CHARACTERTYPE -1074395170 // NI Vision does not support the CharacterType value you supplied.
795#define ERR_OCR_INVALID_RECOGNITIONMODE -1074395169 // NI Vision does not support the RecognitionMode value you supplied.
796#define ERR_OCR_INVALID_AUTOCORRECTIONMODE -1074395168 // NI Vision does not support the AutoCorrectionMode value you supplied.
797#define ERR_OCR_INVALID_OUTPUTDELIMITER -1074395167 // NI Vision does not support the OutputDelimiter value you supplied.
798#define ERR_OCR_BIN_DIR_NOT_FOUND -1074395166 // The system could not locate the OCR binary directory required for OCR initialization.
799#define ERR_OCR_WTS_DIR_NOT_FOUND -1074395165 // The system could not locate the OCR weights directory required for OCR initialization.
800#define ERR_OCR_ADD_WORD_FAILED -1074395164 // The supplied word could not be added to the user dictionary.
801#define ERR_OCR_INVALID_CHARACTERPREFERENCE -1074395163 // NI Vision does not support the CharacterPreference value you supplied.
802#define ERR_OCR_INVALID_CORRECTIONMODE -1074395162 // NI Vision does not support the CorrectionMethod value you supplied.
803#define ERR_OCR_INVALID_CORRECTIONLEVEL -1074395161 // NI Vision does not support the CorrectionLevel value you supplied.
804#define ERR_OCR_INVALID_MAXPOINTSIZE -1074395160 // NI Vision does not support the maximum point size you supplied. Valid values range from 4 to 72.
805#define ERR_OCR_INVALID_TOLERANCE -1074395159 // NI Vision does not support the tolerance value you supplied. Valid values are non-negative.
806#define ERR_OCR_INVALID_CONTRASTMODE -1074395158 // NI Vision does not support the ContrastMode value you supplied.
807#define ERR_OCR_SKEW_DETECT_FAILED -1074395156 // The OCR attempted to detected the text skew and failed.
808#define ERR_OCR_ORIENT_DETECT_FAILED -1074395155 // The OCR attempted to detected the text orientation and failed.
809#define ERR_FONT_FILE_FORMAT -1074395153 // Invalid font file format.
810#define ERR_FONT_FILE_NOT_FOUND -1074395152 // Font file not found.
811#define ERR_OCR_CORRECTION_FAILED -1074395151 // The OCR engine failed during the correction stage.
812#define ERR_INVALID_ROUNDING_MODE -1074395150 // NI Vision does not support the RoundingMode value you supplied.
813#define ERR_DUPLICATE_TRANSFORM_TYPE -1074395149 // Found a duplicate transform type in the properties array. Each properties array may only contain one behavior for each transform type.
814#define ERR_OVERLAY_GROUP_NOT_FOUND -1074395148 // Overlay Group Not Found.
815#define ERR_BARCODE_RSSLIMITED -1074395147 // The barcode is not a valid RSS Limited symbol
816#define ERR_QR_DETECTION_VERSION -1074395146 // Couldn't determine the correct version of the QR code.
817#define ERR_QR_INVALID_READ -1074395145 // Invalid read of the QR code.
818#define ERR_QR_INVALID_BARCODE -1074395144 // The barcode that was read contains invalid parameters.
819#define ERR_QR_DETECTION_MODE -1074395143 // The data stream that was demodulated could not be read because the mode was not detected.
820#define ERR_QR_DETECTION_MODELTYPE -1074395142 // Couldn't determine the correct model of the QR code.
821#define ERR_OCR_NO_TEXT_FOUND -1074395141 // The OCR engine could not find any text in the supplied region.
822#define ERR_OCR_CHAR_REPORT_CORRUPTED -1074395140 // One of the character reports is no longer usable by the system.
823#define ERR_IMAQ_QR_DIMENSION_INVALID -1074395139 // Invalid Dimensions.
824#define ERR_OCR_REGION_TOO_SMALL -1074395138 // The OCR region provided was too small to have contained any characters.
825#define _FIRST_ERR ERR_SYSTEM_ERROR
826#define _LAST_ERR ERR_OCR_REGION_TOO_SMALL
827
828//============================================================================
829// Enumerated Types
830//============================================================================
831typedef enum PointSymbol_enum {
832 IMAQ_POINT_AS_PIXEL = 0, //A single pixel represents a point in the overlay.
833 IMAQ_POINT_AS_CROSS = 1, //A cross represents a point in the overlay.
834 IMAQ_POINT_USER_DEFINED = 2, //The pattern supplied by the user represents a point in the overlay.
835 IMAQ_POINT_SYMBOL_SIZE_GUARD = 0xFFFFFFFF
836} PointSymbol;
837
838typedef enum MeasurementValue_enum {
839 IMAQ_AREA = 0, //Surface area of the particle in pixels.
840 IMAQ_AREA_CALIBRATED = 1, //Surface area of the particle in calibrated units.
841 IMAQ_NUM_HOLES = 2, //Number of holes in the particle.
842 IMAQ_AREA_OF_HOLES = 3, //Surface area of the holes in calibrated units.
843 IMAQ_TOTAL_AREA = 4, //Total surface area (holes and particle) in calibrated units.
844 IMAQ_IMAGE_AREA = 5, //Surface area of the entire image in calibrated units.
845 IMAQ_PARTICLE_TO_IMAGE = 6, //Ratio, expressed as a percentage, of the surface area of a particle in relation to the total area of the particle.
846 IMAQ_PARTICLE_TO_TOTAL = 7, //Ratio, expressed as a percentage, of the surface area of a particle in relation to the total area of the particle.
847 IMAQ_CENTER_MASS_X = 8, //X-coordinate of the center of mass.
848 IMAQ_CENTER_MASS_Y = 9, //Y-coordinate of the center of mass.
849 IMAQ_LEFT_COLUMN = 10, //Left edge of the bounding rectangle.
850 IMAQ_TOP_ROW = 11, //Top edge of the bounding rectangle.
851 IMAQ_RIGHT_COLUMN = 12, //Right edge of the bounding rectangle.
852 IMAQ_BOTTOM_ROW = 13, //Bottom edge of bounding rectangle.
853 IMAQ_WIDTH = 14, //Width of bounding rectangle in calibrated units.
854 IMAQ_HEIGHT = 15, //Height of bounding rectangle in calibrated units.
855 IMAQ_MAX_SEGMENT_LENGTH = 16, //Length of longest horizontal line segment.
856 IMAQ_MAX_SEGMENT_LEFT_COLUMN = 17, //Leftmost x-coordinate of longest horizontal line segment.
857 IMAQ_MAX_SEGMENT_TOP_ROW = 18, //Y-coordinate of longest horizontal line segment.
858 IMAQ_PERIMETER = 19, //Outer perimeter of the particle.
859 IMAQ_PERIMETER_OF_HOLES = 20, //Perimeter of all holes within the particle.
860 IMAQ_SIGMA_X = 21, //Sum of the particle pixels on the x-axis.
861 IMAQ_SIGMA_Y = 22, //Sum of the particle pixels on the y-axis.
862 IMAQ_SIGMA_XX = 23, //Sum of the particle pixels on the x-axis squared.
863 IMAQ_SIGMA_YY = 24, //Sum of the particle pixels on the y-axis squared.
864 IMAQ_SIGMA_XY = 25, //Sum of the particle pixels on the x-axis and y-axis.
865 IMAQ_PROJ_X = 26, //Projection corrected in X.
866 IMAQ_PROJ_Y = 27, //Projection corrected in Y.
867 IMAQ_INERTIA_XX = 28, //Inertia matrix coefficient in XX.
868 IMAQ_INERTIA_YY = 29, //Inertia matrix coefficient in YY.
869 IMAQ_INERTIA_XY = 30, //Inertia matrix coefficient in XY.
870 IMAQ_MEAN_H = 31, //Mean length of horizontal segments.
871 IMAQ_MEAN_V = 32, //Mean length of vertical segments.
872 IMAQ_MAX_INTERCEPT = 33, //Length of longest segment of the convex hull.
873 IMAQ_MEAN_INTERCEPT = 34, //Mean length of the chords in an object perpendicular to its max intercept.
874 IMAQ_ORIENTATION = 35, //The orientation based on the inertia of the pixels in the particle.
875 IMAQ_EQUIV_ELLIPSE_MINOR = 36, //Total length of the axis of the ellipse having the same area as the particle and a major axis equal to half the max intercept.
876 IMAQ_ELLIPSE_MAJOR = 37, //Total length of major axis having the same area and perimeter as the particle in calibrated units.
877 IMAQ_ELLIPSE_MINOR = 38, //Total length of minor axis having the same area and perimeter as the particle in calibrated units.
878 IMAQ_ELLIPSE_RATIO = 39, //Fraction of major axis to minor axis.
879 IMAQ_RECT_LONG_SIDE = 40, //Length of the long side of a rectangle having the same area and perimeter as the particle in calibrated units.
880 IMAQ_RECT_SHORT_SIDE = 41, //Length of the short side of a rectangle having the same area and perimeter as the particle in calibrated units.
881 IMAQ_RECT_RATIO = 42, //Ratio of rectangle long side to rectangle short side.
882 IMAQ_ELONGATION = 43, //Max intercept/mean perpendicular intercept.
883 IMAQ_COMPACTNESS = 44, //Particle area/(height x width).
884 IMAQ_HEYWOOD = 45, //Particle perimeter/perimeter of the circle having the same area as the particle.
885 IMAQ_TYPE_FACTOR = 46, //A complex factor relating the surface area to the moment of inertia.
886 IMAQ_HYDRAULIC = 47, //Particle area/particle perimeter.
887 IMAQ_WADDLE_DISK = 48, //Diameter of the disk having the same area as the particle in user units.
888 IMAQ_DIAGONAL = 49, //Diagonal of an equivalent rectangle in user units.
889 IMAQ_MEASUREMENT_VALUE_SIZE_GUARD = 0xFFFFFFFF
890} MeasurementValue;
891
892typedef enum ScalingMode_enum {
893 IMAQ_SCALE_LARGER = 0, //The function duplicates pixels to make the image larger.
894 IMAQ_SCALE_SMALLER = 1, //The function subsamples pixels to make the image smaller.
895 IMAQ_SCALING_MODE_SIZE_GUARD = 0xFFFFFFFF
896} ScalingMode;
897
898typedef enum ScalingMethod_enum {
899 IMAQ_SCALE_TO_PRESERVE_AREA = 0, //Correction functions scale the image such that the features in the corrected image have the same area as the features in the input image.
900 IMAQ_SCALE_TO_FIT = 1, //Correction functions scale the image such that the corrected image is the same size as the input image.
901 IMAQ_SCALING_METHOD_SIZE_GUARD = 0xFFFFFFFF
902} ScalingMethod;
903
904typedef enum ReferenceMode_enum {
905 IMAQ_COORD_X_Y = 0, //This method requires three elements in the points array.
906 IMAQ_COORD_ORIGIN_X = 1, //This method requires two elements in the points array.
907 IMAQ_REFERENCE_MODE_SIZE_GUARD = 0xFFFFFFFF
908} ReferenceMode;
909
910typedef enum RectOrientation_enum {
911 IMAQ_BASE_INSIDE = 0, //Specifies that the base of the rectangular image lies along the inside edge of the annulus.
912 IMAQ_BASE_OUTSIDE = 1, //Specifies that the base of the rectangular image lies along the outside edge of the annulus.
913 IMAQ_TEXT_ORIENTATION_SIZE_GUARD = 0xFFFFFFFF
914} RectOrientation;
915
916typedef enum ShapeMode_enum {
917 IMAQ_SHAPE_RECT = 1, //The function draws a rectangle.
918 IMAQ_SHAPE_OVAL = 2, //The function draws an oval.
919 IMAQ_SHAPE_MODE_SIZE_GUARD = 0xFFFFFFFF
920} ShapeMode;
921
922typedef enum PolarityType_enum {
923 IMAQ_EDGE_RISING = 1, //The edge is a rising edge.
924 IMAQ_EDGE_FALLING = -1, //The edge is a falling edge.
925 IMAQ_POLARITY_TYPE_SIZE_GUARD = 0xFFFFFFFF
926} PolarityType;
927
928typedef enum SizeType_enum {
929 IMAQ_KEEP_LARGE = 0, //The function keeps large particles remaining after the erosion.
930 IMAQ_KEEP_SMALL = 1, //The function keeps small particles eliminated by the erosion.
931 IMAQ_SIZE_TYPE_SIZE_GUARD = 0xFFFFFFFF
932} SizeType;
933
934typedef enum Plane3D_enum {
935 IMAQ_3D_REAL = 0, //The function shows the real part of complex images.
936 IMAQ_3D_IMAGINARY = 1, //The function shows the imaginary part of complex images.
937 IMAQ_3D_MAGNITUDE = 2, //The function shows the magnitude part of complex images.
938 IMAQ_3D_PHASE = 3, //The function shows the phase part of complex images.
939 IMAQ_PLANE_3D_SIZE_GUARD = 0xFFFFFFFF
940} Plane3D;
941
942typedef enum PhotometricMode_enum {
943 IMAQ_WHITE_IS_ZERO = 0, //The function interprets zero-value pixels as white.
944 IMAQ_BLACK_IS_ZERO = 1, //The function interprets zero-value pixels as black.
945 IMAQ_PHOTOMETRIC_MODE_SIZE_GUARD = 0xFFFFFFFF
946} PhotometricMode;
947
948typedef enum ParticleInfoMode_enum {
949 IMAQ_BASIC_INFO = 0, //The function returns only the following elements of each report: area, calibratedArea, boundingRect.
950 IMAQ_ALL_INFO = 1, //The function returns all the information about each particle.
951 IMAQ_PARTICLE_INFO_MODE_SIZE_GUARD = 0xFFFFFFFF
952} ParticleInfoMode;
953
954typedef enum OutlineMethod_enum {
955 IMAQ_EDGE_DIFFERENCE = 0, //The function uses a method that produces continuous contours by highlighting each pixel where an intensity variation occurs between itself and its three upper-left neighbors.
956 IMAQ_EDGE_GRADIENT = 1, //The function uses a method that outlines contours where an intensity variation occurs along the vertical axis.
957 IMAQ_EDGE_PREWITT = 2, //The function uses a method that extracts the outer contours of objects.
958 IMAQ_EDGE_ROBERTS = 3, //The function uses a method that outlines the contours that highlight pixels where an intensity variation occurs along the diagonal axes.
959 IMAQ_EDGE_SIGMA = 4, //The function uses a method that outlines contours and details by setting pixels to the mean value found in their neighborhood, if their deviation from this value is not significant.
960 IMAQ_EDGE_SOBEL = 5, //The function uses a method that extracts the outer contours of objects.
961 IMAQ_OUTLINE_METHOD_SIZE_GUARD = 0xFFFFFFFF
962} OutlineMethod;
963
964typedef enum MorphologyMethod_enum {
965 IMAQ_AUTOM = 0, //The function uses a transformation that generates simpler particles that contain fewer details.
966 IMAQ_CLOSE = 1, //The function uses a transformation that fills tiny holes and smooths boundaries.
967 IMAQ_DILATE = 2, //The function uses a transformation that eliminates tiny holes isolated in particles and expands the contour of the particles according to the template defined by the structuring element.
968 IMAQ_ERODE = 3, //The function uses a transformation that eliminates pixels isolated in the background and erodes the contour of particles according to the template defined by the structuring element.
969 IMAQ_GRADIENT = 4, //The function uses a transformation that leaves only the pixels that would be added by the dilation process or eliminated by the erosion process.
970 IMAQ_GRADIENTOUT = 5, //The function uses a transformation that leaves only the pixels that would be added by the dilation process.
971 IMAQ_GRADIENTIN = 6, //The function uses a transformation that leaves only the pixels that would be eliminated by the erosion process.
972 IMAQ_HITMISS = 7, //The function uses a transformation that extracts each pixel located in a neighborhood exactly matching the template defined by the structuring element.
973 IMAQ_OPEN = 8, //The function uses a transformation that removes small particles and smooths boundaries.
974 IMAQ_PCLOSE = 9, //The function uses a transformation that fills tiny holes and smooths the inner contour of particles according to the template defined by the structuring element.
975 IMAQ_POPEN = 10, //The function uses a transformation that removes small particles and smooths the contour of particles according to the template defined by the structuring element.
976 IMAQ_THICK = 11, //The function uses a transformation that adds to an image those pixels located in a neighborhood that matches a template specified by the structuring element.
977 IMAQ_THIN = 12, //The function uses a transformation that eliminates pixels that are located in a neighborhood matching a template specified by the structuring element.
978 IMAQ_MORPHOLOGY_METHOD_SIZE_GUARD = 0xFFFFFFFF
979} MorphologyMethod;
980
981typedef enum MeterArcMode_enum {
982 IMAQ_METER_ARC_ROI = 0, //The function uses the roi parameter and ignores the base, start, and end parameters.
983 IMAQ_METER_ARC_POINTS = 1, //The function uses the base,start, and end parameters and ignores the roi parameter.
984 IMAQ_METER_ARC_MODE_SIZE_GUARD = 0xFFFFFFFF
985} MeterArcMode;
986
987typedef enum RakeDirection_enum {
988 IMAQ_LEFT_TO_RIGHT = 0, //The function searches from the left side of the search area to the right side of the search area.
989 IMAQ_RIGHT_TO_LEFT = 1, //The function searches from the right side of the search area to the left side of the search area.
990 IMAQ_TOP_TO_BOTTOM = 2, //The function searches from the top side of the search area to the bottom side of the search area.
991 IMAQ_BOTTOM_TO_TOP = 3, //The function searches from the bottom side of the search area to the top side of the search area.
992 IMAQ_RAKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
993} RakeDirection;
994
995typedef enum TruncateMode_enum {
996 IMAQ_TRUNCATE_LOW = 0, //The function truncates low frequencies.
997 IMAQ_TRUNCATE_HIGH = 1, //The function truncates high frequencies.
998 IMAQ_TRUNCATE_MODE_SIZE_GUARD = 0xFFFFFFFF
999} TruncateMode;
1000
1001typedef enum AttenuateMode_enum {
1002 IMAQ_ATTENUATE_LOW = 0, //The function attenuates low frequencies.
1003 IMAQ_ATTENUATE_HIGH = 1, //The function attenuates high frequencies.
1004 IMAQ_ATTENUATE_MODE_SIZE_GUARD = 0xFFFFFFFF
1005} AttenuateMode;
1006
1007typedef enum WindowThreadPolicy_enum {
1008 IMAQ_CALLING_THREAD = 0, //Using this policy, NI Vision creates windows in the thread that makes the first display function call for a given window number.
1009 IMAQ_SEPARATE_THREAD = 1, //Using this policy, NI Vision creates windows in a separate thread and processes messages for the windows automatically.
1010 IMAQ_WINDOW_THREAD_POLICY_SIZE_GUARD = 0xFFFFFFFF
1011} WindowThreadPolicy;
1012
1013typedef enum WindowOptions_enum {
1014 IMAQ_WIND_RESIZABLE = 1, //When present, the user may resize the window interactively.
1015 IMAQ_WIND_TITLEBAR = 2, //When present, the title bar on the window is visible.
1016 IMAQ_WIND_CLOSEABLE = 4, //When present, the close box is available.
1017 IMAQ_WIND_TOPMOST = 8, //When present, the window is always on top.
1018 IMAQ_WINDOW_OPTIONS_SIZE_GUARD = 0xFFFFFFFF
1019} WindowOptions;
1020
1021typedef enum WindowEventType_enum {
1022 IMAQ_NO_EVENT = 0, //No event occurred since the last call to imaqGetLastEvent().
1023 IMAQ_CLICK_EVENT = 1, //The user clicked on a window.
1024 IMAQ_DRAW_EVENT = 2, //The user drew an ROI in a window.
1025 IMAQ_MOVE_EVENT = 3, //The user moved a window.
1026 IMAQ_SIZE_EVENT = 4, //The user sized a window.
1027 IMAQ_SCROLL_EVENT = 5, //The user scrolled a window.
1028 IMAQ_ACTIVATE_EVENT = 6, //The user activated a window.
1029 IMAQ_CLOSE_EVENT = 7, //The user closed a window.
1030 IMAQ_DOUBLE_CLICK_EVENT = 8, //The user double-clicked in a window.
1031 IMAQ_WINDOW_EVENT_TYPE_SIZE_GUARD = 0xFFFFFFFF
1032} WindowEventType;
1033
1034typedef enum VisionInfoType_enum {
1035 IMAQ_ANY_VISION_INFO = 0, //The function checks if any extra vision information is associated with the image.
1036 IMAQ_PATTERN_MATCHING_INFO = 1, //The function checks if any pattern matching template information is associated with the image.
1037 IMAQ_CALIBRATION_INFO = 2, //The function checks if any calibration information is associated with the image.
1038 IMAQ_OVERLAY_INFO = 3, //The function checks if any overlay information is associated with the image.
1039 IMAQ_VISION_INFO_TYPE_SIZE_GUARD = 0xFFFFFFFF
1040} VisionInfoType;
1041
1042typedef enum SearchStrategy_enum {
1043 IMAQ_CONSERVATIVE = 1, //Instructs the pattern matching algorithm to use the largest possible amount of information from the image at the expense of slowing down the speed of the algorithm.
1044 IMAQ_BALANCED = 2, //Instructs the pattern matching algorithm to balance the amount of information from the image it uses with the speed of the algorithm.
1045 IMAQ_AGGRESSIVE = 3, //Instructs the pattern matching algorithm to use a lower amount of information from the image, which allows the algorithm to run quickly but at the expense of accuracy.
1046 IMAQ_VERY_AGGRESSIVE = 4, //Instructs the pattern matching algorithm to use the smallest possible amount of information from the image, which allows the algorithm to run at the highest speed possible but at the expense of accuracy.
1047 IMAQ_SEARCH_STRATEGY_SIZE_GUARD = 0xFFFFFFFF
1048} SearchStrategy;
1049
1050typedef enum TwoEdgePolarityType_enum {
1051 IMAQ_NONE = 0, //The function ignores the polarity of the edges.
1052 IMAQ_RISING_FALLING = 1, //The polarity of the first edge is rising (dark to light) and the polarity of the second edge is falling (light to dark).
1053 IMAQ_FALLING_RISING = 2, //The polarity of the first edge is falling (light to dark) and the polarity of the second edge is rising (dark to light).
1054 IMAQ_RISING_RISING = 3, //The polarity of the first edge is rising (dark to light) and the polarity of the second edge is rising (dark to light).
1055 IMAQ_FALLING_FALLING = 4, //The polarity of the first edge is falling (light to dark) and the polarity of the second edge is falling (light to dark).
1056 IMAQ_TWO_EDGE_POLARITY_TYPE_SIZE_GUARD = 0xFFFFFFFF
1057} TwoEdgePolarityType;
1058
1059typedef enum ObjectType_enum {
1060 IMAQ_BRIGHT_OBJECTS = 0, //The function detects bright objects.
1061 IMAQ_DARK_OBJECTS = 1, //The function detects dark objects.
1062 IMAQ_OBJECT_TYPE_SIZE_GUARD = 0xFFFFFFFF
1063} ObjectType;
1064
1065typedef enum Tool_enum {
1066 IMAQ_NO_TOOL = -1, //No tool is in the selected state.
1067 IMAQ_SELECTION_TOOL = 0, //The selection tool selects an existing ROI in an image.
1068 IMAQ_POINT_TOOL = 1, //The point tool draws a point on the image.
1069 IMAQ_LINE_TOOL = 2, //The line tool draws a line on the image.
1070 IMAQ_RECTANGLE_TOOL = 3, //The rectangle tool draws a rectangle on the image.
1071 IMAQ_OVAL_TOOL = 4, //The oval tool draws an oval on the image.
1072 IMAQ_POLYGON_TOOL = 5, //The polygon tool draws a polygon on the image.
1073 IMAQ_CLOSED_FREEHAND_TOOL = 6, //The closed freehand tool draws closed freehand shapes on the image.
1074 IMAQ_ANNULUS_TOOL = 7, //The annulus tool draws annuluses on the image.
1075 IMAQ_ZOOM_TOOL = 8, //The zoom tool controls the zoom of an image.
1076 IMAQ_PAN_TOOL = 9, //The pan tool shifts the view of the image.
1077 IMAQ_POLYLINE_TOOL = 10, //The polyline tool draws a series of connected straight lines on the image.
1078 IMAQ_FREEHAND_TOOL = 11, //The freehand tool draws freehand lines on the image.
1079 IMAQ_ROTATED_RECT_TOOL = 12, //The rotated rectangle tool draws rotated rectangles on the image.
1080 IMAQ_ZOOM_OUT_TOOL = 13, //The zoom out tool controls the zoom of an image.
1081 IMAQ_TOOL_SIZE_GUARD = 0xFFFFFFFF
1082} Tool;
1083
1084typedef enum TIFFCompressionType_enum {
1085 IMAQ_NO_COMPRESSION = 0, //The function does not compress the TIFF file.
1086 IMAQ_JPEG = 1, //The function uses the JPEG compression algorithm to compress the TIFF file.
1087 IMAQ_RUN_LENGTH = 2, //The function uses a run length compression algorithm to compress the TIFF file.
1088 IMAQ_ZIP = 3, //The function uses the ZIP compression algorithm to compress the TIFF file.
1089 IMAQ_TIFF_COMPRESSION_TYPE_SIZE_GUARD = 0xFFFFFFFF
1090} TIFFCompressionType;
1091
1092typedef enum ThresholdMethod_enum {
1093 IMAQ_THRESH_CLUSTERING = 0, //The function uses a method that sorts the histogram of the image within a discrete number of classes corresponding to the number of phases perceived in an image.
1094 IMAQ_THRESH_ENTROPY = 1, //The function uses a method that is best for detecting particles that are present in minuscule proportions on the image.
1095 IMAQ_THRESH_METRIC = 2, //The function uses a method that is well-suited for images in which classes are not too disproportionate.
1096 IMAQ_THRESH_MOMENTS = 3, //The function uses a method that is suited for images that have poor contrast.
1097 IMAQ_THRESH_INTERCLASS = 4, //The function uses a method that is well-suited for images in which classes have well separated pixel value distributions.
1098 IMAQ_THRESHOLD_METHOD_SIZE_GUARD = 0xFFFFFFFF
1099} ThresholdMethod;
1100
1101typedef enum TextAlignment_enum {
1102 IMAQ_LEFT = 0, //Left aligns the text at the reference point.
1103 IMAQ_CENTER = 1, //Centers the text around the reference point.
1104 IMAQ_RIGHT = 2, //Right aligns the text at the reference point.
1105 IMAQ_TEXT_ALIGNMENT_SIZE_GUARD = 0xFFFFFFFF
1106} TextAlignment;
1107
1108typedef enum SpokeDirection_enum {
1109 IMAQ_OUTSIDE_TO_INSIDE = 0, //The function searches from the outside of the search area to the inside of the search area.
1110 IMAQ_INSIDE_TO_OUTSIDE = 1, //The function searches from the inside of the search area to the outside of the search area.
1111 IMAQ_SPOKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
1112} SpokeDirection;
1113
1114typedef enum SkeletonMethod_enum {
1115 IMAQ_SKELETON_L = 0, //Uses an L-shaped structuring element in the skeleton function.
1116 IMAQ_SKELETON_M = 1, //Uses an M-shaped structuring element in the skeleton function.
1117 IMAQ_SKELETON_INVERSE = 2, //Uses an L-shaped structuring element on an inverse of the image in the skeleton function.
1118 IMAQ_SKELETON_METHOD_SIZE_GUARD = 0xFFFFFFFF
1119} SkeletonMethod;
1120
1121typedef enum VerticalTextAlignment_enum {
1122 IMAQ_BOTTOM = 0, //Aligns the bottom of the text at the reference point.
1123 IMAQ_TOP = 1, //Aligns the top of the text at the reference point.
1124 IMAQ_BASELINE = 2, //Aligns the baseline of the text at the reference point.
1125 IMAQ_VERTICAL_TEXT_ALIGNMENT_SIZE_GUARD = 0xFFFFFFFF
1126} VerticalTextAlignment;
1127
1128typedef enum CalibrationROI_enum {
1129 IMAQ_FULL_IMAGE = 0, //The correction function corrects the whole image, regardless of the user-defined or calibration-defined ROIs.
1130 IMAQ_CALIBRATION_ROI = 1, //The correction function corrects the area defined by the calibration ROI.
1131 IMAQ_USER_ROI = 2, //The correction function corrects the area defined by the user-defined ROI.
1132 IMAQ_CALIBRATION_AND_USER_ROI = 3, //The correction function corrects the area defined by the intersection of the user-defined ROI and the calibration ROI.
1133 IMAQ_CALIBRATION_OR_USER_ROI = 4, //The correction function corrects the area defined by the union of the user-defined ROI and the calibration ROI.
1134 IMAQ_CALIBRATION_ROI_SIZE_GUARD = 0xFFFFFFFF
1135} CalibrationROI;
1136
1137typedef enum ContourType_enum {
1138 IMAQ_EMPTY_CONTOUR = 0, //The contour is empty.
1139 IMAQ_POINT = 1, //The contour represents a point.
1140 IMAQ_LINE = 2, //The contour represents a line.
1141 IMAQ_RECT = 3, //The contour represents a rectangle.
1142 IMAQ_OVAL = 4, //The contour represents an oval.
1143 IMAQ_CLOSED_CONTOUR = 5, //The contour represents a series of connected points where the last point connects to the first.
1144 IMAQ_OPEN_CONTOUR = 6, //The contour represents a series of connected points where the last point does not connect to the first.
1145 IMAQ_ANNULUS = 7, //The contour represents an annulus.
1146 IMAQ_ROTATED_RECT = 8, //The contour represents a rotated rectangle.
1147 IMAQ_CONTOUR_TYPE_SIZE_GUARD = 0xFFFFFFFF
1148} ContourType;
1149
1150typedef enum MathTransformMethod_enum {
1151 IMAQ_TRANSFORM_LINEAR = 0, //The function uses linear remapping.
1152 IMAQ_TRANSFORM_LOG = 1, //The function uses logarithmic remapping.
1153 IMAQ_TRANSFORM_EXP = 2, //The function uses exponential remapping.
1154 IMAQ_TRANSFORM_SQR = 3, //The function uses square remapping.
1155 IMAQ_TRANSFORM_SQRT = 4, //The function uses square root remapping.
1156 IMAQ_TRANSFORM_POWX = 5, //The function uses power X remapping.
1157 IMAQ_TRANSFORM_POW1X = 6, //The function uses power 1/X remapping.
1158 IMAQ_MATH_TRANSFORM_METHOD_SIZE_GUARD = 0xFFFFFFFF
1159} MathTransformMethod;
1160
1161typedef enum ComplexPlane_enum {
1162 IMAQ_REAL = 0, //The function operates on the real plane of the complex image.
1163 IMAQ_IMAGINARY = 1, //The function operates on the imaginary plane of the complex image.
1164 IMAQ_MAGNITUDE = 2, //The function operates on the magnitude plane of the complex image.
1165 IMAQ_PHASE = 3, //The function operates on the phase plane of the complex image.
1166 IMAQ_COMPLEX_PLANE_SIZE_GUARD = 0xFFFFFFFF
1167} ComplexPlane;
1168
1169typedef enum PaletteType_enum {
1170 IMAQ_PALETTE_GRAY = 0, //The function uses a palette that has a gradual gray-level variation from black to white.
1171 IMAQ_PALETTE_BINARY = 1, //The function uses a palette of 16 cycles of 16 different colors that is useful with binary images.
1172 IMAQ_PALETTE_GRADIENT = 2, //The function uses a palette that has a gradation from red to white with a prominent range of light blue in the upper value range.
1173 IMAQ_PALETTE_RAINBOW = 3, //The function uses a palette that has a gradation from blue to red with a prominent range of greens in the middle value range.
1174 IMAQ_PALETTE_TEMPERATURE = 4, //The function uses a palette that has a gradation from light brown to dark brown.
1175 IMAQ_PALETTE_USER = 5, //The function uses a palette defined by the user.
1176 IMAQ_PALETTE_TYPE_SIZE_GUARD = 0xFFFFFFFF
1177} PaletteType;
1178
1179typedef enum ColorSensitivity_enum {
1180 IMAQ_SENSITIVITY_LOW = 0, //Instructs the algorithm to divide the hue plane into a low number of sectors, allowing for simple color analysis.
1181 IMAQ_SENSITIVITY_MED = 1, //Instructs the algorithm to divide the hue plane into a medium number of sectors, allowing for color analysis that balances sensitivity and complexity.
1182 IMAQ_SENSITIVITY_HIGH = 2, //Instructs the algorithm to divide the hue plane into a high number of sectors, allowing for complex, sensitive color analysis.
1183 IMAQ_COLOR_SENSITIVITY_SIZE_GUARD = 0xFFFFFFFF
1184} ColorSensitivity;
1185
1186typedef enum ColorMode_enum {
1187 IMAQ_RGB = 0, //The function operates in the RGB (Red, Blue, Green) color space.
1188 IMAQ_HSL = 1, //The function operates in the HSL (Hue, Saturation, Luminance) color space.
1189 IMAQ_HSV = 2, //The function operates in the HSV (Hue, Saturation, Value) color space.
1190 IMAQ_HSI = 3, //The function operates in the HSI (Hue, Saturation, Intensity) color space.
1191 IMAQ_CIE = 4, //The function operates in the CIE L*a*b* color space.
1192 IMAQ_CIEXYZ = 5, //The function operates in the CIE XYZ color space.
1193 IMAQ_COLOR_MODE_SIZE_GUARD = 0xFFFFFFFF
1194} ColorMode;
1195
1196typedef enum DetectionMode_enum {
1197 IMAQ_DETECT_PEAKS = 0, //The function detects peaks.
1198 IMAQ_DETECT_VALLEYS = 1, //The function detects valleys.
1199 IMAQ_DETECTION_MODE_SIZE_GUARD = 0xFFFFFFFF
1200} DetectionMode;
1201
1202typedef enum CalibrationUnit_enum {
1203 IMAQ_UNDEFINED = 0, //The image does not have a defined unit of measurement.
1204 IMAQ_ANGSTROM = 1, //The unit of measure for the image is angstroms.
1205 IMAQ_MICROMETER = 2, //The unit of measure for the image is micrometers.
1206 IMAQ_MILLIMETER = 3, //The unit of measure for the image is millimeters.
1207 IMAQ_CENTIMETER = 4, //The unit of measure for the image is centimeters.
1208 IMAQ_METER = 5, //The unit of measure for the image is meters.
1209 IMAQ_KILOMETER = 6, //The unit of measure for the image is kilometers.
1210 IMAQ_MICROINCH = 7, //The unit of measure for the image is microinches.
1211 IMAQ_INCH = 8, //The unit of measure for the image is inches.
1212 IMAQ_FOOT = 9, //The unit of measure for the image is feet.
1213 IMAQ_NAUTICMILE = 10, //The unit of measure for the image is nautical miles.
1214 IMAQ_GROUNDMILE = 11, //The unit of measure for the image is ground miles.
1215 IMAQ_STEP = 12, //The unit of measure for the image is steps.
1216 IMAQ_CALIBRATION_UNIT_SIZE_GUARD = 0xFFFFFFFF
1217} CalibrationUnit;
1218
1219typedef enum ConcentricRakeDirection_enum {
1220 IMAQ_COUNTER_CLOCKWISE = 0, //The function searches the search area in a counter-clockwise direction.
1221 IMAQ_CLOCKWISE = 1, //The function searches the search area in a clockwise direction.
1222 IMAQ_CONCENTRIC_RAKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
1223} ConcentricRakeDirection;
1224
1225typedef enum CalibrationMode_enum {
1226 IMAQ_PERSPECTIVE = 0, //Functions correct for distortion caused by the camera's perspective.
1227 IMAQ_NONLINEAR = 1, //Functions correct for distortion caused by the camera's lens.
1228 IMAQ_SIMPLE_CALIBRATION = 2, //Functions do not correct for distortion.
1229 IMAQ_CORRECTED_IMAGE = 3, //The image is already corrected.
1230 IMAQ_CALIBRATION_MODE_SIZE_GUARD = 0xFFFFFFFF
1231} CalibrationMode;
1232
1233typedef enum BrowserLocation_enum {
1234 IMAQ_INSERT_FIRST_FREE = 0, //Inserts the thumbnail in the first available cell.
1235 IMAQ_INSERT_END = 1, //Inserts the thumbnail after the last occupied cell.
1236 IMAQ_BROWSER_LOCATION_SIZE_GUARD = 0xFFFFFFFF
1237} BrowserLocation;
1238
1239typedef enum BrowserFrameStyle_enum {
1240 IMAQ_RAISED_FRAME = 0, //Each thumbnail has a raised frame.
1241 IMAQ_BEVELLED_FRAME = 1, //Each thumbnail has a beveled frame.
1242 IMAQ_OUTLINE_FRAME = 2, //Each thumbnail has an outlined frame.
1243 IMAQ_HIDDEN_FRAME = 3, //Each thumbnail has a hidden frame.
1244 IMAQ_STEP_FRAME = 4, //Each thumbnail has a stepped frame.
1245 IMAQ_RAISED_OUTLINE_FRAME = 5, //Each thumbnail has a raised, outlined frame.
1246 IMAQ_BROWSER_FRAME_STYLE_SIZE_GUARD = 0xFFFFFFFF
1247} BrowserFrameStyle;
1248
1249typedef enum BorderMethod_enum {
1250 IMAQ_BORDER_MIRROR = 0, //Symmetrically copies pixel values from the image into the border.
1251 IMAQ_BORDER_COPY = 1, //Copies the value of the pixel closest to the edge of the image into the border.
1252 IMAQ_BORDER_CLEAR = 2, //Sets all pixels in the border to 0.
1253 IMAQ_BORDER_METHOD_SIZE_GUARD = 0xFFFFFFFF
1254} BorderMethod;
1255
1256typedef enum BarcodeType_enum {
1257 IMAQ_INVALID = -1, //The barcode is not of a type known by NI Vision.
1258 IMAQ_CODABAR = 1, //The barcode is of type Codabar.
1259 IMAQ_CODE39 = 2, //The barcode is of type Code 39.
1260 IMAQ_CODE93 = 4, //The barcode is of type Code 93.
1261 IMAQ_CODE128 = 8, //The barcode is of type Code 128.
1262 IMAQ_EAN8 = 16, //The barcode is of type EAN 8.
1263 IMAQ_EAN13 = 32, //The barcode is of type EAN 13.
1264 IMAQ_I2_OF_5 = 64, //The barcode is of type Code 25.
1265 IMAQ_MSI = 128, //The barcode is of type MSI code.
1266 IMAQ_UPCA = 256, //The barcode is of type UPC A.
1267 IMAQ_PHARMACODE = 512, //The barcode is of type Pharmacode.
1268 IMAQ_RSS_LIMITED = 1024, //The barcode is of type RSS Limited.
1269 IMAQ_BARCODE_TYPE_SIZE_GUARD = 0xFFFFFFFF
1270} BarcodeType;
1271
1272typedef enum AxisOrientation_enum {
1273 IMAQ_DIRECT = 0, //The y-axis direction corresponds to the y-axis direction of the Cartesian coordinate system.
1274 IMAQ_INDIRECT = 1, //The y-axis direction corresponds to the y-axis direction of an image.
1275 IMAQ_AXIS_ORIENTATION_SIZE_GUARD = 0xFFFFFFFF
1276} AxisOrientation;
1277
1278typedef enum ColorIgnoreMode_enum {
1279 IMAQ_IGNORE_NONE = 0, //Specifies that the function does not ignore any pixels.
1280 IMAQ_IGNORE_BLACK = 1, //Specifies that the function ignores black pixels.
1281 IMAQ_IGNORE_WHITE = 2, //Specifies that the function ignores white pixels.
1282 IMAQ_IGNORE_BLACK_AND_WHITE = 3, //Specifies that the function ignores black pixels and white pixels.
1283 IMAQ_BLACK_WHITE_IGNORE_MODE_SIZE_GUARD = 0xFFFFFFFF
1284} ColorIgnoreMode;
1285
1286typedef enum LevelType_enum {
1287 IMAQ_ABSOLUTE = 0, //The function evaluates the threshold and hysteresis values as absolute values.
1288 IMAQ_RELATIVE = 1, //The function evaluates the threshold and hysteresis values relative to the dynamic range of the given path.
1289 IMAQ_LEVEL_TYPE_SIZE_GUARD = 0xFFFFFFFF
1290} LevelType;
1291
1292typedef enum MatchingMode_enum {
1293 IMAQ_MATCH_SHIFT_INVARIANT = 1, //Searches for occurrences of the template image anywhere in the searchRect, assuming that the pattern is not rotated more than plus or minus 4 degrees.
1294 IMAQ_MATCH_ROTATION_INVARIANT = 2, //Searches for occurrences of the pattern in the image with no restriction on the rotation of the pattern.
1295 IMAQ_MATCHING_MODE_SIZE_GUARD = 0xFFFFFFFF
1296} MatchingMode;
1297
1298typedef enum MappingMethod_enum {
1299 IMAQ_FULL_DYNAMIC = 0, //(Obsolete) When the image bit depth is 0, the function maps the full dynamic range of the 16-bit image to an 8-bit scale.
1300 IMAQ_DOWNSHIFT = 1, //(Obsolete) When the image bit depth is 0, the function shifts the 16-bit image pixels to the right the number of times specified by the shiftCount element of the DisplayMapping structure.
1301 IMAQ_RANGE = 2, //(Obsolete) When the image bit depth is 0, the function maps the pixel values in the range specified by the minimumValue and maximumValue elements of the DisplayMapping structure to an 8-bit scale.
1302 IMAQ_90_PCT_DYNAMIC = 3, //(Obsolete) When the image bit depth to 0, the function maps the dynamic range containing the middle 90 percent of the cumulated histogram of the image to an 8-bit (256 grayscale values) scale.
1303 IMAQ_PERCENT_RANGE = 4, //(Obsolete) When the image bit depth is 0, the function maps the pixel values in the relative percentage range (0 to 100) of the cumulated histogram specified by minimumValue and maximumValue to an 8-bit scale.
1304 IMAQ_DEFAULT_MAPPING = 10, //If the bit depth is 0, the function maps the 16-bit image to 8 bits by following the IMAQ_FULL_DYNAMIC_ALWAYS behavior; otherwise, the function shifts the image data to the right according to the IMAQ_MOST_SIGNIFICANT behavior.
1305 IMAQ_MOST_SIGNIFICANT = 11, //The function shifts the 16-bit image pixels to the right until the 8 most significant bits of the image data are remaining.
1306 IMAQ_FULL_DYNAMIC_ALWAYS = 12, //The function maps the full dynamic range of the 16-bit image to an 8-bit scale.
1307 IMAQ_DOWNSHIFT_ALWAYS = 13, //The function shifts the 16-bit image pixels to the right the number of times specified by the shiftCount element of the DisplayMapping structure.
1308 IMAQ_RANGE_ALWAYS = 14, //The function maps the pixel values in the range specified by the minimumValue and maximumValue elements of the DisplayMapping structure to an 8-bit scale.
1309 IMAQ_90_PCT_DYNAMIC_ALWAYS = 15, //The function maps the dynamic range containing the middle 90 percent of the cumulated histogram of the image to an 8-bit (256 grayscale values) scale.
1310 IMAQ_PERCENT_RANGE_ALWAYS = 16, //The function maps the pixel values in the relative percentage range (0 to 100) of the cumulated histogram specified by minimumValue and maximumValue to an 8-bit scale.
1311 IMAQ_MAPPING_METHOD_SIZE_GUARD = 0xFFFFFFFF
1312} MappingMethod;
1313
1314typedef enum ComparisonFunction_enum {
1315 IMAQ_CLEAR_LESS = 0, //The comparison is true if the source pixel value is less than the comparison image pixel value.
1316 IMAQ_CLEAR_LESS_OR_EQUAL = 1, //The comparison is true if the source pixel value is less than or equal to the comparison image pixel value.
1317 IMAQ_CLEAR_EQUAL = 2, //The comparison is true if the source pixel value is equal to the comparison image pixel value.
1318 IMAQ_CLEAR_GREATER_OR_EQUAL = 3, //The comparison is true if the source pixel value is greater than or equal to the comparison image pixel value.
1319 IMAQ_CLEAR_GREATER = 4, //The comparison is true if the source pixel value is greater than the comparison image pixel value.
1320 IMAQ_COMPARE_FUNCTION_SIZE_GUARD = 0xFFFFFFFF
1321} ComparisonFunction;
1322
1323typedef enum LineGaugeMethod_enum {
1324 IMAQ_EDGE_TO_EDGE = 0, //Measures from the first edge on the line to the last edge on the line.
1325 IMAQ_EDGE_TO_POINT = 1, //Measures from the first edge on the line to the end point of the line.
1326 IMAQ_POINT_TO_EDGE = 2, //Measures from the start point of the line to the first edge on the line.
1327 IMAQ_POINT_TO_POINT = 3, //Measures from the start point of the line to the end point of the line.
1328 IMAQ_LINE_GAUGE_METHOD_SIZE_GUARD = 0xFFFFFFFF
1329} LineGaugeMethod;
1330
1331typedef enum Direction3D_enum {
1332 IMAQ_3D_NW = 0, //The viewing angle for the 3D image is from the northwest.
1333 IMAQ_3D_SW = 1, //The viewing angle for the 3D image is from the southwest.
1334 IMAQ_3D_SE = 2, //The viewing angle for the 3D image is from the southeast.
1335 IMAQ_3D_NE = 3, //The viewing angle for the 3D image is from the northeast.
1336 IMAQ_DIRECTION_3D_SIZE_GUARD = 0xFFFFFFFF
1337} Direction3D;
1338
1339typedef enum LearningMode_enum {
1340 IMAQ_LEARN_ALL = 0, //The function extracts information for shift- and rotation-invariant matching.
1341 IMAQ_LEARN_SHIFT_INFORMATION = 1, //The function extracts information for shift-invariant matching.
1342 IMAQ_LEARN_ROTATION_INFORMATION = 2, //The function extracts information for rotation-invariant matching.
1343 IMAQ_LEARNING_MODE_SIZE_GUARD = 0xFFFFFFFF
1344} LearningMode;
1345
1346typedef enum KernelFamily_enum {
1347 IMAQ_GRADIENT_FAMILY = 0, //The kernel is in the gradient family.
1348 IMAQ_LAPLACIAN_FAMILY = 1, //The kernel is in the Laplacian family.
1349 IMAQ_SMOOTHING_FAMILY = 2, //The kernel is in the smoothing family.
1350 IMAQ_GAUSSIAN_FAMILY = 3, //The kernel is in the Gaussian family.
1351 IMAQ_KERNEL_FAMILY_SIZE_GUARD = 0xFFFFFFFF
1352} KernelFamily;
1353
1354typedef enum InterpolationMethod_enum {
1355 IMAQ_ZERO_ORDER = 0, //The function uses an interpolation method that interpolates new pixel values using the nearest valid neighboring pixel.
1356 IMAQ_BILINEAR = 1, //The function uses an interpolation method that interpolates new pixel values using a bidirectional average of the neighboring pixels.
1357 IMAQ_QUADRATIC = 2, //The function uses an interpolation method that interpolates new pixel values using a quadratic approximating polynomial.
1358 IMAQ_CUBIC_SPLINE = 3, //The function uses an interpolation method that interpolates new pixel values by fitting them to a cubic spline curve, where the curve is based on known pixel values from the image.
1359 IMAQ_BILINEAR_FIXED = 4, //The function uses an interpolation method that interpolates new pixel values using a bidirectional average of the neighboring pixels.
1360 IMAQ_INTERPOLATION_METHOD_SIZE_GUARD = 0xFFFFFFFF
1361} InterpolationMethod;
1362
1363typedef enum ImageType_enum {
1364 IMAQ_IMAGE_U8 = 0, //The image type is 8-bit unsigned integer grayscale.
1365 IMAQ_IMAGE_U16 = 7, //The image type is 16-bit unsigned integer grayscale.
1366 IMAQ_IMAGE_I16 = 1, //The image type is 16-bit signed integer grayscale.
1367 IMAQ_IMAGE_SGL = 2, //The image type is 32-bit floating-point grayscale.
1368 IMAQ_IMAGE_COMPLEX = 3, //The image type is complex.
1369 IMAQ_IMAGE_RGB = 4, //The image type is RGB color.
1370 IMAQ_IMAGE_HSL = 5, //The image type is HSL color.
1371 IMAQ_IMAGE_RGB_U64 = 6, //The image type is 64-bit unsigned RGB color.
1372 IMAQ_IMAGE_TYPE_SIZE_GUARD = 0xFFFFFFFF
1373} ImageType;
1374
1375typedef enum ImageFeatureMode_enum {
1376 IMAQ_COLOR_AND_SHAPE_FEATURES = 0, //Instructs the function to use the color and the shape features of the color pattern.
1377 IMAQ_COLOR_FEATURES = 1, //Instructs the function to use the color features of the color pattern.
1378 IMAQ_SHAPE_FEATURES = 2, //Instructs the function to use the shape features of the color pattern.
1379 IMAQ_FEATURE_MODE_SIZE_GUARD = 0xFFFFFFFF
1380} ImageFeatureMode;
1381
1382typedef enum FontColor_enum {
1383 IMAQ_WHITE = 0, //Draws text in white.
1384 IMAQ_BLACK = 1, //Draws text in black.
1385 IMAQ_INVERT = 2, //Inverts the text pixels.
1386 IMAQ_BLACK_ON_WHITE = 3, //Draws text in black with a white background.
1387 IMAQ_WHITE_ON_BLACK = 4, //Draws text in white with a black background.
1388 IMAQ_FONT_COLOR_SIZE_GUARD = 0xFFFFFFFF
1389} FontColor;
1390
1391typedef enum FlipAxis_enum {
1392 IMAQ_HORIZONTAL_AXIS = 0, //Flips the image over the central horizontal axis.
1393 IMAQ_VERTICAL_AXIS = 1, //Flips the image over the central vertical axis.
1394 IMAQ_CENTER_AXIS = 2, //Flips the image over both the central vertical and horizontal axes.
1395 IMAQ_DIAG_L_TO_R_AXIS = 3, //Flips the image over an axis from the upper left corner to lower right corner.
1396 IMAQ_DIAG_R_TO_L_AXIS = 4, //Flips the image over an axis from the upper right corner to lower left corner.
1397 IMAQ_FLIP_AXIS_SIZE_GUARD = 0xFFFFFFFF
1398} FlipAxis;
1399
1400typedef enum EdgeProcess_enum {
1401 IMAQ_FIRST = 0, //The function looks for the first edge.
1402 IMAQ_FIRST_AND_LAST = 1, //The function looks for the first and last edge.
1403 IMAQ_ALL = 2, //The function looks for all edges.
1404 IMAQ_BEST = 3, //The function looks for the best edge.
1405 IMAQ_EDGE_PROCESS_SIZE_GUARD = 0xFFFFFFFF
1406} EdgeProcess;
1407
1408typedef enum DrawMode_enum {
1409 IMAQ_DRAW_VALUE = 0, //Draws the boundary of the object with the specified pixel value.
1410 IMAQ_DRAW_INVERT = 2, //Inverts the pixel values of the boundary of the object.
1411 IMAQ_PAINT_VALUE = 1, //Fills the object with the given pixel value.
1412 IMAQ_PAINT_INVERT = 3, //Inverts the pixel values of the object.
1413 IMAQ_HIGHLIGHT_VALUE = 4, //The function fills the object by highlighting the enclosed pixels with the color of the object.
1414 IMAQ_DRAW_MODE_SIZE_GUARD = 0xFFFFFFFF
1415} DrawMode;
1416
1417typedef enum NearestNeighborMetric_enum {
1418 IMAQ_METRIC_MAXIMUM = 0, //The maximum metric.
1419 IMAQ_METRIC_SUM = 1, //The sum metric.
1420 IMAQ_METRIC_EUCLIDEAN = 2, //The Euclidean metric.
1421 IMAQ_NEAREST_NEIGHBOR_METRIC_SIZE_GUARD = 0xFFFFFFFF
1422} NearestNeighborMetric;
1423
1424typedef enum ReadResolution_enum {
1425 IMAQ_LOW_RESOLUTION = 0, //Configures NI Vision to use low resolution during the read process.
1426 IMAQ_MEDIUM_RESOLUTION = 1, //Configures NI Vision to use medium resolution during the read process.
1427 IMAQ_HIGH_RESOLUTION = 2, //Configures NI Vision to use high resolution during the read process.
1428 IMAQ_READ_RESOLUTION_SIZE_GUARD = 0xFFFFFFFF
1429} ReadResolution;
1430
1431typedef enum ThresholdMode_enum {
1432 IMAQ_FIXED_RANGE = 0, //Performs thresholding using the values you provide in the lowThreshold and highThreshold elements of OCRProcessingOptions.
1433 IMAQ_COMPUTED_UNIFORM = 1, //Calculates a single threshold value for the entire ROI.
1434 IMAQ_COMPUTED_LINEAR = 2, //Calculates a value on the left side of the ROI, calculates a value on the right side of the ROI, and linearly fills the middle values from left to right.
1435 IMAQ_COMPUTED_NONLINEAR = 3, //Divides the ROI into the number of blocks specified by the blockCount element of OCRProcessingOptions and calculates a threshold value for each block.
1436 IMAQ_THRESHOLD_MODE_SIZE_GUARD = 0xFFFFFFFF
1437} ThresholdMode;
1438
1439typedef enum ReadStrategy_enum {
1440 IMAQ_READ_AGGRESSIVE = 0, //Configures NI Vision to perform fewer checks when analyzing objects to determine if they match trained characters.
1441 IMAQ_READ_CONSERVATIVE = 1, //Configures NI Vision to perform more checks to determine if an object matches a trained character.
1442 IMAQ_READ_STRATEGY_SIZE_GUARD = 0xFFFFFFFF
1443} ReadStrategy;
1444
1445typedef enum MeasurementType_enum {
1446 IMAQ_MT_CENTER_OF_MASS_X = 0, //X-coordinate of the point representing the average position of the total particle mass, assuming every point in the particle has a constant density.
1447 IMAQ_MT_CENTER_OF_MASS_Y = 1, //Y-coordinate of the point representing the average position of the total particle mass, assuming every point in the particle has a constant density.
1448 IMAQ_MT_FIRST_PIXEL_X = 2, //X-coordinate of the highest, leftmost particle pixel.
1449 IMAQ_MT_FIRST_PIXEL_Y = 3, //Y-coordinate of the highest, leftmost particle pixel.
1450 IMAQ_MT_BOUNDING_RECT_LEFT = 4, //X-coordinate of the leftmost particle point.
1451 IMAQ_MT_BOUNDING_RECT_TOP = 5, //Y-coordinate of highest particle point.
1452 IMAQ_MT_BOUNDING_RECT_RIGHT = 6, //X-coordinate of the rightmost particle point.
1453 IMAQ_MT_BOUNDING_RECT_BOTTOM = 7, //Y-coordinate of the lowest particle point.
1454 IMAQ_MT_MAX_FERET_DIAMETER_START_X = 8, //X-coordinate of the start of the line segment connecting the two perimeter points that are the furthest apart.
1455 IMAQ_MT_MAX_FERET_DIAMETER_START_Y = 9, //Y-coordinate of the start of the line segment connecting the two perimeter points that are the furthest apart.
1456 IMAQ_MT_MAX_FERET_DIAMETER_END_X = 10, //X-coordinate of the end of the line segment connecting the two perimeter points that are the furthest apart.
1457 IMAQ_MT_MAX_FERET_DIAMETER_END_Y = 11, //Y-coordinate of the end of the line segment connecting the two perimeter points that are the furthest apart.
1458 IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_LEFT = 12, //X-coordinate of the leftmost pixel in the longest row of contiguous pixels in the particle.
1459 IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_RIGHT = 13, //X-coordinate of the rightmost pixel in the longest row of contiguous pixels in the particle.
1460 IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_ROW = 14, //Y-coordinate of all of the pixels in the longest row of contiguous pixels in the particle.
1461 IMAQ_MT_BOUNDING_RECT_WIDTH = 16, //Distance between the x-coordinate of the leftmost particle point and the x-coordinate of the rightmost particle point.
1462 IMAQ_MT_BOUNDING_RECT_HEIGHT = 17, //Distance between the y-coordinate of highest particle point and the y-coordinate of the lowest particle point.
1463 IMAQ_MT_BOUNDING_RECT_DIAGONAL = 18, //Distance between opposite corners of the bounding rectangle.
1464 IMAQ_MT_PERIMETER = 19, //Length of the outer boundary of the particle.
1465 IMAQ_MT_CONVEX_HULL_PERIMETER = 20, //Perimeter of the smallest convex polygon containing all points in the particle.
1466 IMAQ_MT_HOLES_PERIMETER = 21, //Sum of the perimeters of each hole in the particle.
1467 IMAQ_MT_MAX_FERET_DIAMETER = 22, //Distance between the start and end of the line segment connecting the two perimeter points that are the furthest apart.
1468 IMAQ_MT_EQUIVALENT_ELLIPSE_MAJOR_AXIS = 23, //Length of the major axis of the ellipse with the same perimeter and area as the particle.
1469 IMAQ_MT_EQUIVALENT_ELLIPSE_MINOR_AXIS = 24, //Length of the minor axis of the ellipse with the same perimeter and area as the particle.
1470 IMAQ_MT_EQUIVALENT_ELLIPSE_MINOR_AXIS_FERET = 25, //Length of the minor axis of the ellipse with the same area as the particle, and Major Axis equal in length to the Max Feret Diameter.
1471 IMAQ_MT_EQUIVALENT_RECT_LONG_SIDE = 26, //Longest side of the rectangle with the same perimeter and area as the particle.
1472 IMAQ_MT_EQUIVALENT_RECT_SHORT_SIDE = 27, //Shortest side of the rectangle with the same perimeter and area as the particle.
1473 IMAQ_MT_EQUIVALENT_RECT_DIAGONAL = 28, //Distance between opposite corners of the rectangle with the same perimeter and area as the particle.
1474 IMAQ_MT_EQUIVALENT_RECT_SHORT_SIDE_FERET = 29, //Shortest side of the rectangle with the same area as the particle, and longest side equal in length to the Max Feret Diameter.
1475 IMAQ_MT_AVERAGE_HORIZ_SEGMENT_LENGTH = 30, //Average length of a horizontal segment in the particle.
1476 IMAQ_MT_AVERAGE_VERT_SEGMENT_LENGTH = 31, //Average length of a vertical segment in the particle.
1477 IMAQ_MT_HYDRAULIC_RADIUS = 32, //The particle area divided by the particle perimeter.
1478 IMAQ_MT_WADDEL_DISK_DIAMETER = 33, //Diameter of a disk with the same area as the particle.
1479 IMAQ_MT_AREA = 35, //Area of the particle.
1480 IMAQ_MT_HOLES_AREA = 36, //Sum of the areas of each hole in the particle.
1481 IMAQ_MT_PARTICLE_AND_HOLES_AREA = 37, //Area of a particle that completely covers the image.
1482 IMAQ_MT_CONVEX_HULL_AREA = 38, //Area of the smallest convex polygon containing all points in the particle.
1483 IMAQ_MT_IMAGE_AREA = 39, //Area of the image.
1484 IMAQ_MT_NUMBER_OF_HOLES = 41, //Number of holes in the particle.
1485 IMAQ_MT_NUMBER_OF_HORIZ_SEGMENTS = 42, //Number of horizontal segments in the particle.
1486 IMAQ_MT_NUMBER_OF_VERT_SEGMENTS = 43, //Number of vertical segments in the particle.
1487 IMAQ_MT_ORIENTATION = 45, //The angle of the line that passes through the particle Center of Mass about which the particle has the lowest moment of inertia.
1488 IMAQ_MT_MAX_FERET_DIAMETER_ORIENTATION = 46, //The angle of the line segment connecting the two perimeter points that are the furthest apart.
1489 IMAQ_MT_AREA_BY_IMAGE_AREA = 48, //Percentage of the particle Area covering the Image Area.
1490 IMAQ_MT_AREA_BY_PARTICLE_AND_HOLES_AREA = 49, //Percentage of the particle Area in relation to its Particle and Holes Area.
1491 IMAQ_MT_RATIO_OF_EQUIVALENT_ELLIPSE_AXES = 50, //Equivalent Ellipse Major Axis divided by Equivalent Ellipse Minor Axis.
1492 IMAQ_MT_RATIO_OF_EQUIVALENT_RECT_SIDES = 51, //Equivalent Rect Long Side divided by Equivalent Rect Short Side.
1493 IMAQ_MT_ELONGATION_FACTOR = 53, //Max Feret Diameter divided by Equivalent Rect Short Side (Feret).
1494 IMAQ_MT_COMPACTNESS_FACTOR = 54, //Area divided by the product of Bounding Rect Width and Bounding Rect Height.
1495 IMAQ_MT_HEYWOOD_CIRCULARITY_FACTOR = 55, //Perimeter divided by the circumference of a circle with the same area.
1496 IMAQ_MT_TYPE_FACTOR = 56, //Factor relating area to moment of inertia.
1497 IMAQ_MT_SUM_X = 58, //The sum of all x-coordinates in the particle.
1498 IMAQ_MT_SUM_Y = 59, //The sum of all y-coordinates in the particle.
1499 IMAQ_MT_SUM_XX = 60, //The sum of all x-coordinates squared in the particle.
1500 IMAQ_MT_SUM_XY = 61, //The sum of all x-coordinates times y-coordinates in the particle.
1501 IMAQ_MT_SUM_YY = 62, //The sum of all y-coordinates squared in the particle.
1502 IMAQ_MT_SUM_XXX = 63, //The sum of all x-coordinates cubed in the particle.
1503 IMAQ_MT_SUM_XXY = 64, //The sum of all x-coordinates squared times y-coordinates in the particle.
1504 IMAQ_MT_SUM_XYY = 65, //The sum of all x-coordinates times y-coordinates squared in the particle.
1505 IMAQ_MT_SUM_YYY = 66, //The sum of all y-coordinates cubed in the particle.
1506 IMAQ_MT_MOMENT_OF_INERTIA_XX = 68, //The moment of inertia in the x-direction twice.
1507 IMAQ_MT_MOMENT_OF_INERTIA_XY = 69, //The moment of inertia in the x and y directions.
1508 IMAQ_MT_MOMENT_OF_INERTIA_YY = 70, //The moment of inertia in the y-direction twice.
1509 IMAQ_MT_MOMENT_OF_INERTIA_XXX = 71, //The moment of inertia in the x-direction three times.
1510 IMAQ_MT_MOMENT_OF_INERTIA_XXY = 72, //The moment of inertia in the x-direction twice and the y-direction once.
1511 IMAQ_MT_MOMENT_OF_INERTIA_XYY = 73, //The moment of inertia in the x-direction once and the y-direction twice.
1512 IMAQ_MT_MOMENT_OF_INERTIA_YYY = 74, //The moment of inertia in the y-direction three times.
1513 IMAQ_MT_NORM_MOMENT_OF_INERTIA_XX = 75, //The normalized moment of inertia in the x-direction twice.
1514 IMAQ_MT_NORM_MOMENT_OF_INERTIA_XY = 76, //The normalized moment of inertia in the x- and y-directions.
1515 IMAQ_MT_NORM_MOMENT_OF_INERTIA_YY = 77, //The normalized moment of inertia in the y-direction twice.
1516 IMAQ_MT_NORM_MOMENT_OF_INERTIA_XXX = 78, //The normalized moment of inertia in the x-direction three times.
1517 IMAQ_MT_NORM_MOMENT_OF_INERTIA_XXY = 79, //The normalized moment of inertia in the x-direction twice and the y-direction once.
1518 IMAQ_MT_NORM_MOMENT_OF_INERTIA_XYY = 80, //The normalized moment of inertia in the x-direction once and the y-direction twice.
1519 IMAQ_MT_NORM_MOMENT_OF_INERTIA_YYY = 81, //The normalized moment of inertia in the y-direction three times.
1520 IMAQ_MT_HU_MOMENT_1 = 82, //The first Hu moment.
1521 IMAQ_MT_HU_MOMENT_2 = 83, //The second Hu moment.
1522 IMAQ_MT_HU_MOMENT_3 = 84, //The third Hu moment.
1523 IMAQ_MT_HU_MOMENT_4 = 85, //The fourth Hu moment.
1524 IMAQ_MT_HU_MOMENT_5 = 86, //The fifth Hu moment.
1525 IMAQ_MT_HU_MOMENT_6 = 87, //The sixth Hu moment.
1526 IMAQ_MT_HU_MOMENT_7 = 88, //The seventh Hu moment.
1527 IMAQ_MEASUREMENT_TYPE_SIZE_GUARD = 0xFFFFFFFF
1528} MeasurementType;
1529
1530typedef enum GeometricMatchingMode_enum {
1531 IMAQ_GEOMETRIC_MATCH_SHIFT_INVARIANT = 0, //Searches for occurrences of the pattern in the image, assuming that the pattern is not rotated more than plus or minus 5 degrees.
1532 IMAQ_GEOMETRIC_MATCH_ROTATION_INVARIANT = 1, //Searches for occurrences of the pattern in the image with reduced restriction on the rotation of the pattern.
1533 IMAQ_GEOMETRIC_MATCH_SCALE_INVARIANT = 2, //Searches for occurrences of the pattern in the image with reduced restriction on the size of the pattern.
1534 IMAQ_GEOMETRIC_MATCH_OCCLUSION_INVARIANT = 4, //Searches for occurrences of the pattern in the image, allowing for a specified percentage of the pattern to be occluded.
1535 IMAQ_GEOMETRIC_MATCHING_MODE_SIZE_GUARD = 0xFFFFFFFF
1536} GeometricMatchingMode;
1537
1538typedef enum ButtonLabel_enum {
1539 IMAQ_BUTTON_OK = 0, //The label "OK".
1540 IMAQ_BUTTON_SAVE = 1, //The label "Save".
1541 IMAQ_BUTTON_SELECT = 2, //The label "Select".
1542 IMAQ_BUTTON_LOAD = 3, //The label "Load".
1543 IMAQ_BUTTON_LABEL_SIZE_GUARD = 0xFFFFFFFF
1544} ButtonLabel;
1545
1546typedef enum NearestNeighborMethod_enum {
1547 IMAQ_MINIMUM_MEAN_DISTANCE = 0, //The minimum mean distance method.
1548 IMAQ_K_NEAREST_NEIGHBOR = 1, //The k-nearest neighbor method.
1549 IMAQ_NEAREST_PROTOTYPE = 2, //The nearest prototype method.
1550 IMAQ_NEAREST_NEIGHBOR_METHOD_SIZE_GUARD = 0xFFFFFFFF
1551} NearestNeighborMethod;
1552
1553typedef enum QRMirrorMode_enum {
1554 IMAQ_QR_MIRROR_MODE_AUTO_DETECT = -2, //The function should determine if the QR code is mirrored.
1555 IMAQ_QR_MIRROR_MODE_MIRRORED = 1, //The function should expect the QR code to appear mirrored.
1556 IMAQ_QR_MIRROR_MODE_NORMAL = 0, //The function should expect the QR code to appear normal.
1557 IMAQ_QR_MIRROR_MODE_SIZE_GUARD = 0xFFFFFFFF
1558} QRMirrorMode;
1559
1560typedef enum ColumnProcessingMode_enum {
1561 IMAQ_AVERAGE_COLUMNS = 0, //Averages the data extracted for edge detection.
1562 IMAQ_MEDIAN_COLUMNS = 1, //Takes the median of the data extracted for edge detection.
1563 IMAQ_COLUMN_PROCESSING_MODE_SIZE_GUARD = 0xFFFFFFFF
1564} ColumnProcessingMode;
1565
1566typedef enum FindReferenceDirection_enum {
1567 IMAQ_LEFT_TO_RIGHT_DIRECT = 0, //Searches from the left side of the search area to the right side of the search area for a direct axis.
1568 IMAQ_LEFT_TO_RIGHT_INDIRECT = 1, //Searches from the left side of the search area to the right side of the search area for an indirect axis.
1569 IMAQ_TOP_TO_BOTTOM_DIRECT = 2, //Searches from the top of the search area to the bottom of the search area for a direct axis.
1570 IMAQ_TOP_TO_BOTTOM_INDIRECT = 3, //Searches from the top of the search area to the bottom of the search area for an indirect axis.
1571 IMAQ_RIGHT_TO_LEFT_DIRECT = 4, //Searches from the right side of the search area to the left side of the search area for a direct axis.
1572 IMAQ_RIGHT_TO_LEFT_INDIRECT = 5, //Searches from the right side of the search area to the left side of the search area for an indirect axis.
1573 IMAQ_BOTTOM_TO_TOP_DIRECT = 6, //Searches from the bottom of the search area to the top of the search area for a direct axis.
1574 IMAQ_BOTTOM_TO_TOP_INDIRECT = 7, //Searches from the bottom of the search area to the top of the search area for an indirect axis.
1575 IMAQ_FIND_COORD_SYS_DIR_SIZE_GUARD = 0xFFFFFFFF
1576} FindReferenceDirection;
1577
1578typedef enum MulticoreOperation_enum {
1579 IMAQ_GET_CORES = 0, //The number of processor cores NI Vision is currently using.
1580 IMAQ_SET_CORES = 1, //The number of processor cores for NI Vision to use.
1581 IMAQ_USE_MAX_AVAILABLE = 2, //Use the maximum number of available processor cores.
1582 IMAQ_MULTICORE_OPERATION_SIZE_GUARD = 0xFFFFFFFF
1583} MulticoreOperation;
1584
1585typedef enum GroupBehavior_enum {
1586 IMAQ_GROUP_CLEAR = 0, //Sets the behavior of the overlay group to clear the current settings when an image is transformed.
1587 IMAQ_GROUP_KEEP = 1, //Sets the behavior of the overlay group to keep the current settings when an image is transformed.
1588 IMAQ_GROUP_TRANSFORM = 2, //Sets the behavior of the overlay group to transform with the image.
1589 IMAQ_GROUP_BEHAVIOR_SIZE_GUARD = 0xFFFFFFFF
1590} GroupBehavior;
1591
1592typedef enum QRDimensions_enum {
1593 IMAQ_QR_DIMENSIONS_AUTO_DETECT = 0, //The function will automatically determine the dimensions of the QR code.
1594 IMAQ_QR_DIMENSIONS_11x11 = 11, //Specifies the dimensions of the QR code as 11 x 11.
1595 IMAQ_QR_DIMENSIONS_13x13 = 13, //Specifies the dimensions of the QR code as 13 x 13.
1596 IMAQ_QR_DIMENSIONS_15x15 = 15, //Specifies the dimensions of the QR code as 15 x 15.
1597 IMAQ_QR_DIMENSIONS_17x17 = 17, //Specifies the dimensions of the QR code as 17 x 17.
1598 IMAQ_QR_DIMENSIONS_21x21 = 21, //Specifies the dimensions of the QR code as 21 x 21.
1599 IMAQ_QR_DIMENSIONS_25x25 = 25, //Specifies the dimensions of the QR code as 25 x 25.
1600 IMAQ_QR_DIMENSIONS_29x29 = 29, //Specifies the dimensions of the QR code as 29 x 29.
1601 IMAQ_QR_DIMENSIONS_33x33 = 33, //Specifies the dimensions of the QR code as 33 x 33.
1602 IMAQ_QR_DIMENSIONS_37x37 = 37, //Specifies the dimensions of the QR code as 37 x 37.
1603 IMAQ_QR_DIMENSIONS_41x41 = 41, //Specifies the dimensions of the QR code as 41 x 41.
1604 IMAQ_QR_DIMENSIONS_45x45 = 45, //Specifies the dimensions of the QR code as 45 x 45.
1605 IMAQ_QR_DIMENSIONS_49x49 = 49, //Specifies the dimensions of the QR code as 49 x 49.
1606 IMAQ_QR_DIMENSIONS_53x53 = 53, //Specifies the dimensions of the QR code as 53 x 53.
1607 IMAQ_QR_DIMENSIONS_57x57 = 57, //Specifies the dimensions of the QR code as 57 x 57.
1608 IMAQ_QR_DIMENSIONS_61x61 = 61, //Specifies the dimensions of the QR code as 61 x 61.
1609 IMAQ_QR_DIMENSIONS_65x65 = 65, //Specifies the dimensions of the QR code as 65 x 65.
1610 IMAQ_QR_DIMENSIONS_69x69 = 69, //Specifies the dimensions of the QR code as 69 x 69.
1611 IMAQ_QR_DIMENSIONS_73x73 = 73, //Specifies the dimensions of the QR code as 73 x 73.
1612 IMAQ_QR_DIMENSIONS_77x77 = 77, //Specifies the dimensions of the QR code as 77 x 77.
1613 IMAQ_QR_DIMENSIONS_81x81 = 81, //Specifies the dimensions of the QR code as 81 x 81.
1614 IMAQ_QR_DIMENSIONS_85x85 = 85, //Specifies the dimensions of the QR code as 85 x 85.
1615 IMAQ_QR_DIMENSIONS_89x89 = 89, //Specifies the dimensions of the QR code as 89 x 89.
1616 IMAQ_QR_DIMENSIONS_93x93 = 93, //Specifies the dimensions of the QR code as 93 x 93.
1617 IMAQ_QR_DIMENSIONS_97x97 = 97, //Specifies the dimensions of the QR code as 97 x 97.
1618 IMAQ_QR_DIMENSIONS_101x101 = 101, //Specifies the dimensions of the QR code as 101 x 101.
1619 IMAQ_QR_DIMENSIONS_105x105 = 105, //Specifies the dimensions of the QR code as 105 x 105.
1620 IMAQ_QR_DIMENSIONS_109x109 = 109, //Specifies the dimensions of the QR code as 109 x 109.
1621 IMAQ_QR_DIMENSIONS_113x113 = 113, //Specifies the dimensions of the QR code as 113 x 113.
1622 IMAQ_QR_DIMENSIONS_117x117 = 117, //Specifies the dimensions of the QR code as 117 x 117.
1623 IMAQ_QR_DIMENSIONS_121x121 = 121, //Specifies the dimensions of the QR code as 121 x 121.
1624 IMAQ_QR_DIMENSIONS_125x125 = 125, //Specifies the dimensions of the QR code as 125 x 125.
1625 IMAQ_QR_DIMENSIONS_129x129 = 129, //Specifies the dimensions of the QR code as 129 x 129.
1626 IMAQ_QR_DIMENSIONS_133x133 = 133, //Specifies the dimensions of the QR code as 133 x 133.
1627 IMAQ_QR_DIMENSIONS_137x137 = 137, //Specifies the dimensions of the QR code as 137 x 137.
1628 IMAQ_QR_DIMENSIONS_141x141 = 141, //Specifies the dimensions of the QR code as 141 x 141.
1629 IMAQ_QR_DIMENSIONS_145x145 = 145, //Specifies the dimensions of the QR code as 145 x 145.
1630 IMAQ_QR_DIMENSIONS_149x149 = 149, //Specifies the dimensions of the QR code as 149 x 149.
1631 IMAQ_QR_DIMENSIONS_153x153 = 153, //Specifies the dimensions of the QR code as 153 x 153.
1632 IMAQ_QR_DIMENSIONS_157x157 = 157, //Specifies the dimensions of the QR code as 157 x 1537.
1633 IMAQ_QR_DIMENSIONS_161x161 = 161, //Specifies the dimensions of the QR code as 161 x 161.
1634 IMAQ_QR_DIMENSIONS_165x165 = 165, //Specifies the dimensions of the QR code as 165 x 165.
1635 IMAQ_QR_DIMENSIONS_169x169 = 169, //Specifies the dimensions of the QR code as 169 x 169.
1636 IMAQ_QR_DIMENSIONS_173x173 = 173, //Specifies the dimensions of the QR code as 173 x 173.
1637 IMAQ_QR_DIMENSIONS_177x177 = 177, //Specifies the dimensions of the QR code as 177 x 177.
1638 IMAQ_QR_DIMENSIONS_SIZE_GUARD = 0xFFFFFFFF
1639} QRDimensions;
1640
1641typedef enum QRCellFilterMode_enum {
1642 IMAQ_QR_CELL_FILTER_MODE_AUTO_DETECT = -2, //The function will try all filter modes and uses the one that decodes the QR code within the fewest iterations and utilizing the least amount of error correction.
1643 IMAQ_QR_CELL_FILTER_MODE_AVERAGE = 0, //The function sets the pixel value for the cell to the average of the sampled pixels.
1644 IMAQ_QR_CELL_FILTER_MODE_MEDIAN = 1, //The function sets the pixel value for the cell to the median of the sampled pixels.
1645 IMAQ_QR_CELL_FILTER_MODE_CENTRAL_AVERAGE = 2, //The function sets the pixel value for the cell to the average of the pixels in the center of the cell sample.
1646 IMAQ_QR_CELL_FILTER_MODE_HIGH_AVERAGE = 3, //The function sets the pixel value for the cell to the average value of the half of the sampled pixels with the highest pixel values.
1647 IMAQ_QR_CELL_FILTER_MODE_LOW_AVERAGE = 4, //The function sets the pixel value for the cell to the average value of the half of the sampled pixels with the lowest pixel values.
1648 IMAQ_QR_CELL_FILTER_MODE_VERY_HIGH_AVERAGE = 5, //The function sets the pixel value for the cell to the average value of the ninth of the sampled pixels with the highest pixel values.
1649 IMAQ_QR_CELL_FILTER_MODE_VERY_LOW_AVERAGE = 6, //The function sets the pixel value for the cell to the average value of the ninth of the sampled pixels with the lowest pixel values.
1650 IMAQ_QR_CELL_FILTER_MODE_ALL = 8, //The function tries each filter mode, starting with IMAQ_QR_CELL_FILTER_MODE_AVERAGE and ending with IMAQ_QR_CELL_FILTER_MODE_VERY_LOW_AVERAGE, stopping once a filter mode decodes correctly.
1651 IMAQ_QR_CELL_FILTER_MODE_SIZE_GUARD = 0xFFFFFFFF
1652} QRCellFilterMode;
1653
1654typedef enum RoundingMode_enum {
1655 IMAQ_ROUNDING_MODE_OPTIMIZE = 0, //Rounds the result of a division using the best available method.
1656 IMAQ_ROUNDING_MODE_TRUNCATE = 1, //Truncates the result of a division.
1657 IMAQ_ROUNDING_MODE_SIZE_GUARD = 0xFFFFFFFF
1658} RoundingMode;
1659
1660typedef enum QRDemodulationMode_enum {
1661 IMAQ_QR_DEMODULATION_MODE_AUTO_DETECT = -2, //The function will try each demodulation mode and use the one which decodes the QR code within the fewest iterations and utilizing the least amount of error correction.
1662 IMAQ_QR_DEMODULATION_MODE_HISTOGRAM = 0, //The function uses a histogram of all of the QR cells to calculate a threshold.
1663 IMAQ_QR_DEMODULATION_MODE_LOCAL_CONTRAST = 1, //The function examines each of the cell's neighbors to determine if the cell is on or off.
1664 IMAQ_QR_DEMODULATION_MODE_COMBINED = 2, //The function uses the histogram of the QR code to calculate a threshold.
1665 IMAQ_QR_DEMODULATION_MODE_ALL = 3, //The function tries IMAQ_QR_DEMODULATION_MODE_HISTOGRAM, then IMAQ_QR_DEMODULATION_MODE_LOCAL_CONTRAST and then IMAQ_QR_DEMODULATION_MODE_COMBINED, stopping once one mode is successful.
1666 IMAQ_QR_DEMODULATION_MODE_SIZE_GUARD = 0xFFFFFFFF
1667} QRDemodulationMode;
1668
1669typedef enum ContrastMode_enum {
1670 IMAQ_ORIGINAL_CONTRAST = 0, //Instructs the geometric matching algorithm to find matches with the same contrast as the template.
1671 IMAQ_REVERSED_CONTRAST = 1, //Instructs the geometric matching algorithm to find matches with the inverted contrast of the template.
1672 IMAQ_BOTH_CONTRASTS = 2, //Instructs the geometric matching algorithm to find matches with the same and inverted contrast of the template.
1673} ContrastMode;
1674
1675typedef enum QRPolarities_enum {
1676 IMAQ_QR_POLARITY_AUTO_DETECT = -2, //The function should determine the polarity of the QR code.
1677 IMAQ_QR_POLARITY_BLACK_ON_WHITE = 0, //The function should search for a QR code with dark data on a bright background.
1678 IMAQ_QR_POLARITY_WHITE_ON_BLACK = 1, //The function should search for a QR code with bright data on a dark background.
1679 IMAQ_QR_POLARITY_MODE_SIZE_GUARD = 0xFFFFFFFF
1680} QRPolarities;
1681
1682typedef enum QRRotationMode_enum {
1683 IMAQ_QR_ROTATION_MODE_UNLIMITED = 0, //The function allows for unlimited rotation.
1684 IMAQ_QR_ROTATION_MODE_0_DEGREES = 1, //The function allows for ??? 5 degrees of rotation.
1685 IMAQ_QR_ROTATION_MODE_90_DEGREES = 2, //The function allows for between 85 and 95 degrees of rotation.
1686 IMAQ_QR_ROTATION_MODE_180_DEGREES = 3, //The function allows for between 175 and 185 degrees of rotation.
1687 IMAQ_QR_ROTATION_MODE_270_DEGREES = 4, //The function allows for between 265 and 275 degrees of rotation.
1688 IMAQ_QR_ROTATION_MODE_SIZE_GUARD = 0xFFFFFFFF
1689} QRRotationMode;
1690
1691typedef enum QRGradingMode_enum {
1692 IMAQ_QR_NO_GRADING = 0, //The function does not make any preparatory calculations.
1693 IMAQ_QR_GRADING_MODE_SIZE_GUARD = 0xFFFFFFFF
1694} QRGradingMode;
1695
1696typedef enum StraightEdgeSearchMode_enum {
1697 IMAQ_USE_FIRST_RAKE_EDGES = 0, //Fits a straight edge on the first points detected using a rake.
1698 IMAQ_USE_BEST_RAKE_EDGES = 1, //Fits a straight edge on the best points detected using a rake.
1699 IMAQ_USE_BEST_HOUGH_LINE = 2, //Finds the strongest straight edge using all points detected on a rake.
1700 IMAQ_USE_FIRST_PROJECTION_EDGE = 3, //Uses the location of the first projected edge as the straight edge.
1701 IMAQ_USE_BEST_PROJECTION_EDGE = 4, //Finds the strongest projected edge location to determine the straight edge.
1702 IMAQ_STRAIGHT_EDGE_SEARCH_SIZE_GUARD = 0xFFFFFFFF
1703} StraightEdgeSearchMode;
1704
1705typedef enum SearchDirection_enum {
1706 IMAQ_SEARCH_DIRECTION_LEFT_TO_RIGHT = 0, //Searches from the left side of the search area to the right side of the search area.
1707 IMAQ_SEARCH_DIRECTION_RIGHT_TO_LEFT = 1, //Searches from the right side of the search area to the left side of the search area.
1708 IMAQ_SEARCH_DIRECTION_TOP_TO_BOTTOM = 2, //Searches from the top side of the search area to the bottom side of the search area.
1709 IMAQ_SEARCH_DIRECTION_BOTTOM_TO_TOP = 3, //Searches from the bottom side of the search area to the top side of the search area.
1710 IMAQ_SEARCH_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
1711} SearchDirection;
1712
1713typedef enum QRStreamMode_enum {
1714 IMAQ_QR_MODE_NUMERIC = 0, //Specifies that the data was encoded using numeric mode.
1715 IMAQ_QR_MODE_ALPHANUMERIC = 1, //Specifies that the data was encoded using alpha-numeric mode.
1716 IMAQ_QR_MODE_RAW_BYTE = 2, //Specifies that the data was not encoded but is only raw binary bytes, or encoded in JIS-8.
1717 IMAQ_QR_MODE_EAN128_TOKEN = 3, //Specifies that the data has a special meaning represented by the application ID.
1718 IMAQ_QR_MODE_EAN128_DATA = 4, //Specifies that the data has a special meaning represented by the application ID.
1719 IMAQ_QR_MODE_ECI = 5, //Specifies that the data was meant to be read using the language represented in the language ID.
1720 IMAQ_QR_MODE_KANJI = 6, //Specifies that the data was encoded in Shift-JIS16 Japanese.
1721 IMAQ_QR_MODE_SIZE_GUARD = 0xFFFFFFFF
1722} QRStreamMode;
1723
1724typedef enum ParticleClassifierType_enum {
1725 IMAQ_PARTICLE_LARGEST = 0, //Use only the largest particle in the image.
1726 IMAQ_PARTICLE_ALL = 1, //Use all particles in the image.
1727 IMAQ_PARTICLE_CLASSIFIER_TYPE_SIZE_GUARD = 0xFFFFFFFF
1728} ParticleClassifierType;
1729
1730typedef enum QRCellSampleSize_enum {
1731 IMAQ_QR_CELL_SAMPLE_SIZE_AUTO_DETECT = -2, //The function will try each sample size and use the one which decodes the QR code within the fewest iterations and utilizing the least amount of error correction.
1732 IMAQ_QR_CELL_SAMPLE_SIZE1X1 = 1, //The function will use a 1x1 sized sample from each cell.
1733 IMAQ_QR_CELL_SAMPLE_SIZE2X2 = 2, //The function will use a 2x2 sized sample from each cell.
1734 IMAQ_QR_CELL_SAMPLE_SIZE3X3 = 3, //The function will use a 3x3 sized sample from each cell.
1735 IMAQ_QR_CELL_SAMPLE_SIZE4X4 = 4, //The function will use a 4x4 sized sample from each cell.
1736 IMAQ_QR_CELL_SAMPLE_SIZE5X5 = 5, //The function will use a 5x5 sized sample from each cell.
1737 IMAQ_QR_CELL_SAMPLE_SIZE6X6 = 6, //The function will use a 6x6 sized sample from each cell.
1738 IMAQ_QR_CELL_SAMPLE_SIZE7X7 = 7, //The function will use a 7x7 sized sample from each cell.
1739 IMAQ_QR_CELL_SAMPLE_TYPE_SIZE_GUARD = 0xFFFFFFFF
1740} QRCellSampleSize;
1741
1742typedef enum RakeProcessType_enum {
1743 IMAQ_GET_FIRST_EDGES = 0,
1744 IMAQ_GET_FIRST_AND_LAST_EDGES = 1,
1745 IMAQ_GET_ALL_EDGES = 2,
1746 IMAQ_GET_BEST_EDGES = 3,
1747 IMAQ_RAKE_PROCESS_TYPE_SIZE_GUARD = 0xFFFFFFFF
1748} RakeProcessType;
1749
1750typedef enum GeometricSetupDataItem_enum {
1751 IMAQ_CURVE_EXTRACTION_MODE = 0, //Specifies how the function identifies curves in the image.
1752 IMAQ_CURVE_EDGE_THRSHOLD = 1, //Specifies the minimum contrast an edge pixel must have for it to be considered part of a curve.
1753 IMAQ_CURVE_EDGE_FILTER = 2, //Specifies the width of the edge filter that the function uses to identify curves in the image.
1754 IMAQ_MINIMUM_CURVE_LENGTH = 3, //Specifies the length, in pixels, of the smallest curve that you want the function to identify.
1755 IMAQ_CURVE_ROW_SEARCH_STEP_SIZE = 4, //Specifies the distance, in the y direction, between the image rows that the algorithm inspects for curve seed points.
1756 IMAQ_CURVE_COL_SEARCH_STEP_SIZE = 5, //Specifies the distance, in the x direction, between the image columns that the algorithm inspects for curve seed points.
1757 IMAQ_CURVE_MAX_END_POINT_GAP = 6, //Specifies the maximum gap, in pixels, between the endpoints of a curve that the function identifies as a closed curve.
1758 IMAQ_EXTRACT_CLOSED_CURVES = 7, //Specifies whether to identify only closed curves in the image.
1759 IMAQ_ENABLE_SUBPIXEL_CURVE_EXTRACTION = 8, //The function ignores this option.
1760 IMAQ_ENABLE_CORRELATION_SCORE = 9, //Specifies that the function should calculate the Correlation Score and return it for each match result.
1761 IMAQ_ENABLE_SUBPIXEL_ACCURACY = 10, //Determines whether to return the match results with subpixel accuracy.
1762 IMAQ_SUBPIXEL_ITERATIONS = 11, //Specifies the maximum number of incremental improvements used to refine matches using subpixel information.
1763 IMAQ_SUBPIXEL_TOLERANCE = 12, //Specifies the maximum amount of change, in pixels, between consecutive incremental improvements in the match position before the function stops refining the match position.
1764 IMAQ_INITIAL_MATCH_LIST_LENGTH = 13, //Specifies the maximum size of the match list.
1765 IMAQ_ENABLE_TARGET_TEMPLATE_CURVESCORE = 14, //Specifies whether the function should calculate the match curve to template curve score and return it for each match result.
1766 IMAQ_MINIMUM_MATCH_SEPARATION_DISTANCE = 15, //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
1767 IMAQ_MINIMUM_MATCH_SEPARATION_ANGLE = 16, //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
1768 IMAQ_MINIMUM_MATCH_SEPARATION_SCALE = 17, //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
1769 IMAQ_MAXIMUM_MATCH_OVERLAP = 18, //Specifies whether you want the algorithm to spend less time accurately estimating the location of a match.
1770 IMAQ_ENABLE_COARSE_RESULT = 19, //Specifies whether you want the algorithm to spend less time accurately estimating the location of a match.
1771 IMAQ_ENABLE_CALIBRATION_SUPPORT = 20, //Specifies whether or not the algorithm treat the inspection image as a calibrated image.
1772 IMAQ_ENABLE_CONTRAST_REVERSAL = 21, //Specifies the contrast of the matches to search for.
1773 IMAQ_SEARCH_STRATEGY = 22, //Specifies the aggressiveness of the strategy used to find matches in the image.
1774 IMAQ_REFINEMENT_MATCH_FACTOR = 23, //Specifies the factor applied to the number of matches requested to determine how many matches are refined in the pyramid stage.
1775 IMAQ_SUBPIXEL_MATCH_FACTOR = 24, //Specifies the factor applied to the number for matches requested to determine how many matches are used for the final (subpixel) stage.
1776 IMAQ_MAX_REFINEMENT_ITERATIONS = 25, //Specifies maximum refinement iteration.
1777} GeometricSetupDataItem;
1778
1779typedef enum DistortionModel_enum {
1780 IMAQ_POLYNOMIAL_MODEL = 0, //Polynomial model.
1781 IMAQ_DIVISION_MODEL = 1, //Division Model.
1782 IMAQ_NO_DISTORTION_MODEL = -1, //Not a distortion model.
1783} DistortionModel;
1784
1785typedef enum CalibrationThumbnailType_enum {
1786 IMAQ_CAMARA_MODEL_TYPE = 0, //Camara model thumbnail type.
1787 IMAQ_PERSPECTIVE_TYPE = 1, //Perspective thumbnail type.
1788 IMAQ_MICRO_PLANE_TYPE = 2, //Micro Plane thumbnail type.
1789 IMAQ_CALIBRATION_THUMBNAIL_TYPE_SIZE_GUARD = 0xFFFFFFFF
1790} CalibrationThumbnailType;
1791
1792typedef enum SettingType_enum {
1793 IMAQ_ROTATION_ANGLE_RANGE = 0, //Set a range for this option to specify the angles at which you expect the Function to find template matches in the inspection image.
1794 IMAQ_SCALE_RANGE = 1, //Set a range for this option to specify the sizes at which you expect the Function to find template matches in the inspection image.
1795 IMAQ_OCCLUSION_RANGE = 2, //Set a range for this option to specify the amount of occlusion you expect for a match in the inspection image.
1796 IMAQ_SETTING_TYPE_SIZE_GUARD = 0xFFFFFFFF
1797} SettingType;
1798
1799typedef enum SegmentationDistanceLevel_enum {
1800 IMAQ_SEGMENTATION_LEVEL_CONSERVATIVE = 0, //Uses extensive criteria to determine the Maximum Distance.
1801 IMAQ_SEGMENTATION_LEVEL_AGGRESSIVE = 1, //Uses few criteria to determine the Maximum Distance.
1802 IMAQ_SEGMENTATION_LEVEL_SIZE_GUARD = 0xFFFFFFFF
1803} SegmentationDistanceLevel;
1804
1805typedef enum ExtractContourSelection_enum {
1806 IMAQ_CLOSEST = 0, //Selects the curve closest to the ROI.
1807 IMAQ_LONGEST = 1, //Selects the longest curve.
1808 IMAQ_STRONGEST = 2, //Selects the curve with the highest edge strength averaged from each point on the curve.
1809 IMAQ_EXTRACT_CONTOUR_SELECTION_SIZE_GUARD = 0xFFFFFFFF
1810} ExtractContourSelection;
1811
1812typedef enum FindTransformMode_enum {
1813 IMAQ_FIND_REFERENCE = 0, //Update both parts of the coordinate system.
1814 IMAQ_UPDATE_TRANSFORM = 1, //Update only the new reference system.
1815 IMAQ_FIND_TRANSFORM_MODE_SIZE_GUARD = 0xFFFFFFFF
1816} FindTransformMode;
1817
1818typedef enum ExtractContourDirection_enum {
1819 IMAQ_RECT_LEFT_RIGHT = 0, //Searches the ROI from left to right.
1820 IMAQ_RECT_RIGHT_LEFT = 1, //Searches the ROI from right to left.
1821 IMAQ_RECT_TOP_BOTTOM = 2, //Searches the ROI from top to bottom.
1822 IMAQ_RECT_BOTTOM_TOP = 3, //Searches the ROI from bottom to top.
1823 IMAQ_ANNULUS_INNER_OUTER = 4, //Searches the ROI from the inner radius to the outer radius.
1824 IMAQ_ANNULUS_OUTER_INNER = 5, //Searches the ROI from the outer radius to the inner radius.
1825 IMAQ_ANNULUS_START_STOP = 6, //Searches the ROI from start angle to end angle.
1826 IMAQ_ANNULUS_STOP_START = 7, //Searches the ROI from end angle to start angle.
1827 IMAQ_EXTRACT_CONTOUR_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
1828} ExtractContourDirection;
1829
1830typedef enum EdgePolaritySearchMode_enum {
1831 IMAQ_SEARCH_FOR_ALL_EDGES = 0, //Searches for all edges.
1832 IMAQ_SEARCH_FOR_RISING_EDGES = 1, //Searches for rising edges only.
1833 IMAQ_SEARCH_FOR_FALLING_EDGES = 2, //Searches for falling edges only.
1834 IMAQ_EDGE_POLARITY_MODE_SIZE_GUARD = 0xFFFFFFFF
1835} EdgePolaritySearchMode;
1836
1837typedef enum Connectivity_enum {
1838 IMAQ_FOUR_CONNECTED = 0, //Morphological reconstruction is performed in connectivity mode 4.
1839 IMAQ_EIGHT_CONNECTED = 1, //Morphological reconstruction is performed in connectivity mode 8.
1840 IMAQ_CONNECTIVITY_SIZE_GUARD = 0xFFFFFFFF
1841} Connectivity;
1842
1843typedef enum MorphologyReconstructOperation_enum {
1844 IMAQ_DILATE_RECONSTRUCT = 0, //Performs Reconstruction by dilation.
1845 IMAQ_ERODE_RECONSTRUCT = 1, //Performs Reconstruction by erosion.
1846 IMAQ_MORPHOLOGY_RECONSTRUCT_OPERATION_SIZE_GUARD = 0xFFFFFFFF
1847} MorphologyReconstructOperation;
1848
1849typedef enum WaveletType_enum {
1850 IMAQ_DB02 = 0,
1851 IMAQ_DB03 = 1,
1852 IMAQ_DB04 = 2, //Specifies the Wavelet Type as DB02.
1853 IMAQ_DB05 = 3,
1854 IMAQ_DB06 = 4,
1855 IMAQ_DB07 = 5,
1856 IMAQ_DB08 = 6,
1857 IMAQ_DB09 = 7,
1858 IMAQ_DB10 = 8,
1859 IMAQ_DB11 = 9,
1860 IMAQ_DB12 = 10,
1861 IMAQ_DB13 = 11,
1862 IMAQ_DB14 = 12,
1863 IMAQ_HAAR = 13,
1864 IMAQ_BIOR1_3 = 14,
1865 IMAQ_BIOR1_5 = 15,
1866 IMAQ_BIOR2_2 = 16,
1867 IMAQ_BIOR2_4 = 17,
1868 IMAQ_BIOR2_6 = 18,
1869 IMAQ_BIOR2_8 = 19,
1870 IMAQ_BIOR3_1 = 20,
1871 IMAQ_BIOR3_3 = 21,
1872 IMAQ_BIOR3_5 = 22,
1873 IMAQ_BIOR3_7 = 23,
1874 IMAQ_BIOR3_9 = 24,
1875 IMAQ_BIOR4_4 = 25,
1876 IMAQ_COIF1 = 26,
1877 IMAQ_COIF2 = 27,
1878 IMAQ_COIF3 = 28,
1879 IMAQ_COIF4 = 29,
1880 IMAQ_COIF5 = 30,
1881 IMAQ_SYM2 = 31,
1882 IMAQ_SYM3 = 32,
1883 IMAQ_SYM4 = 33,
1884 IMAQ_SYM5 = 34,
1885 IMAQ_SYM6 = 35,
1886 IMAQ_SYM7 = 36,
1887 IMAQ_SYM8 = 37,
1888 IMAQ_BIOR5_5 = 38,
1889 IMAQ_BIOR6_8 = 39,
1890 IMAQ_WAVE_TYPE_SIZE_GUARD = 0xFFFFFFFF
1891} WaveletType;
1892
1893typedef enum ParticleClassifierThresholdType_enum {
1894 IMAQ_THRESHOLD_MANUAL = 0, //The classifier performs a manual threshold on the image during preprocessing.
1895 IMAQ_THRESHOLD_AUTO = 1, //The classifier performs an auto threshold on the image during preprocessing.
1896 IMAQ_THRESHOLD_LOCAL = 2, //The classifier performs a local threshold on the image during preprocessing.
1897} ParticleClassifierThresholdType;
1898
1899typedef enum MeasureParticlesCalibrationMode_enum {
1900 IMAQ_CALIBRATION_MODE_PIXEL = 0, //The function takes only pixel measurements on the particles in the image.
1901 IMAQ_CALIBRATION_MODE_CALIBRATED = 1, //The function takes only calibrated measurements on the particles in the image.
1902 IMAQ_CALIBRATION_MODE_BOTH = 2, //The function takes both pixel and calibrated measurements on the particles in the image.
1903 IMAQ_MEASURE_PARTICLES_CALIBRATION_MODE_SIZE_GUARD = 0xFFFFFFFF
1904} MeasureParticlesCalibrationMode;
1905
1906typedef enum GeometricMatchingSearchStrategy_enum {
1907 IMAQ_GEOMETRIC_MATCHING_CONSERVATIVE = 0, //Instructs the pattern matching algorithm to use the largest possible amount of information from the image at the expense of slowing down the speed of the algorithm.
1908 IMAQ_GEOMETRIC_MATCHING_BALANCED = 1, //Instructs the pattern matching algorithm to balance the amount of information from the image it uses with the speed of the algorithm.
1909 IMAQ_GEOMETRIC_MATCHING_AGGRESSIVE = 2, //Instructs the pattern matching algorithm to use a lower amount of information from the image, which allows the algorithm to run quickly but at the expense of accuracy.
1910 IMAQ_GEOMETRIC_MATCHING_SEARCH_STRATEGY_SIZE_GUARD = 0xFFFFFFFF
1911} GeometricMatchingSearchStrategy;
1912
1913typedef enum ColorClassificationResolution_enum {
1914 IMAQ_CLASSIFIER_LOW_RESOLUTION = 0, //Low resolution version of the color classifier.
1915 IMAQ_CLASSIFIER_MEDIUM_RESOLUTION = 1, //Medium resolution version of the color classifier.
1916 IMAQ_CLASSIFIER_HIGH_RESOLUTION = 2, //High resolution version of the color classifier.
1917 IMAQ_CLASSIFIER_RESOLUTION_SIZE_GUARD = 0xFFFFFFFF
1918} ColorClassificationResolution;
1919
1920typedef enum ConnectionConstraintType_enum {
1921 IMAQ_DISTANCE_CONSTRAINT = 0, //Specifies the distance, in pixels, within which the end points of two curves must lie in order to be considered part of a contour.
1922 IMAQ_ANGLE_CONSTRAINT = 1, //Specifies the range, in degrees, within which the difference between the angle of two curves, measured at the end points, must lie in order for the two curves to be considered part of a contour.
1923 IMAQ_CONNECTIVITY_CONSTRAINT = 2, //Specifies the distance, in pixels, within which a line extended from the end point of a curve must pass the end point of another curve in order for the two curves to be considered part of a contour.
1924 IMAQ_GRADIENT_CONSTRAINT = 3, //Specifies the range, in degrees, within which the gradient angles of two curves, measured at the end points, must lie in order for the two curves to be considered part of a contour.
1925 IMAQ_NUM_CONNECTION_CONSTRAINT_TYPES = 4, //.
1926 IMAQ_CONNECTION_CONSTRAINT_SIZE_GUARD = 0xFFFFFFFF
1927} ConnectionConstraintType;
1928
1929typedef enum Barcode2DContrast_enum {
1930 IMAQ_ALL_BARCODE_2D_CONTRASTS = 0, //The function searches for barcodes of each contrast type.
1931 IMAQ_BLACK_ON_WHITE_BARCODE_2D = 1, //The function searches for 2D barcodes containing black data on a white background.
1932 IMAQ_WHITE_ON_BLACK_BARCODE_2D = 2, //The function searches for 2D barcodes containing white data on a black background.
1933 IMAQ_BARCODE_2D_CONTRAST_SIZE_GUARD = 0xFFFFFFFF
1934} Barcode2DContrast;
1935
1936typedef enum QRModelType_enum {
1937 IMAQ_QR_MODELTYPE_AUTO_DETECT = 0, //Specifies that the function will auto-detect the type of QR code.
1938 IMAQ_QR_MODELTYPE_MICRO = 1, //Specifies the QR code is of a micro type.
1939 IMAQ_QR_MODELTYPE_MODEL1 = 2, //Specifies the QR code is of a model1 type.
1940 IMAQ_QR_MODELTYPE_MODEL2 = 3, //Specifies the QR code is of a model2 type.
1941 IMAQ_QR_MODEL_TYPE_SIZE_GUARD = 0xFFFFFFFF
1942} QRModelType;
1943
1944typedef enum WindowBackgroundFillStyle_enum {
1945 IMAQ_FILL_STYLE_SOLID = 0, //Fill the display window with a solid color.
1946 IMAQ_FILL_STYLE_HATCH = 2, //Fill the display window with a pattern defined by WindowBackgroundHatchStyle.
1947 IMAQ_FILL_STYLE_DEFAULT = 3, //Fill the display window with the NI Vision default pattern.
1948 IMAQ_FILL_STYLE_SIZE_GUARD = 0xFFFFFFFF
1949} WindowBackgroundFillStyle;
1950
1951typedef enum ExtractionMode_enum {
1952 IMAQ_NORMAL_IMAGE = 0, //Specifies that the function makes no assumptions about the uniformity of objects in the image or the image background.
1953 IMAQ_UNIFORM_REGIONS = 1, //Specifies that the function assumes that either the objects in the image or the image background consists of uniform pixel values.
1954 IMAQ_EXTRACTION_MODE_SIZE_GUARD = 0xFFFFFFFF
1955} ExtractionMode;
1956
1957typedef enum EdgeFilterSize_enum {
1958 IMAQ_FINE = 0, //Specifies that the function uses a fine (narrow) edge filter.
1959 IMAQ_NORMAL = 1, //Specifies that the function uses a normal edge filter.
1960 IMAQ_CONTOUR_TRACING = 2, //Sets the Edge Filter Size to contour tracing, which provides the best results for contour extraction but increases the time required to process the image.
1961 IMAQ_EDGE_FILTER_SIZE_SIZE_GUARD = 0xFFFFFFFF
1962} EdgeFilterSize;
1963
1964typedef enum Barcode2DSearchMode_enum {
1965 IMAQ_SEARCH_MULTIPLE = 0, //The function searches for multiple 2D barcodes.
1966 IMAQ_SEARCH_SINGLE_CONSERVATIVE = 1, //The function searches for 2D barcodes using the same searching algorithm as IMAQ_SEARCH_MULTIPLE but stops searching after locating one valid barcode.
1967 IMAQ_SEARCH_SINGLE_AGGRESSIVE = 2, //The function searches for a single 2D barcode using a method that assumes the barcode occupies a majority of the search region.
1968 IMAQ_BARCODE_2D_SEARCH_MODE_SIZE_GUARD = 0xFFFFFFFF
1969} Barcode2DSearchMode;
1970
1971typedef enum DataMatrixSubtype_enum {
1972 IMAQ_ALL_DATA_MATRIX_SUBTYPES = 0, //The function searches for Data Matrix barcodes of all subtypes.
1973 IMAQ_DATA_MATRIX_SUBTYPES_ECC_000_ECC_140 = 1, //The function searches for Data Matrix barcodes of subtypes ECC 000, ECC 050, ECC 080, ECC 100 and ECC 140.
1974 IMAQ_DATA_MATRIX_SUBTYPE_ECC_200 = 2, //The function searches for Data Matrix ECC 200 barcodes.
1975 IMAQ_DATA_MATRIX_SUBTYPE_SIZE_GUARD = 0xFFFFFFFF
1976} DataMatrixSubtype;
1977
1978typedef enum FeatureType_enum {
1979 IMAQ_NOT_FOUND_FEATURE = 0, //Specifies the feature is not found.
1980 IMAQ_CIRCLE_FEATURE = 1, //Specifies the feature is a circle.
1981 IMAQ_ELLIPSE_FEATURE = 2, //Specifies the feature is an ellipse.
1982 IMAQ_CONST_CURVE_FEATURE = 3, //Specifies the features is a constant curve.
1983 IMAQ_RECTANGLE_FEATURE = 4, //Specifies the feature is a rectangle.
1984 IMAQ_LEG_FEATURE = 5, //Specifies the feature is a leg.
1985 IMAQ_CORNER_FEATURE = 6, //Specifies the feature is a corner.
1986 IMAQ_PARALLEL_LINE_PAIR_FEATURE = 7, //Specifies the feature is a parallel line pair.
1987 IMAQ_PAIR_OF_PARALLEL_LINE_PAIRS_FEATURE = 8, //Specifies the feature is a pair of parallel line pairs.
1988 IMAQ_LINE_FEATURE = 9, //Specifies the feature is a line.
1989 IMAQ_CLOSED_CURVE_FEATURE = 10, //Specifies the feature is a closed curve.
1990 IMAQ_FEATURE_TYPE_SIZE_GUARD = 0xFFFFFFFF
1991} FeatureType;
1992
1993typedef enum Barcode2DCellShape_enum {
1994 IMAQ_SQUARE_CELLS = 0, //The function uses an algorithm for decoding the 2D barcode that works with square data cells.
1995 IMAQ_ROUND_CELLS = 1, //The function uses an algorithm for decoding the 2D barcode that works with round data cells.
1996 IMAQ_BARCODE_2D_CELL_SHAPE_SIZE_GUARD = 0xFFFFFFFF
1997} Barcode2DCellShape;
1998
1999typedef enum LocalThresholdMethod_enum {
2000 IMAQ_NIBLACK = 0, //The function computes thresholds for each pixel based on its local statistics using the Niblack local thresholding algorithm.
2001 IMAQ_BACKGROUND_CORRECTION = 1, //The function performs background correction first to eliminate non-uniform lighting effects, then performs thresholding using the Otsu thresholding algorithm.
2002 IMAQ_LOCAL_THRESHOLD_METHOD_SIZE_GUARD = 0xFFFFFFFF
2003} LocalThresholdMethod;
2004
2005typedef enum Barcode2DType_enum {
2006 IMAQ_PDF417 = 0, //The 2D barcode is of type PDF417.
2007 IMAQ_DATA_MATRIX_ECC_000 = 1, //The 2D barcode is of type Data Matrix ECC 000.
2008 IMAQ_DATA_MATRIX_ECC_050 = 2, //The 2D barcode is of type Data Matrix ECC 050.
2009 IMAQ_DATA_MATRIX_ECC_080 = 3, //The 2D barcode is of type Data Matrix ECC 080.
2010 IMAQ_DATA_MATRIX_ECC_100 = 4, //The 2D barcode is of type Data Matrix ECC 100.
2011 IMAQ_DATA_MATRIX_ECC_140 = 5, //The 2D barcode is of type Data Matrix ECC 140.
2012 IMAQ_DATA_MATRIX_ECC_200 = 6, //The 2D barcode is of type Data Matrix ECC 200.
2013 IMAQ_BARCODE_2D_TYPE_SIZE_GUARD = 0xFFFFFFFF
2014} Barcode2DType;
2015
2016typedef enum ClassifierEngineType_enum {
2017 IMAQ_ENGINE_NONE = 0, //No engine has been set on this classifier session.
2018 IMAQ_ENGINE_NEAREST_NEIGHBOR = 1, //Nearest neighbor engine.
2019 IMAQ_ENGINE_SUPPORT_VECTOR_MACHINE = 2,
2020 IMAQ_CLASSIFIER_ENGINE_TYPE_SIZE_GUARD = 0xFFFFFFFF
2021} ClassifierEngineType;
2022
2023typedef enum ClassifierType_enum {
2024 IMAQ_CLASSIFIER_CUSTOM = 0, //The classifier session classifies vectors of doubles.
2025 IMAQ_CLASSIFIER_PARTICLE = 1, //The classifier session classifies particles in binary images.
2026 IMAQ_CLASSIFIER_COLOR = 2, //The classifier session classifies an image based on its color.
2027 IMAQ_CLASSIFIER_TEXTURE = 3, //The classifier session classifies an image based on its texture.
2028 IMAQ_CLASSIFIER_TYPE_SIZE_GUARD = 0xFFFFFFFF
2029} ClassifierType;
2030
2031typedef enum ParticleType_enum {
2032 IMAQ_PARTICLE_BRIGHT = 0, //Bright particles.
2033 IMAQ_PARTICLE_DARK = 1, //Dark particles.
2034 IMAQ_PARTICLE_TYPE_SIZE_GUARD = 0xFFFFFFFF
2035} ParticleType;
2036
2037typedef enum VisionInfoType2_enum {
2038 IMAQ_VISIONINFO_CALIBRATION = 0x01, //Used to indicate interaction with the Calibration information in an image.
2039 IMAQ_VISIONINFO_OVERLAY = 0x02, //Used to indicate interaction with the Overlay information in an image.
2040 IMAQ_VISIONINFO_GRAYTEMPLATE = 0x04, //Used to indicate interaction with the grayscale template information in an image.
2041 IMAQ_VISIONINFO_COLORTEMPLATE = 0x08, //Used to indicate interaction with the color template information in an image.
2042 IMAQ_VISIONINFO_GEOMETRICTEMPLATE = 0x10, //Used to indicate interaction with the geometric template information in an image.
2043 IMAQ_VISIONINFO_CUSTOMDATA = 0x20, //Used to indicate interaction with the binary or text Custom Data in an image.
2044 IMAQ_VISIONINFO_GOLDENTEMPLATE = 0x40, //Used to indicate interaction with the golden template information in an image.
2045 IMAQ_VISIONINFO_GEOMETRICTEMPLATE2 = 0x80, //Used to indicate interaction with the geometric template 2 information in an image.
2046 IMAQ_VISIONINFO_ALL = 0xFFFFFFFF, //Removes, checks for, or indicates the presence of all types of extra information in an image.
2047} VisionInfoType2;
2048
2049typedef enum ReadClassifierFileMode_enum {
2050 IMAQ_CLASSIFIER_READ_ALL = 0, //Read all information from the classifier file.
2051 IMAQ_CLASSIFIER_READ_SAMPLES = 1, //Read only the samples from the classifier file.
2052 IMAQ_CLASSIFIER_READ_PROPERTIES = 2, //Read only the properties from the classifier file.
2053 IMAQ_READ_CLASSIFIER_FILE_MODES_SIZE_GUARD = 0xFFFFFFFF
2054} ReadClassifierFileMode;
2055
2056typedef enum WriteClassifierFileMode_enum {
2057 IMAQ_CLASSIFIER_WRITE_ALL = 0, //Writes all information to the classifier file.
2058 IMAQ_CLASSIFIER_WRITE_CLASSIFY_ONLY = 1, //Write only the information needed to classify to the classifier file.
2059 IMAQ_WRITE_CLASSIFIER_FILE_MODES_SIZE_GUARD = 0xFFFFFFFF
2060} WriteClassifierFileMode;
2061
2062typedef enum Barcode2DShape_enum {
2063 IMAQ_SQUARE_BARCODE_2D = 0, //The function searches for square 2D barcodes.
2064 IMAQ_RECTANGULAR_BARCODE_2D = 1, //The function searches for rectangular 2D barcodes.
2065 IMAQ_BARCODE_2D_SHAPE_SIZE_GUARD = 0xFFFFFFFF
2066} Barcode2DShape;
2067
2068typedef enum DataMatrixRotationMode_enum {
2069 IMAQ_UNLIMITED_ROTATION = 0, //The function allows for unlimited rotation.
2070 IMAQ_0_DEGREES = 1, //The function allows for between -5 and 5 degrees of rotation.
2071 IMAQ_90_DEGREES = 2, //The function allows for between 85 and 95 degrees of rotation.
2072 IMAQ_180_DEGREES = 3, //The function allows for between 175 and 185 degrees of rotation.
2073 IMAQ_270_DEGREES = 4, //The function allows for between 265 and 275 degrees of rotation.
2074 IMAQ_DATA_MATRIX_ROTATION_MODE_SIZE_GUARD = 0xFFFFFFFF
2075} DataMatrixRotationMode;
2076
2077typedef enum AIMGrade_enum {
2078 IMAQ_AIM_GRADE_F = 0, //The Data Matrix barcode received a grade of F.
2079 IMAQ_AIM_GRADE_D = 1, //The Data Matrix barcode received a grade of D.
2080 IMAQ_AIM_GRADE_C = 2, //The Data Matrix barcode received a grade of C.
2081 IMAQ_AIM_GRADE_B = 3, //The Data Matrix barcode received a grade of B.
2082 IMAQ_AIM_GRADE_A = 4, //The Data Matrix barcode received a grade of A.
2083 IMAQ_DATA_MATRIX_AIM_GRADE_SIZE_GUARD = 0xFFFFFFFF
2084} AIMGrade;
2085
2086typedef enum DataMatrixCellFillMode_enum {
2087 IMAQ_AUTO_DETECT_CELL_FILL_MODE = -2, //Sets the function to determine the Data Matrix barcode cell fill percentage automatically.
2088 IMAQ_LOW_FILL = 0, //Sets the function to read Data Matrix barcodes with a cell fill percentage of less than 30 percent.
2089 IMAQ_NORMAL_FILL = 1, //Sets the function to read Data Matrix barcodes with a cell fill percentage greater than or equal to 30 percent.
2090 IMAQ_DATA_MATRIX_CELL_FILL_MODE_SIZE_GUARD = 0xFFFFFFFF
2091} DataMatrixCellFillMode;
2092
2093typedef enum DataMatrixDemodulationMode_enum {
2094 IMAQ_AUTO_DETECT_DEMODULATION_MODE = -2, //The function will try each demodulation mode and use the one which decodes the Data Matrix barcode within the fewest iterations and utilizing the least amount of error correction.
2095 IMAQ_HISTOGRAM = 0, //The function uses a histogram of all of the Data Matrix cells to calculate a threshold.
2096 IMAQ_LOCAL_CONTRAST = 1, //The function examines each of the cell's neighbors to determine if the cell is on or off.
2097 IMAQ_COMBINED = 2, //The function uses the histogram of the Data Matrix barcode to calculate a threshold.
2098 IMAQ_ALL_DEMODULATION_MODES = 3, //The function tries IMAQ_HISTOGRAM, then IMAQ_LOCAL_CONTRAST and then IMAQ_COMBINATION, stopping once one mode is successful.
2099 IMAQ_DATA_MATRIX_DEMODULATION_MODE_SIZE_GUARD = 0xFFFFFFFF
2100} DataMatrixDemodulationMode;
2101
2102typedef enum DataMatrixECC_enum {
2103 IMAQ_AUTO_DETECT_ECC = -2, //Sets the function to determine the Data Matrix barcode ECC automatically.
2104 IMAQ_ECC_000 = 0, //Sets the function to read Data Matrix barcodes of ECC 000 only.
2105 IMAQ_ECC_050 = 50, //Sets the function to read Data Matrix barcodes of ECC 050 only.
2106 IMAQ_ECC_080 = 80, //Sets the function to read Data Matrix barcodes of ECC 080 only.
2107 IMAQ_ECC_100 = 100, //Sets the function to read Data Matrix barcodes of ECC 100 only.
2108 IMAQ_ECC_140 = 140, //Sets the function to read Data Matrix barcodes of ECC 140 only.
2109 IMAQ_ECC_000_140 = 190, //Sets the function to read Data Matrix barcodes of ECC 000, ECC 050, ECC 080, ECC 100, and ECC 140 only.
2110 IMAQ_ECC_200 = 200, //Sets the function to read Data Matrix barcodes of ECC 200 only.
2111 IMAQ_DATA_MATRIX_ECC_SIZE_GUARD = 0xFFFFFFFF
2112} DataMatrixECC;
2113
2114typedef enum DataMatrixPolarity_enum {
2115 IMAQ_AUTO_DETECT_POLARITY = -2, //Sets the function to determine the Data Matrix barcode polarity automatically.
2116 IMAQ_BLACK_DATA_ON_WHITE_BACKGROUND = 0, //Sets the function to read Data Matrix barcodes with dark data on a bright background.
2117 IMAQ_WHITE_DATA_ON_BLACK_BACKGROUND = 1, //Sets the function to read Data Matrix barcodes with bright data on a dark background.
2118 IMAQ_DATA_MATRIX_POLARITY_SIZE_GUARD = 0xFFFFFFFF
2119} DataMatrixPolarity;
2120
2121typedef enum DataMatrixCellFilterMode_enum {
2122 IMAQ_AUTO_DETECT_CELL_FILTER_MODE = -2, //The function will try all filter modes and uses the one that decodes the Data Matrix barcode within the fewest iterations and utilizing the least amount of error correction.
2123 IMAQ_AVERAGE_FILTER = 0, //The function sets the pixel value for the cell to the average of the sampled pixels.
2124 IMAQ_MEDIAN_FILTER = 1, //The function sets the pixel value for the cell to the median of the sampled pixels.
2125 IMAQ_CENTRAL_AVERAGE_FILTER = 2, //The function sets the pixel value for the cell to the average of the pixels in the center of the cell sample.
2126 IMAQ_HIGH_AVERAGE_FILTER = 3, //The function sets the pixel value for the cell to the average value of the half of the sampled pixels with the highest pixel values.
2127 IMAQ_LOW_AVERAGE_FILTER = 4, //The function sets the pixel value for the cell to the average value of the half of the sampled pixels with the lowest pixel values.
2128 IMAQ_VERY_HIGH_AVERAGE_FILTER = 5, //The function sets the pixel value for the cell to the average value of the ninth of the sampled pixels with the highest pixel values.
2129 IMAQ_VERY_LOW_AVERAGE_FILTER = 6, //The function sets the pixel value for the cell to the average value of the ninth of the sampled pixels with the lowest pixel values.
2130 IMAQ_ALL_CELL_FILTERS = 8, //The function tries each filter mode, starting with IMAQ_AVERAGE_FILTER and ending with IMAQ_VERY_LOW_AVERAGE_FILTER, stopping once a filter mode decodes correctly.
2131 IMAQ_DATA_MATRIX_CELL_FILTER_MODE_SIZE_GUARD = 0xFFFFFFFF
2132} DataMatrixCellFilterMode;
2133
2134typedef enum WindowBackgroundHatchStyle_enum {
2135 IMAQ_HATCH_STYLE_HORIZONTAL = 0, //The background of the display window will be horizontal bars.
2136 IMAQ_HATCH_STYLE_VERTICAL = 1, //The background of the display window will be vertical bars.
2137 IMAQ_HATCH_STYLE_FORWARD_DIAGONAL = 2, //The background of the display window will be diagonal bars.
2138 IMAQ_HATCH_STYLE_BACKWARD_DIAGONAL = 3, //The background of the display window will be diagonal bars.
2139 IMAQ_HATCH_STYLE_CROSS = 4, //The background of the display window will be intersecting horizontal and vertical bars.
2140 IMAQ_HATCH_STYLE_CROSS_HATCH = 5, //The background of the display window will be intersecting forward and backward diagonal bars.
2141 IMAQ_HATCH_STYLE_SIZE_GUARD = 0xFFFFFFFF
2142} WindowBackgroundHatchStyle;
2143
2144typedef enum DataMatrixMirrorMode_enum {
2145 IMAQ_AUTO_DETECT_MIRROR = -2, //Specifies that the function should determine if the Data Matrix barcode is mirrored.
2146 IMAQ_APPEARS_NORMAL = 0, //Specifies that the function should expect the Data Matrix barcode to appear normal.
2147 IMAQ_APPEARS_MIRRORED = 1, //Specifies that the function should expect the Data Matrix barcode to appear mirrored.
2148 IMAQ_DATA_MATRIX_MIRROR_MODE_SIZE_GUARD = 0xFFFFFFFF
2149} DataMatrixMirrorMode;
2150
2151typedef enum CalibrationMode2_enum {
2152 IMAQ_PERSPECTIVE_MODE = 0, //Functions correct for distortion caused by the camera's perspective.
2153 IMAQ_MICROPLANE_MODE = 1, //Functions correct for distortion caused by the camera's lens.
2154 IMAQ_SIMPLE_CALIBRATION_MODE = 2, //Functions do not correct for distortion.
2155 IMAQ_CORRECTED_IMAGE_MODE = 3, //The image is already corrected.
2156 IMAQ_NO_CALIBRATION_MODE = 4, //Image with No calibration.
2157 IMAQ_CALIBRATION_MODE2_SIZE_GUARD = 0xFFFFFFFF
2158} CalibrationMode2;
2159
2160typedef enum DataMatrixGradingMode_enum {
2161 IMAQ_NO_GRADING = 0, //The function does not make any preparatory calculations.
2162 IMAQ_PREPARE_FOR_AIM = 1, //The function prepares the image for grading using the AIM Print Quality metrics.
2163 IMAQ_DATA_MATRIX_GRADING_MODE_SIZE_GUARD = 0xFFFFFFFF
2164} DataMatrixGradingMode;
2165
2166typedef enum WaveletTransformMode_enum {
2167 IMAQ_WAVELET_TRANSFORM_INTEGER = 0, //Uses a 5-3 reversible integer transform.
2168 IMAQ_WAVELET_TRANSFORM_FLOATING_POINT = 1, //Performs a 9-7 irreversible floating-point transform.
2169 IMAQ_WAVELET_TRANSFORM_MODE_SIZE_GUARD = 0xFFFFFFFF
2170} WaveletTransformMode;
2171
2172typedef enum NormalizationMethod_enum {
2173 IMAQ_NORMALIZATION_NONE = 0, //No normalization.
2174 IMAQ_NORMALIZATION_HISTOGRAM_MATCHING = 1, //Adjust image so its histogram is similar to the golden template's histogram.
2175 IMAQ_NORMALIZATION_AVERAGE_MATCHING = 2, //Adjust image so its mean pixel value equals the golden template's mean pixel value.
2176 IMAQ_NORMALIZATION_SIZE_GUARD = 0xFFFFFFFF
2177} NormalizationMethod;
2178
2179typedef enum RegistrationMethod_enum {
2180 IMAQ_REGISTRATION_NONE = 0, //No registration.
2181 IMAQ_REGISTRATION_PERSPECTIVE = 1, //Adjust image to correct for minor variations in alignment or perspective.
2182 IMAQ_REGISTRATION_SIZE_GUARD = 0xFFFFFFFF
2183} RegistrationMethod;
2184
2185typedef enum LinearAveragesMode_enum {
2186 IMAQ_COLUMN_AVERAGES = 1, //Specifies that the function calculates the mean pixel value of each column.
2187 IMAQ_ROW_AVERAGES = 2, //Specifies that the function calculates the mean pixel value of each row.
2188 IMAQ_RISING_DIAGONAL_AVERAGES = 4, //Specifies that the function calculates the mean pixel value of each diagonal running from the lower left to the upper right of the inspected area of the image.
2189 IMAQ_FALLING_DIAGONAL_AVERAGES = 8, //Specifies that the function calculates the mean pixel value of each diagonal running from the upper left to the lower right of the inspected area of the image.
2190 IMAQ_ALL_LINEAR_AVERAGES = 15, //Specifies that the function calculates all four linear mean pixel values.
2191 IMAQ_LINEAR_AVERAGES_MODE_SIZE_GUARD = 0xFFFFFFFF
2192} LinearAveragesMode;
2193
2194typedef enum CompressionType_enum {
2195 IMAQ_COMPRESSION_NONE = 0, //Specifies that the function should not compress the image.
2196 IMAQ_COMPRESSION_JPEG = 1, //Specifies that the function should use lossy JPEG compression on the image.
2197 IMAQ_COMPRESSION_PACKED_BINARY = 2, //Specifies that the function should use lossless binary packing on the image.
2198 IMAQ_COMPRESSION_TYPE_SIZE_GUARD = 0xFFFFFFFF
2199} CompressionType;
2200
2201typedef enum FlattenType_enum {
2202 IMAQ_FLATTEN_IMAGE = 0, //Flattens just the image data.
2203 IMAQ_FLATTEN_IMAGE_AND_VISION_INFO = 1, //Flattens the image data and any Vision information associated with the image.
2204 IMAQ_FLATTEN_TYPE_SIZE_GUARD = 0xFFFFFFFF
2205} FlattenType;
2206
2207typedef enum DataMatrixCellSampleSize_enum {
2208 IMAQ_AUTO_DETECT_CELL_SAMPLE_SIZE = -2, //The function will try each sample size and use the one which decodes the Data Matrix barcode within the fewest iterations and utilizing the least amount of error correction.
2209 IMAQ_1x1 = 1, //The function will use a 1x1 sized sample from each cell.
2210 IMAQ_2x2 = 2, //The function will use a 2x2 sized sample from each cell.
2211 IMAQ_3x3 = 3, //The function will use a 3x3 sized sample from each cell.
2212 IMAQ_4x4 = 4, //The function will use a 4x4 sized sample from each cell.
2213 IMAQ_5x5 = 5, //The function will use a 5x5 sized sample from each cell.
2214 IMAQ_6x6 = 6, //The function will use a 6x6 sized sample from each cell.
2215 IMAQ_7x7 = 7, //The function will use a 7x7 sized sample from each cell.
2216 IMAQ_DATA_MATRIX_CELL_SAMPLE_SIZE_SIZE_GUARD = 0xFFFFFFFF
2217} DataMatrixCellSampleSize;
2218
2219
2220//============================================================================
2221// Forward Declare Data Structures
2222//============================================================================
2223typedef struct Image_struct Image;
2224typedef struct ROI_struct ROI;
2225typedef struct Overlay_struct Overlay;
2226typedef struct ClassifierSession_struct ClassifierSession;
2227typedef struct MultipleGeometricPattern_struct MultipleGeometricPattern;
2228typedef int ContourID;
2229typedef unsigned long SESSION_ID;
2230typedef int AVISession;
2231typedef char* FilterName;
2232typedef char String255[256];
2233typedef struct CharSet_struct CharSet;
2234typedef struct OCRSpacingOptions_struct OCRSpacingOptions;
2235typedef struct OCRProcessingOptions_struct OCRProcessingOptions;
2236typedef struct ReadTextOptions_struct ReadTextOptions;
2237typedef struct CharInfo_struct CharInfo;
2238typedef struct CharReport_struct CharReport;
2239typedef struct ReadTextReport_struct ReadTextReport;
2240typedef struct DivisionModel_struct DivisionModel;
2241typedef struct FocalLength_struct FocalLength;
2242typedef struct PolyModel_struct PolyModel;
2243typedef struct DistortionModelParams_struct DistortionModelParams;
2244typedef struct PointFloat_struct PointFloat;
2245typedef struct InternalParameters_struct InternalParameters;
2246typedef struct MaxGridSize_struct MaxGridSize;
2247typedef struct ImageSize_struct ImageSize;
2248typedef struct CalibrationReferencePoints_struct CalibrationReferencePoints;
2249typedef struct GetCameraParametersReport_struct GetCameraParametersReport;
2250typedef struct CalibrationAxisInfo_struct CalibrationAxisInfo;
2251typedef struct CalibrationLearnSetupInfo_struct CalibrationLearnSetupInfo;
2252typedef struct GridDescriptor_struct GridDescriptor;
2253typedef struct ErrorStatistics_struct ErrorStatistics;
2254typedef struct GetCalibrationInfoReport_struct GetCalibrationInfoReport;
2255typedef struct EdgePolarity_struct EdgePolarity;
2256typedef struct ClampSettings_struct ClampSettings;
2257typedef struct PointDouble_struct PointDouble;
2258typedef struct PointDoublePair_struct PointDoublePair;
2259typedef struct ClampResults_struct ClampResults;
2260typedef struct ClampPoints_struct ClampPoints;
2261typedef struct RGBValue_struct RGBValue;
2262typedef struct ClampOverlaySettings_struct ClampOverlaySettings;
2263typedef struct ClampMax2Report_struct ClampMax2Report;
2264typedef struct ContourFitSplineReport_struct ContourFitSplineReport;
2265typedef struct LineFloat_struct LineFloat;
2266typedef struct LineEquation_struct LineEquation;
2267typedef struct ContourFitLineReport_struct ContourFitLineReport;
2268typedef struct ContourFitPolynomialReport_struct ContourFitPolynomialReport;
2269typedef struct PartialCircle_struct PartialCircle;
2270typedef struct PartialEllipse_struct PartialEllipse;
2271typedef struct SetupMatchPatternData_struct SetupMatchPatternData;
2272typedef struct RangeSettingDouble_struct RangeSettingDouble;
2273typedef struct GeometricAdvancedSetupDataOption_struct GeometricAdvancedSetupDataOption;
2274typedef struct ContourInfoReport_struct ContourInfoReport;
2275typedef struct ROILabel_struct ROILabel;
2276typedef struct SupervisedColorSegmentationReport_struct SupervisedColorSegmentationReport;
2277typedef struct LabelToROIReport_struct LabelToROIReport;
2278typedef struct ColorSegmenationOptions_struct ColorSegmenationOptions;
2279typedef struct ClassifiedCurve_struct ClassifiedCurve;
2280typedef struct RangeDouble_struct RangeDouble;
2281typedef struct RangeLabel_struct RangeLabel;
2282typedef struct CurvatureAnalysisReport_struct CurvatureAnalysisReport;
2283typedef struct Disparity_struct Disparity;
2284typedef struct ComputeDistancesReport_struct ComputeDistancesReport;
2285typedef struct MatchMode_struct MatchMode;
2286typedef struct ClassifiedDisparity_struct ClassifiedDisparity;
2287typedef struct ClassifyDistancesReport_struct ClassifyDistancesReport;
2288typedef struct ContourComputeCurvatureReport_struct ContourComputeCurvatureReport;
2289typedef struct ContourOverlaySettings_struct ContourOverlaySettings;
2290typedef struct CurveParameters_struct CurveParameters;
2291typedef struct ExtractContourReport_struct ExtractContourReport;
2292typedef struct ConnectionConstraint_struct ConnectionConstraint;
2293typedef struct ExtractTextureFeaturesReport_struct ExtractTextureFeaturesReport;
2294typedef struct WaveletBandsReport_struct WaveletBandsReport;
2295typedef struct CircleFitOptions_struct CircleFitOptions;
2296typedef struct EdgeOptions2_struct EdgeOptions2;
2297typedef struct FindCircularEdgeOptions_struct FindCircularEdgeOptions;
2298typedef struct FindConcentricEdgeOptions_struct FindConcentricEdgeOptions;
2299typedef struct ConcentricEdgeFitOptions_struct ConcentricEdgeFitOptions;
2300typedef struct FindConcentricEdgeReport_struct FindConcentricEdgeReport;
2301typedef struct FindCircularEdgeReport_struct FindCircularEdgeReport;
2302typedef struct WindowSize_struct WindowSize;
2303typedef struct DisplacementVector_struct DisplacementVector;
2304typedef struct WaveletOptions_struct WaveletOptions;
2305typedef struct CooccurrenceOptions_struct CooccurrenceOptions;
2306typedef struct ParticleClassifierLocalThresholdOptions_struct ParticleClassifierLocalThresholdOptions;
2307typedef struct RangeFloat_struct RangeFloat;
2308typedef struct ParticleClassifierAutoThresholdOptions_struct ParticleClassifierAutoThresholdOptions;
2309typedef struct ParticleClassifierPreprocessingOptions2_struct ParticleClassifierPreprocessingOptions2;
2310typedef struct MeasureParticlesReport_struct MeasureParticlesReport;
2311typedef struct GeometricPatternMatch3_struct GeometricPatternMatch3;
2312typedef struct MatchGeometricPatternAdvancedOptions3_struct MatchGeometricPatternAdvancedOptions3;
2313typedef struct ColorOptions_struct ColorOptions;
2314typedef struct SampleScore_struct SampleScore;
2315typedef struct ClassifierReportAdvanced_struct ClassifierReportAdvanced;
2316typedef struct LearnGeometricPatternAdvancedOptions2_struct LearnGeometricPatternAdvancedOptions2;
2317typedef struct ParticleFilterOptions2_struct ParticleFilterOptions2;
2318typedef struct FindEdgeOptions2_struct FindEdgeOptions2;
2319typedef struct FindEdgeReport_struct FindEdgeReport;
2320typedef struct FindTransformRectOptions2_struct FindTransformRectOptions2;
2321typedef struct FindTransformRectsOptions2_struct FindTransformRectsOptions2;
2322typedef struct ReadTextReport3_struct ReadTextReport3;
2323typedef struct CharacterStatistics_struct CharacterStatistics;
2324typedef struct CharReport3_struct CharReport3;
2325typedef struct ArcInfo2_struct ArcInfo2;
2326typedef struct EdgeReport2_struct EdgeReport2;
2327typedef struct SearchArcInfo_struct SearchArcInfo;
2328typedef struct ConcentricRakeReport2_struct ConcentricRakeReport2;
2329typedef struct SpokeReport2_struct SpokeReport2;
2330typedef struct EdgeInfo_struct EdgeInfo;
2331typedef struct SearchLineInfo_struct SearchLineInfo;
2332typedef struct RakeReport2_struct RakeReport2;
2333typedef struct TransformBehaviors_struct TransformBehaviors;
2334typedef struct QRCodeDataToken_struct QRCodeDataToken;
2335typedef struct ParticleFilterOptions_struct ParticleFilterOptions;
2336typedef struct StraightEdgeReport2_struct StraightEdgeReport2;
2337typedef struct StraightEdgeOptions_struct StraightEdgeOptions;
2338typedef struct StraightEdge_struct StraightEdge;
2339typedef struct QRCodeSearchOptions_struct QRCodeSearchOptions;
2340typedef struct QRCodeSizeOptions_struct QRCodeSizeOptions;
2341typedef struct QRCodeDescriptionOptions_struct QRCodeDescriptionOptions;
2342typedef struct QRCodeReport_struct QRCodeReport;
2343typedef struct AIMGradeReport_struct AIMGradeReport;
2344typedef struct DataMatrixSizeOptions_struct DataMatrixSizeOptions;
2345typedef struct DataMatrixDescriptionOptions_struct DataMatrixDescriptionOptions;
2346typedef struct DataMatrixSearchOptions_struct DataMatrixSearchOptions;
2347typedef struct DataMatrixReport_struct DataMatrixReport;
2348typedef struct JPEG2000FileAdvancedOptions_struct JPEG2000FileAdvancedOptions;
2349typedef struct MatchGeometricPatternAdvancedOptions2_struct MatchGeometricPatternAdvancedOptions2;
2350typedef struct InspectionAlignment_struct InspectionAlignment;
2351typedef struct InspectionOptions_struct InspectionOptions;
2352typedef struct CharReport2_struct CharReport2;
2353typedef struct CharInfo2_struct CharInfo2;
2354typedef struct ReadTextReport2_struct ReadTextReport2;
2355typedef struct EllipseFeature_struct EllipseFeature;
2356typedef struct CircleFeature_struct CircleFeature;
2357typedef struct ConstCurveFeature_struct ConstCurveFeature;
2358typedef struct RectangleFeature_struct RectangleFeature;
2359typedef struct LegFeature_struct LegFeature;
2360typedef struct CornerFeature_struct CornerFeature;
2361typedef struct LineFeature_struct LineFeature;
2362typedef struct ParallelLinePairFeature_struct ParallelLinePairFeature;
2363typedef struct PairOfParallelLinePairsFeature_struct PairOfParallelLinePairsFeature;
2364typedef union GeometricFeature_union GeometricFeature;
2365typedef struct FeatureData_struct FeatureData;
2366typedef struct GeometricPatternMatch2_struct GeometricPatternMatch2;
2367typedef struct ClosedCurveFeature_struct ClosedCurveFeature;
2368typedef struct LineMatch_struct LineMatch;
2369typedef struct LineDescriptor_struct LineDescriptor;
2370typedef struct RectangleDescriptor_struct RectangleDescriptor;
2371typedef struct RectangleMatch_struct RectangleMatch;
2372typedef struct EllipseDescriptor_struct EllipseDescriptor;
2373typedef struct EllipseMatch_struct EllipseMatch;
2374typedef struct CircleMatch_struct CircleMatch;
2375typedef struct CircleDescriptor_struct CircleDescriptor;
2376typedef struct ShapeDetectionOptions_struct ShapeDetectionOptions;
2377typedef struct Curve_struct Curve;
2378typedef struct CurveOptions_struct CurveOptions;
2379typedef struct Barcode2DInfo_struct Barcode2DInfo;
2380typedef struct DataMatrixOptions_struct DataMatrixOptions;
2381typedef struct ClassifierAccuracyReport_struct ClassifierAccuracyReport;
2382typedef struct NearestNeighborClassResult_struct NearestNeighborClassResult;
2383typedef struct NearestNeighborTrainingReport_struct NearestNeighborTrainingReport;
2384typedef struct ParticleClassifierPreprocessingOptions_struct ParticleClassifierPreprocessingOptions;
2385typedef struct ClassifierSampleInfo_struct ClassifierSampleInfo;
2386typedef struct ClassScore_struct ClassScore;
2387typedef struct ClassifierReport_struct ClassifierReport;
2388typedef struct NearestNeighborOptions_struct NearestNeighborOptions;
2389typedef struct ParticleClassifierOptions_struct ParticleClassifierOptions;
2390typedef struct RGBU64Value_struct RGBU64Value;
2391typedef struct GeometricPatternMatch_struct GeometricPatternMatch;
2392typedef struct MatchGeometricPatternAdvancedOptions_struct MatchGeometricPatternAdvancedOptions;
2393typedef struct MatchGeometricPatternOptions_struct MatchGeometricPatternOptions;
2394typedef struct LearnGeometricPatternAdvancedOptions_struct LearnGeometricPatternAdvancedOptions;
2395typedef struct FitEllipseOptions_struct FitEllipseOptions;
2396typedef struct FitCircleOptions_struct FitCircleOptions;
2397typedef struct ConstructROIOptions2_struct ConstructROIOptions2;
2398typedef struct HSLValue_struct HSLValue;
2399typedef struct HSVValue_struct HSVValue;
2400typedef struct HSIValue_struct HSIValue;
2401typedef struct CIELabValue_struct CIELabValue;
2402typedef struct CIEXYZValue_struct CIEXYZValue;
2403typedef union Color2_union Color2;
2404typedef struct BestEllipse2_struct BestEllipse2;
2405typedef struct LearnPatternAdvancedOptions_struct LearnPatternAdvancedOptions;
2406typedef struct AVIInfo_struct AVIInfo;
2407typedef struct LearnPatternAdvancedShiftOptions_struct LearnPatternAdvancedShiftOptions;
2408typedef struct LearnPatternAdvancedRotationOptions_struct LearnPatternAdvancedRotationOptions;
2409typedef struct MatchPatternAdvancedOptions_struct MatchPatternAdvancedOptions;
2410typedef struct ParticleFilterCriteria2_struct ParticleFilterCriteria2;
2411typedef struct BestCircle2_struct BestCircle2;
2412typedef struct OCRSpacingOptions_struct OCRSpacingOptions;
2413typedef struct OCRProcessingOptions_struct OCRProcessingOptions;
2414typedef struct ReadTextOptions_struct ReadTextOptions;
2415typedef struct CharInfo_struct CharInfo;
2416#if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
2417typedef struct Rect_struct Rect;
2418#endif
2419typedef struct CharReport_struct CharReport;
2420typedef struct ReadTextReport_struct ReadTextReport;
2421#if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
2422typedef struct Point_struct Point;
2423#endif
2424typedef struct Annulus_struct Annulus;
2425typedef struct EdgeLocationReport_struct EdgeLocationReport;
2426typedef struct EdgeOptions_struct EdgeOptions;
2427typedef struct EdgeReport_struct EdgeReport;
2428typedef struct ExtremeReport_struct ExtremeReport;
2429typedef struct FitLineOptions_struct FitLineOptions;
2430typedef struct DisplayMapping_struct DisplayMapping;
2431typedef struct DetectExtremesOptions_struct DetectExtremesOptions;
2432typedef struct ImageInfo_struct ImageInfo;
2433typedef struct LCDOptions_struct LCDOptions;
2434typedef struct LCDReport_struct LCDReport;
2435typedef struct LCDSegments_struct LCDSegments;
2436typedef struct LearnCalibrationOptions_struct LearnCalibrationOptions;
2437typedef struct LearnColorPatternOptions_struct LearnColorPatternOptions;
2438typedef struct Line_struct Line;
2439typedef struct LinearAverages_struct LinearAverages;
2440typedef struct LineProfile_struct LineProfile;
2441typedef struct MatchColorPatternOptions_struct MatchColorPatternOptions;
2442typedef struct HistogramReport_struct HistogramReport;
2443typedef struct ArcInfo_struct ArcInfo;
2444typedef struct AxisReport_struct AxisReport;
2445typedef struct BarcodeInfo_struct BarcodeInfo;
2446typedef struct BCGOptions_struct BCGOptions;
2447typedef struct BestCircle_struct BestCircle;
2448typedef struct BestEllipse_struct BestEllipse;
2449typedef struct BestLine_struct BestLine;
2450typedef struct BrowserOptions_struct BrowserOptions;
2451typedef struct CoordinateSystem_struct CoordinateSystem;
2452typedef struct CalibrationInfo_struct CalibrationInfo;
2453typedef struct CalibrationPoints_struct CalibrationPoints;
2454typedef struct CaliperOptions_struct CaliperOptions;
2455typedef struct CaliperReport_struct CaliperReport;
2456typedef struct DrawTextOptions_struct DrawTextOptions;
2457typedef struct CircleReport_struct CircleReport;
2458typedef struct ClosedContour_struct ClosedContour;
2459typedef struct ColorHistogramReport_struct ColorHistogramReport;
2460typedef struct ColorInformation_struct ColorInformation;
2461typedef struct Complex_struct Complex;
2462typedef struct ConcentricRakeReport_struct ConcentricRakeReport;
2463typedef struct ConstructROIOptions_struct ConstructROIOptions;
2464typedef struct ContourInfo_struct ContourInfo;
2465typedef union ContourUnion_union ContourUnion;
2466typedef struct ContourInfo2_struct ContourInfo2;
2467typedef struct ContourPoint_struct ContourPoint;
2468typedef struct CoordinateTransform_struct CoordinateTransform;
2469typedef struct CoordinateTransform2_struct CoordinateTransform2;
2470typedef struct CannyOptions_struct CannyOptions;
2471typedef struct Range_struct Range;
2472typedef struct UserPointSymbol_struct UserPointSymbol;
2473typedef struct View3DOptions_struct View3DOptions;
2474typedef struct MatchPatternOptions_struct MatchPatternOptions;
2475typedef struct TIFFFileOptions_struct TIFFFileOptions;
2476typedef union Color_union Color;
2477typedef union PixelValue_union PixelValue;
2478typedef struct OpenContour_struct OpenContour;
2479typedef struct OverlayTextOptions_struct OverlayTextOptions;
2480typedef struct ParticleFilterCriteria_struct ParticleFilterCriteria;
2481typedef struct ParticleReport_struct ParticleReport;
2482typedef struct PatternMatch_struct PatternMatch;
2483typedef struct QuantifyData_struct QuantifyData;
2484typedef struct QuantifyReport_struct QuantifyReport;
2485typedef struct RakeOptions_struct RakeOptions;
2486typedef struct RakeReport_struct RakeReport;
2487typedef struct TransformReport_struct TransformReport;
2488typedef struct ShapeReport_struct ShapeReport;
2489typedef struct MeterArc_struct MeterArc;
2490typedef struct ThresholdData_struct ThresholdData;
2491typedef struct StructuringElement_struct StructuringElement;
2492typedef struct SpokeReport_struct SpokeReport;
2493typedef struct SimpleEdgeOptions_struct SimpleEdgeOptions;
2494typedef struct SelectParticleCriteria_struct SelectParticleCriteria;
2495typedef struct SegmentInfo_struct SegmentInfo;
2496typedef struct RotationAngleRange_struct RotationAngleRange;
2497typedef struct RotatedRect_struct RotatedRect;
2498typedef struct ROIProfile_struct ROIProfile;
2499typedef struct ToolWindowOptions_struct ToolWindowOptions;
2500typedef struct SpokeOptions_struct SpokeOptions;
2501
2502//============================================================================
2503// Data Structures
2504//============================================================================
2505#if !defined __GNUC__ && !defined _M_X64
2506#pragma pack(push,1)
2507#endif
2508typedef struct DivisionModel_struct {
2509 float kappa; //The learned kappa coefficient of division model.
2510} DivisionModel;
2511
2512typedef struct FocalLength_struct {
2513 float fx; //Focal length in X direction.
2514 float fy; //Focal length in Y direction.
2515} FocalLength;
2516
2517typedef struct PolyModel_struct {
2518 float* kCoeffs; //The learned radial coefficients of polynomial model.
2519 unsigned int numKCoeffs; //Number of K coefficients.
2520 float p1; //The P1(learned tangential coefficients of polynomial model).
2521 float p2; //The P2(learned tangential coefficients of polynomial model).
2522} PolyModel;
2523
2524typedef struct DistortionModelParams_struct {
2525 DistortionModel distortionModel; //Type of learned distortion model.
2526 PolyModel polyModel; //The learned coefficients of polynomial model.
2527 DivisionModel divisionModel; //The learned coefficient of division model.
2528} DistortionModelParams;
2529
2530typedef struct PointFloat_struct {
2531 float x; //The x-coordinate of the point.
2532 float y; //The y-coordinate of the point.
2533} PointFloat;
2534
2535typedef struct InternalParameters_struct {
2536 char isInsufficientData;
2537 FocalLength focalLength;
2538 PointFloat opticalCenter;
2539} InternalParameters;
2540
2541typedef struct MaxGridSize_struct {
2542 unsigned int xMax; //Maximum x limit for the grid size.
2543 unsigned int yMax; //Maximum y limit for the grid size.
2544} MaxGridSize;
2545
2546typedef struct ImageSize_struct {
2547 unsigned int xRes; //X resolution of the image.
2548 unsigned int yRes; //Y resolution of the image.
2549} ImageSize;
2550
2551typedef struct CalibrationReferencePoints_struct {
2552 PointDouble* pixelCoords; //Specifies the coordinates of the pixel reference points.
2553 unsigned int numPixelCoords; //Number of pixel coordinates.
2554 PointDouble* realCoords; //Specifies the measuring unit associated with the image.
2555 unsigned int numRealCoords; //Number of real coordinates.
2556 CalibrationUnit units; //Specifies the units of X Step and Y Step.
2557 ImageSize imageSize; //Specifies the size of calibration template image.
2558} CalibrationReferencePoints;
2559
2560typedef struct GetCameraParametersReport_struct {
2561 double* projectionMatrix; //The projection(homography) matrix of working plane.
2562 unsigned int projectionMatrixRows; //Number of rows in projection matrix.
2563 unsigned int projectionMatrixCols; //Number of columns in projection matrix.
2564 DistortionModelParams distortion; //Distortion model Coefficients.
2565 InternalParameters internalParams; //The learned internal paramters of camera model such as focal length and optical center.
2566} GetCameraParametersReport;
2567
2568typedef struct CalibrationAxisInfo_struct {
2569 PointFloat center; //The origin of the reference coordinate system, expressed in pixel units.
2570 float rotationAngle; //The angle of the x-axis of the real-world coordinate system, in relation to the horizontal.
2571 AxisOrientation axisDirection; //Specifies the direction of the calibraiton axis which is either Direct or Indirect.
2572} CalibrationAxisInfo;
2573
2574typedef struct CalibrationLearnSetupInfo_struct {
2575 CalibrationMode2 calibrationMethod; //Type of calibration method used.
2576 DistortionModel distortionModel; //Type of learned distortion model.
2577 ScalingMethod scaleMode; //The aspect scaling to use when correcting an image.
2578 CalibrationROI roiMode; //The ROI to use when correcting an image.
2579 char learnCorrectionTable; //Set this input to true value if you want the correction table to be determined and stored.
2580} CalibrationLearnSetupInfo;
2581
2582typedef struct GridDescriptor_struct {
2583 float xStep; //The distance in the x direction between two adjacent pixels in units specified by unit.
2584 float yStep; //The distance in the y direction between two adjacent pixels in units specified by unit.
2585 CalibrationUnit unit; //The unit of measure for the image.
2586} GridDescriptor;
2587
2588typedef struct ErrorStatistics_struct {
2589 double mean; //Mean error statistics value.
2590 double maximum; //Maximum value of error.
2591 double standardDeviation; //The standard deviation error statistiscs value.
2592 double distortion; //The distortion error statistics value.
2593} ErrorStatistics;
2594
2595typedef struct GetCalibrationInfoReport_struct {
2596 ROI* userRoi; //Specifies the ROI the user provided when learning the calibration.
2597 ROI* calibrationRoi; //Specifies the ROI that corresponds to the region of the image where the calibration information is accurate.
2598 CalibrationAxisInfo axisInfo; //Reference Coordinate System for the real-world coordinates.
2599 CalibrationLearnSetupInfo learnSetupInfo; //Calibration learn setup information.
2600 GridDescriptor gridDescriptor; //Specifies scaling constants used to calibrate the image.
2601 float* errorMap; //The the error map of calibration template image.
2602 unsigned int errorMapRows; //Number of rows in error map.
2603 unsigned int errorMapCols; //Number of Columns in error map.
2604 ErrorStatistics errorStatistics; //Error statistics of the calibration.
2605} GetCalibrationInfoReport;
2606
2607typedef struct EdgePolarity_struct {
2608 EdgePolaritySearchMode start;
2609 EdgePolaritySearchMode end;
2610} EdgePolarity;
2611
2612typedef struct ClampSettings_struct {
2613 double angleRange; //Specifies the angle range.
2614 EdgePolarity edgePolarity; //Specifies the edge polarity.
2615} ClampSettings;
2616
2617typedef struct PointDouble_struct {
2618 double x; //The x-coordinate of the point.
2619 double y; //The y-coordinate of the point.
2620} PointDouble;
2621
2622typedef struct PointDoublePair_struct {
2623 PointDouble start; //The Start co-ordinate of the pair.
2624 PointDouble end; //The End co-ordinate of the pair.
2625} PointDoublePair;
2626
2627typedef struct ClampResults_struct {
2628 double distancePix; //Defines the Pixel world distance.
2629 double distanceRealWorld; //Defines the real world distance.
2630 double angleAbs; //Defines the absolute angle.
2631 double angleRelative; //Defines the relative angle.
2632} ClampResults;
2633
2634typedef struct ClampPoints_struct {
2635 PointDoublePair pixel; //Specifies the pixel world point pair for clamp.
2636 PointDoublePair realWorld; //Specifies the real world point pair for clamp.
2637} ClampPoints;
2638
2639typedef struct RGBValue_struct {
2640 unsigned char B; //The blue value of the color.
2641 unsigned char G; //The green value of the color.
2642 unsigned char R; //The red value of the color.
2643 unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
2644} RGBValue;
2645
2646typedef struct ClampOverlaySettings_struct {
2647 int showSearchArea; //If TRUE, the function overlays the search area on the image.
2648 int showCurves; //If TRUE, the function overlays the curves on the image.
2649 int showClampLocation; //If TRUE, the function overlays the clamp location on the image.
2650 int showResult; //If TRUE, the function overlays the hit lines to the object and the edge used to generate the hit line on the result image.
2651 RGBValue searchAreaColor; //Specifies the RGB color value to use to overlay the search area.
2652 RGBValue curvesColor; //Specifies the RGB color value to use to overlay the curves.
2653 RGBValue clampLocationsColor; //Specifies the RGB color value to use to overlay the clamp locations.
2654 RGBValue resultColor; //Specifies the RGB color value to use to overlay the results.
2655 char* overlayGroupName; //Specifies the group overlay name for the step overlays.
2656} ClampOverlaySettings;
2657
2658typedef struct ClampMax2Report_struct {
2659 ClampResults clampResults; //Specifies the Clamp results information returned by the function.
2660 ClampPoints clampPoints; //Specifies the clamp points information returned by the function.
2661 unsigned int calibrationValid; //Specifies if the calibration information is valid or not.
2662} ClampMax2Report;
2663
2664typedef struct ContourFitSplineReport_struct {
2665 PointDouble* points; //It returns the points of the best-fit B-spline curve.
2666 int numberOfPoints; //Number of Best fit points returned.
2667} ContourFitSplineReport;
2668
2669typedef struct LineFloat_struct {
2670 PointFloat start; //The coordinate location of the start of the line.
2671 PointFloat end; //The coordinate location of the end of the line.
2672} LineFloat;
2673
2674typedef struct LineEquation_struct {
2675 double a; //The a coefficient of the line equation.
2676 double b; //The b coefficient of the line equation.
2677 double c; //The c coefficient of the line equation.
2678} LineEquation;
2679
2680typedef struct ContourFitLineReport_struct {
2681 LineFloat lineSegment; //Line Segment represents the intersection of the line equation and the contour.
2682 LineEquation lineEquation; //Line Equation is a structure of three coefficients A, B, and C of the equation in the normal form (Ax + By + C=0) of the best fit line.
2683} ContourFitLineReport;
2684
2685typedef struct ContourFitPolynomialReport_struct {
2686 PointDouble* bestFit; //It returns the points of the best-fit polynomial.
2687 int numberOfPoints; //Number of Best fit points returned.
2688 double* polynomialCoefficients; //Polynomial Coefficients returns the coefficients of the polynomial equation.
2689 int numberOfCoefficients; //Number of Coefficients returned in the polynomial coefficients array.
2690} ContourFitPolynomialReport;
2691
2692typedef struct PartialCircle_struct {
2693 PointFloat center; //Center of the circle.
2694 double radius; //Radius of the circle.
2695 double startAngle; //Start angle of the fitted structure.
2696 double endAngle; //End angle of the fitted structure.
2697} PartialCircle;
2698
2699typedef struct PartialEllipse_struct {
2700 PointFloat center; //Center of the Ellipse.
2701 double angle; //Angle of the ellipse.
2702 double majorRadius; //The length of the semi-major axis of the ellipse.
2703 double minorRadius; //The length of the semi-minor axis of the ellipse.
2704 double startAngle; //Start angle of the fitted structure.
2705 double endAngle; //End angle of the fitted structure.
2706} PartialEllipse;
2707
2708typedef struct SetupMatchPatternData_struct {
2709 unsigned char* matchSetupData; //String containing the match setup data.
2710 int numMatchSetupData; //Number of match setup data.
2711} SetupMatchPatternData;
2712
2713typedef struct RangeSettingDouble_struct {
2714 SettingType settingType; //Match Constraints specifies the match option whose values you want to constrain by the given range.
2715 double min; //Min is the minimum value of the range for a given Match Constraint.
2716 double max; //Max is the maximum value of the range for a given Match Constraint.
2717} RangeSettingDouble;
2718
2719typedef struct GeometricAdvancedSetupDataOption_struct {
2720 GeometricSetupDataItem type; //It determines the option you want to use during the matching phase.
2721 double value; //Value is the value for the option you want to use during the matching phase.
2722} GeometricAdvancedSetupDataOption;
2723
2724typedef struct ContourInfoReport_struct {
2725 PointDouble* pointsPixel; //Points (pixel) specifies the location of every point detected on the curve, in pixels.
2726 unsigned int numPointsPixel; //Number of points pixel elements.
2727 PointDouble* pointsReal; //Points (real) specifies the location of every point detected on the curve, in calibrated units.
2728 unsigned int numPointsReal; //Number of points real elements.
2729 double* curvaturePixel; //Curvature Pixel displays the curvature profile for the selected contour, in pixels.
2730 unsigned int numCurvaturePixel; //Number of curvature pixels.
2731 double* curvatureReal; //Curvature Real displays the curvature profile for the selected contour, in calibrated units.
2732 unsigned int numCurvatureReal; //Number of curvature Real elements.
2733 double length; //Length (pixel) specifies the length, in pixels, of the curves in the image.
2734 double lengthReal; //Length (real) specifies the length, in calibrated units, of the curves within the curvature range.
2735 unsigned int hasEquation; //Has Equation specifies whether the contour has a fitted equation.
2736} ContourInfoReport;
2737
2738typedef struct ROILabel_struct {
2739 char* className; //Specifies the classname you want to segment.
2740 unsigned int label; //Label is the label number associated with the Class Name.
2741} ROILabel;
2742
2743typedef struct SupervisedColorSegmentationReport_struct {
2744 ROILabel* labelOut; //The Roi labels array.
2745 unsigned int numLabelOut; //The number of elements in labelOut array.
2746} SupervisedColorSegmentationReport;
2747
2748typedef struct LabelToROIReport_struct {
2749 ROI** roiArray; //Array of ROIs.
2750 unsigned int numOfROIs; //Number of ROIs in the roiArray.
2751 unsigned int* labelsOutArray; //Array of labels.
2752 unsigned int numOfLabels; //Number of labels.
2753 int* isTooManyVectorsArray; //isTooManyVectorsArray array.
2754 unsigned int isTooManyVectorsArraySize; //Number of elements in isTooManyVectorsArray.
2755} LabelToROIReport;
2756
2757typedef struct ColorSegmenationOptions_struct {
2758 unsigned int windowX; //X is the window size in x direction.
2759 unsigned int windowY; //Y is the window size in y direction.
2760 unsigned int stepSize; //Step Size is the distance between two windows.
2761 unsigned int minParticleArea; //Min Particle Area is the minimum number of allowed pixels.
2762 unsigned int maxParticleArea; //Max Particle Area is the maximum number of allowed pixels.
2763 short isFineSegment; //When enabled, the step processes the boundary pixels of each segmentation cluster using a step size of 1.
2764} ColorSegmenationOptions;
2765
2766typedef struct ClassifiedCurve_struct {
2767 double length; //Specifies the length, in pixels, of the curves within the curvature range.
2768 double lengthReal; //specifies the length, in calibrated units, of the curves within the curvature range.
2769 double maxCurvature; //specifies the maximum curvature, in pixels, for the selected curvature range.
2770 double maxCurvatureReal; //specifies the maximum curvature, in calibrated units, for the selected curvature range.
2771 unsigned int label; //specifies the class to which the the sample belongs.
2772 PointDouble* curvePoints; //Curve Points is a point-coordinate cluster that defines the points of the curve.
2773 unsigned int numCurvePoints; //Number of curve points.
2774} ClassifiedCurve;
2775
2776typedef struct RangeDouble_struct {
2777 double minValue; //The minimum value of the range.
2778 double maxValue; //The maximum value of the range.
2779} RangeDouble;
2780
2781typedef struct RangeLabel_struct {
2782 RangeDouble range; //Specifies the range of curvature values.
2783 unsigned int label; //Class Label specifies the class to which the the sample belongs.
2784} RangeLabel;
2785
2786typedef struct CurvatureAnalysisReport_struct {
2787 ClassifiedCurve* curves;
2788 unsigned int numCurves;
2789} CurvatureAnalysisReport;
2790
2791typedef struct Disparity_struct {
2792 PointDouble current; //Current is a array of points that defines the target contour.
2793 PointDouble reference; //reference is a array of points that defines the template contour.
2794 double distance; //Specifies the distance, in pixels, between the template contour point and the target contour point.
2795} Disparity;
2796
2797typedef struct ComputeDistancesReport_struct {
2798 Disparity* distances; //Distances is an array containing the computed distances.
2799 unsigned int numDistances; //Number elements in the distances array.
2800 Disparity* distancesReal; //Distances Real is an array containing the computed distances in calibrated units.
2801 unsigned int numDistancesReal; //Number of elements in real distances array.
2802} ComputeDistancesReport;
2803
2804typedef struct MatchMode_struct {
2805 unsigned int rotation; //Rotation When enabled, the Function searches for occurrences of the template in the inspection image, allowing for template matches to be rotated.
2806 unsigned int scale; //Rotation When enabled, the Function searches for occurrences of the template in the inspection image, allowing for template matches to be rotated.
2807 unsigned int occlusion; //Occlusion specifies whether or not to search for occluded versions of the shape.
2808} MatchMode;
2809
2810typedef struct ClassifiedDisparity_struct {
2811 double length; //Length (pixel) specifies the length, in pixels, of the curves within the curvature range.
2812 double lengthReal; //Length (real) specifies the length, in calibrated units, of the curves within the curvature range.
2813 double maxDistance; //Maximum Distance (pixel) specifies the maximum distance, in pixels, between points along the selected contour and the template contour.
2814 double maxDistanceReal; //Maximum Distance (real) specifies the maximum distance, in calibrated units, between points along the selected contour and the template contour.
2815 unsigned int label; //Class Label specifies the class to which the the sample belongs.
2816 PointDouble* templateSubsection; //Template subsection points is an array of points that defines the boundary of the template.
2817 unsigned int numTemplateSubsection; //Number of reference points.
2818 PointDouble* targetSubsection; //Current Points(Target subsection points) is an array of points that defines the boundary of the target.
2819 unsigned int numTargetSubsection; //Number of current points.
2820} ClassifiedDisparity;
2821
2822typedef struct ClassifyDistancesReport_struct {
2823 ClassifiedDisparity* classifiedDistances; //Disparity array containing the classified distances.
2824 unsigned int numClassifiedDistances; //Number of elements in the disparity array.
2825} ClassifyDistancesReport;
2826
2827typedef struct ContourComputeCurvatureReport_struct {
2828 double* curvaturePixel; //Curvature Pixel displays the curvature profile for the selected contour, in pixels.
2829 unsigned int numCurvaturePixel; //Number of curvature pixels.
2830 double* curvatureReal; //Curvature Real displays the curvature profile for the selected contour, in calibrated units.
2831 unsigned int numCurvatureReal; //Number of curvature Real elements.
2832} ContourComputeCurvatureReport;
2833
2834typedef struct ContourOverlaySettings_struct {
2835 unsigned int overlay; //Overlay specifies whether to display the overlay on the image.
2836 RGBValue color; //Color is the color of the overlay.
2837 unsigned int width; //Width specifies the width of the overlay in pixels.
2838 unsigned int maintainWidth; //Maintain Width? specifies whether you want the overlay measured in screen pixels or image pixels.
2839} ContourOverlaySettings;
2840
2841typedef struct CurveParameters_struct {
2842 ExtractionMode extractionMode; //Specifies the method the function uses to identify curves in the image.
2843 int threshold; //Specifies the minimum contrast a seed point must have in order to begin a curve.
2844 EdgeFilterSize filterSize; //Specifies the width of the edge filter the function uses to identify curves in the image.
2845 int minLength; //Specifies the length, in pixels, of the smallest curve the function will extract.
2846 int searchStep; //Search Step Size specifies the distance, in the y direction, between the image rows that the algorithm inspects for curve seed points.
2847 int maxEndPointGap; //Specifies the maximum gap, in pixels, between the endpoints of a curve that the function identifies as a closed curve.
2848 int subpixel; //Subpixel specifies whether to detect curve points with subpixel accuracy.
2849} CurveParameters;
2850
2851typedef struct ExtractContourReport_struct {
2852 PointDouble* contourPoints; //Contour Points specifies every point found on the contour.
2853 int numContourPoints; //Number of contour points.
2854 PointDouble* sourcePoints; //Source Image Points specifies every point found on the contour in the source image.
2855 int numSourcePoints; //Number of source points.
2856} ExtractContourReport;
2857
2858typedef struct ConnectionConstraint_struct {
2859 ConnectionConstraintType constraintType; //Constraint Type specifies what criteria to use to consider two curves part of a contour.
2860 RangeDouble range; //Specifies range for a given Match Constraint.
2861} ConnectionConstraint;
2862
2863typedef struct ExtractTextureFeaturesReport_struct {
2864 int* waveletBands; //The array having all the Wavelet Banks used for extraction.
2865 int numWaveletBands; //Number of wavelet banks in the Array.
2866 double** textureFeatures; //2-D array to store all the Texture features extracted.
2867 int textureFeaturesRows; //Number of Rows in the Texture Features array.
2868 int textureFeaturesCols; //Number of Cols in Texture Features array.
2869} ExtractTextureFeaturesReport;
2870
2871typedef struct WaveletBandsReport_struct {
2872 float** LLBand; //2-D array for LL Band.
2873 float** LHBand; //2-D array for LH Band.
2874 float** HLBand; //2-D array for HL Band.
2875 float** HHBand; //2-D array for HH Band.
2876 float** LLLBand; //2-D array for LLL Band.
2877 float** LLHBand; //2-D array for LLH Band.
2878 float LHLBand; //2-D array for LHL Band.
2879 float** LHHBand; //2-D array for LHH Band.
2880 int rows; //Number of Rows for each of the 2-D arrays.
2881 int cols; //Number of Columns for each of the 2-D arrays.
2882} WaveletBandsReport;
2883
2884typedef struct CircleFitOptions_struct {
2885 int maxRadius; //Specifies the acceptable distance, in pixels, that a point determined to belong to the circle can be from the perimeter of the circle.
2886 double stepSize; //Step Size is the angle, in degrees, between each radial line in the annular region.
2887 RakeProcessType processType; //Method used to process the data extracted for edge detection.
2888} CircleFitOptions;
2889
2890typedef struct EdgeOptions2_struct {
2891 EdgePolaritySearchMode polarity; //Specifies the polarity of the edges to be found.
2892 unsigned int kernelSize; //Specifies the size of the edge detection kernel.
2893 unsigned int width; //Specifies the number of pixels averaged perpendicular to the search direction to compute the edge profile strength at each point along the search ROI.
2894 float minThreshold; //Specifies the minimum edge strength (gradient magnitude) required for a detected edge.
2895 InterpolationMethod interpolationType; //Specifies the interpolation method used to locate the edge position.
2896 ColumnProcessingMode columnProcessingMode; //Specifies the method used to find the straight edge.
2897} EdgeOptions2;
2898
2899typedef struct FindCircularEdgeOptions_struct {
2900 SpokeDirection direction; //Specifies the Spoke direction to search in the ROI.
2901 int showSearchArea; //If TRUE, the function overlays the search area on the image.
2902 int showSearchLines; //If TRUE, the function overlays the search lines used to locate the edges on the image.
2903 int showEdgesFound; //If TRUE, the function overlays the locations of the edges found on the image.
2904 int showResult; //If TRUE, the function overlays the hit lines to the object and the edge used to generate the hit line on the result image.
2905 RGBValue searchAreaColor; //Specifies the RGB color value to use to overlay the search area.
2906 RGBValue searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
2907 RGBValue searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
2908 RGBValue resultColor; //Specifies the RGB color value to use to overlay the results.
2909 char* overlayGroupName; //Specifies the overlay group name to assign to the overlays.
2910 EdgeOptions2 edgeOptions; //Specifies the edge detection options along a single search line.
2911} FindCircularEdgeOptions;
2912
2913typedef struct FindConcentricEdgeOptions_struct {
2914 ConcentricRakeDirection direction; //Specifies the Concentric Rake direction.
2915 int showSearchArea; //If TRUE, the function overlays the search area on the image.
2916 int showSearchLines; //If TRUE, the function overlays the search lines used to locate the edges on the image.
2917 int showEdgesFound; //If TRUE, the function overlays the locations of the edges found on the image.
2918 int showResult; //If TRUE, the function overlays the hit lines to the object and the edge used to generate the hit line on the result image.
2919 RGBValue searchAreaColor; //Specifies the RGB color value to use to overlay the search area.
2920 RGBValue searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
2921 RGBValue searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
2922 RGBValue resultColor; //Specifies the RGB color value to use to overlay the results.
2923 char* overlayGroupName; //Specifies the overlay group name to assign to the overlays.
2924 EdgeOptions2 edgeOptions; //Specifies the edge detection options along a single search line.
2925} FindConcentricEdgeOptions;
2926
2927typedef struct ConcentricEdgeFitOptions_struct {
2928 int maxRadius; //Specifies the acceptable distance, in pixels, that a point determined to belong to the circle can be from the perimeter of the circle.
2929 double stepSize; //The sampling factor that determines the gap between the rake lines.
2930 RakeProcessType processType; //Method used to process the data extracted for edge detection.
2931} ConcentricEdgeFitOptions;
2932
2933typedef struct FindConcentricEdgeReport_struct {
2934 PointFloat startPt; //Pixel Coordinates for starting point of the edge.
2935 PointFloat endPt; //Pixel Coordinates for end point of the edge.
2936 PointFloat startPtCalibrated; //Real world Coordinates for starting point of the edge.
2937 PointFloat endPtCalibrated; //Real world Coordinates for end point of the edge.
2938 double angle; //Angle of the edge found.
2939 double angleCalibrated; //Calibrated angle of the edge found.
2940 double straightness; //The straightness value of the detected straight edge.
2941 double avgStrength; //Average strength of the egde found.
2942 double avgSNR; //Average SNR(Signal to Noise Ratio) for the edge found.
2943 int lineFound; //If the edge is found or not.
2944} FindConcentricEdgeReport;
2945
2946typedef struct FindCircularEdgeReport_struct {
2947 PointFloat centerCalibrated; //Real world Coordinates of the Center.
2948 double radiusCalibrated; //Real world radius of the Circular Edge found.
2949 PointFloat center; //Pixel Coordinates of the Center.
2950 double radius; //Radius in pixels of the Circular Edge found.
2951 double roundness; //The roundness of the calculated circular edge.
2952 double avgStrength; //Average strength of the egde found.
2953 double avgSNR; //Average SNR(Signal to Noise Ratio) for the edge found.
2954 int circleFound; //If the circlular edge is found or not.
2955} FindCircularEdgeReport;
2956
2957typedef struct WindowSize_struct {
2958 int x; //Window lenght on X direction.
2959 int y; //Window lenght on Y direction.
2960 int stepSize; //Distance between windows.
2961} WindowSize;
2962
2963typedef struct DisplacementVector_struct {
2964 int x; //length on X direction.
2965 int y; //length on Y direction.
2966} DisplacementVector;
2967
2968typedef struct WaveletOptions_struct {
2969 WaveletType typeOfWavelet; //Type of wavelet(db, bior.
2970 float minEnergy; //Minimum Energy in the bands to consider for texture defect detection.
2971} WaveletOptions;
2972
2973typedef struct CooccurrenceOptions_struct {
2974 int level; //Level/size of matrix.
2975 DisplacementVector displacement; //Displacemnet between pixels to accumulate the matrix.
2976} CooccurrenceOptions;
2977
2978typedef struct ParticleClassifierLocalThresholdOptions_struct {
2979 LocalThresholdMethod method; //Specifies the local thresholding method the function uses.
2980 ParticleType particleType; //Specifies what kind of particles to look for.
2981 unsigned int windowWidth; //The width of the rectangular window around the pixel on which the function performs the local threshold.
2982 unsigned int windowHeight; //The height of the rectangular window around the pixel on which the function performs the local threshold.
2983 double deviationWeight; //Specifies the k constant used in the Niblack local thresholding algorithm, which determines the weight applied to the variance calculation.
2984} ParticleClassifierLocalThresholdOptions;
2985
2986typedef struct RangeFloat_struct {
2987 float minValue; //The minimum value of the range.
2988 float maxValue; //The maximum value of the range.
2989} RangeFloat;
2990
2991typedef struct ParticleClassifierAutoThresholdOptions_struct {
2992 ThresholdMethod method; //The method for binary thresholding, which specifies how to calculate the classes.
2993 ParticleType particleType; //Specifies what kind of particles to look for.
2994 RangeFloat limits; //The limits on the automatic threshold range.
2995} ParticleClassifierAutoThresholdOptions;
2996
2997typedef struct ParticleClassifierPreprocessingOptions2_struct {
2998 ParticleClassifierThresholdType thresholdType; //The type of threshold to perform on the image.
2999 RangeFloat manualThresholdRange; //The range of pixels to keep if manually thresholding the image.
3000 ParticleClassifierAutoThresholdOptions autoThresholdOptions; //The options used to auto threshold the image.
3001 ParticleClassifierLocalThresholdOptions localThresholdOptions; //The options used to local threshold the image.
3002 int rejectBorder; //Set this element to TRUE to reject border particles.
3003 int numErosions; //The number of erosions to perform.
3004} ParticleClassifierPreprocessingOptions2;
3005
3006typedef struct MeasureParticlesReport_struct {
3007 double** pixelMeasurements; //The measurements on the particles in the image, in pixel coordinates.
3008 double** calibratedMeasurements; //The measurements on the particles in the image, in real-world coordinates.
3009 size_t numParticles; //The number of particles on which measurements were taken.
3010 size_t numMeasurements; //The number of measurements taken.
3011} MeasureParticlesReport;
3012
3013typedef struct GeometricPatternMatch3_struct {
3014 PointFloat position; //The location of the origin of the template in the match.
3015 float rotation; //The rotation of the match relative to the template image, in degrees.
3016 float scale; //The size of the match relative to the size of the template image, expressed as a percentage.
3017 float score; //The accuracy of the match.
3018 PointFloat corner[4]; //An array of four points describing the rectangle surrounding the template image.
3019 int inverse; //This element is TRUE if the match is an inverse of the template image.
3020 float occlusion; //The percentage of the match that is occluded.
3021 float templateMatchCurveScore; //The accuracy of the match obtained by comparing the template curves to the curves in the match region.
3022 float matchTemplateCurveScore; //The accuracy of the match obtained by comparing the curves in the match region to the template curves.
3023 float correlationScore; //The accuracy of the match obtained by comparing the template image to the match region using a correlation metric that compares the two regions as a function of their pixel values.
3024 PointFloat calibratedPosition; //The location of the origin of the template in the match.
3025 float calibratedRotation; //The rotation of the match relative to the template image, in degrees.
3026 PointFloat calibratedCorner[4]; //An array of four points describing the rectangle surrounding the template image.
3027} GeometricPatternMatch3;
3028
3029typedef struct MatchGeometricPatternAdvancedOptions3_struct {
3030 unsigned int subpixelIterations; //Specifies the maximum number of incremental improvements used to refine matches with subpixel information.
3031 double subpixelTolerance; //Specifies the maximum amount of change, in pixels, between consecutive incremental improvements in the match position before the function stops refining the match position.
3032 unsigned int initialMatchListLength; //Specifies the maximum size of the match list.
3033 int targetTemplateCurveScore; //Set this element to TRUE to specify that the function should calculate the match curve to template curve score and return it for each match result.
3034 int correlationScore; //Set this element to TRUE to specify that the function should calculate the correlation score and return it for each match result.
3035 double minMatchSeparationDistance; //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
3036 double minMatchSeparationAngle; //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
3037 double minMatchSeparationScale; //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
3038 double maxMatchOverlap; //Specifies the maximum amount of overlap, expressed as a percentage, allowed between the bounding rectangles of two unique matches.
3039 int coarseResult; //Specifies whether you want the function to spend less time accurately estimating the location of a match.
3040 int enableCalibrationSupport; //Set this element to TRUE to specify the algorithm treat the inspection image as a calibrated image.
3041 ContrastMode enableContrastReversal; //Use this element to specify the contrast of the matches to search for in the image.
3042 GeometricMatchingSearchStrategy matchStrategy; //Specifies the aggressiveness of the search strategy.
3043 unsigned int refineMatchFactor; //Specifies the factor that is applied to the number of matches requested by the user to determine the number of matches that are refined at the initial matching stage.
3044 unsigned int subpixelMatchFactor; //Specifies the factor that is applied to the number of matches requested by the user to determine the number of matches that are evaluated at the final subpixel matching stage.
3045} MatchGeometricPatternAdvancedOptions3;
3046
3047typedef struct ColorOptions_struct {
3048 ColorClassificationResolution colorClassificationResolution; //Specifies the color resolution of the classifier.
3049 unsigned int useLuminance; //Specifies if the luminance band is going to be used in the feature vector.
3050 ColorMode colorMode; //Specifies the color mode of the classifier.
3051} ColorOptions;
3052
3053typedef struct SampleScore_struct {
3054 char* className; //The name of the class.
3055 float distance; //The distance from the item to this class.
3056 unsigned int index; //index of this sample.
3057} SampleScore;
3058
3059typedef struct ClassifierReportAdvanced_struct {
3060 char* bestClassName; //The name of the best class for the sample.
3061 float classificationScore; //The similarity of the sample and the two closest classes in the classifier.
3062 float identificationScore; //The similarity of the sample and the assigned class.
3063 ClassScore* allScores; //All classes and their scores.
3064 int allScoresSize; //The number of entries in allScores.
3065 SampleScore* sampleScores; //All samples and their scores.
3066 int sampleScoresSize; //The number of entries in sampleScores.
3067} ClassifierReportAdvanced;
3068
3069typedef struct LearnGeometricPatternAdvancedOptions2_struct {
3070 double minScaleFactor; //Specifies the minimum scale factor that the template is learned for.
3071 double maxScaleFactor; //Specifies the maximum scale factor the template is learned for.
3072 double minRotationAngleValue; //Specifies the minimum rotation angle the template is learned for.
3073 double maxRotationAngleValue; //Specifies the maximum rotation angle the template is learned for.
3074 unsigned int imageSamplingFactor; //Specifies the factor that is used to subsample the template and the image for the initial matching phase.
3075} LearnGeometricPatternAdvancedOptions2;
3076
3077typedef struct ParticleFilterOptions2_struct {
3078 int rejectMatches; //Set this parameter to TRUE to transfer only those particles that do not meet all the criteria.
3079 int rejectBorder; //Set this element to TRUE to reject border particles.
3080 int fillHoles; //Set this element to TRUE to fill holes in particles.
3081 int connectivity8; //Set this parameter to TRUE to use connectivity-8 to determine whether particles are touching.
3082} ParticleFilterOptions2;
3083
3084typedef struct FindEdgeOptions2_struct {
3085 RakeDirection direction; //The direction to search in the ROI.
3086 int showSearchArea; //If TRUE, the function overlays the search area on the image.
3087 int showSearchLines; //If TRUE, the function overlays the search lines used to locate the edges on the image.
3088 int showEdgesFound; //If TRUE, the function overlays the locations of the edges found on the image.
3089 int showResult; //If TRUE, the function overlays the hit lines to the object and the edge used to generate the hit line on the result image.
3090 RGBValue searchAreaColor; //Specifies the RGB color value to use to overlay the search area.
3091 RGBValue searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
3092 RGBValue searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
3093 RGBValue resultColor; //Specifies the RGB color value to use to overlay the results.
3094 char* overlayGroupName; //Specifies the overlay group name to assign to the overlays.
3095 EdgeOptions2 edgeOptions; //Specifies the edge detection options along a single search line.
3096} FindEdgeOptions2;
3097
3098typedef struct FindEdgeReport_struct {
3099 StraightEdge* straightEdges; //An array of straight edges detected.
3100 unsigned int numStraightEdges; //Indicates the number of straight edges found.
3101} FindEdgeReport;
3102
3103typedef struct FindTransformRectOptions2_struct {
3104 FindReferenceDirection direction; //Specifies the direction and orientation in which the function searches for the primary axis.
3105 int showSearchArea; //If TRUE, the function overlays the search area on the image.
3106 int showSearchLines; //If TRUE, the function overlays the search lines used to locate the edges on the image.
3107 int showEdgesFound; //If TRUE, the function overlays the locations of the edges found on the image.
3108 int showResult; //If TRUE, the function overlays the hit lines to the object and the edge used to generate the hit line on the result image.
3109 RGBValue searchAreaColor; //Specifies the RGB color value to use to overlay the search area.
3110 RGBValue searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
3111 RGBValue searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
3112 RGBValue resultColor; //Specifies the RGB color value to use to overlay the results.
3113 char* overlayGroupName; //Specifies the overlay group name to assign to the overlays.
3114 EdgeOptions2 edgeOptions; //Specifies the edge detection options along a single search line.
3115} FindTransformRectOptions2;
3116
3117typedef struct FindTransformRectsOptions2_struct {
3118 FindReferenceDirection direction; //Specifies the direction and orientation in which the function searches for the primary axis.
3119 int showSearchArea; //If TRUE, the function overlays the search area on the image.
3120 int showSearchLines; //If TRUE, the function overlays the search lines used to locate the edges on the image.
3121 int showEdgesFound; //If TRUE, the function overlays the locations of the edges found on the image.
3122 int showResult; //If TRUE, the function overlays the hit lines to the object and the edge used to generate the hit line on the result image.
3123 RGBValue searchAreaColor; //Specifies the RGB color value to use to overlay the search area.
3124 RGBValue searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
3125 RGBValue searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
3126 RGBValue resultColor; //Specifies the RGB color value to use to overlay the results.
3127 char* overlayGroupName; //Specifies the overlay group name to assign to the overlays.
3128 EdgeOptions2 primaryEdgeOptions; //Specifies the parameters used to compute the edge gradient information and detect the edges for the primary ROI.
3129 EdgeOptions2 secondaryEdgeOptions; //Specifies the parameters used to compute the edge gradient information and detect the edges for the secondary ROI.
3130} FindTransformRectsOptions2;
3131
3132typedef struct ReadTextReport3_struct {
3133 const char* readString; //The read string.
3134 CharReport3* characterReport; //An array of reports describing the properties of each identified character.
3135 int numCharacterReports; //The number of identified characters.
3136 ROI* roiBoundingCharacters; //An array specifying the coordinates of the character bounding ROI.
3137} ReadTextReport3;
3138
3139typedef struct CharacterStatistics_struct {
3140 int left; //The left offset of the character bounding rectangles in the current ROI.
3141 int top; //The top offset of the character bounding rectangles in the current ROI.
3142 int width; //The width of each of the characters you trained in the current ROI.
3143 int height; //The height of each trained character in the current ROI.
3144 int characterSize; //The size of the character in pixels.
3145} CharacterStatistics;
3146
3147typedef struct CharReport3_struct {
3148 const char* character; //The character value.
3149 int classificationScore; //The degree to which the assigned character class represents the object better than the other character classes in the character set.
3150 int verificationScore; //The similarity of the character and the reference character for the character class.
3151 int verified; //This element is TRUE if a reference character was found for the character class and FALSE if a reference character was not found.
3152 int lowThreshold; //The minimum value of the threshold range used for this character.
3153 int highThreshold; //The maximum value of the threshold range used for this character.
3154 CharacterStatistics characterStats; //Describes the characters segmented in the ROI.
3155} CharReport3;
3156
3157typedef struct ArcInfo2_struct {
3158 PointFloat center; //The center point of the arc.
3159 double radius; //The radius of the arc.
3160 double startAngle; //The starting angle of the arc, specified counter-clockwise from the x-axis.
3161 double endAngle; //The ending angle of the arc, specified counter-clockwise from the x-axis.
3162} ArcInfo2;
3163
3164typedef struct EdgeReport2_struct {
3165 EdgeInfo* edges; //An array of edges detected.
3166 unsigned int numEdges; //Indicates the number of edges detected.
3167 double* gradientInfo; //An array that contains the calculated edge strengths along the user-defined search area.
3168 unsigned int numGradientInfo; //Indicates the number of elements contained in gradientInfo.
3169 int calibrationValid; //Indicates if the calibration data corresponding to the location of the edges is correct.
3170} EdgeReport2;
3171
3172typedef struct SearchArcInfo_struct {
3173 ArcInfo2 arcCoordinates; //Describes the arc used for edge detection.
3174 EdgeReport2 edgeReport; //Describes the edges found in this search line.
3175} SearchArcInfo;
3176
3177typedef struct ConcentricRakeReport2_struct {
3178 EdgeInfo* firstEdges; //The first edge point detected along each search line in the ROI.
3179 unsigned int numFirstEdges; //The number of points in the firstEdges array.
3180 EdgeInfo* lastEdges; //The last edge point detected along each search line in the ROI.
3181 unsigned int numLastEdges; //The number of points in the lastEdges array.
3182 SearchArcInfo* searchArcs; //Contains the arcs used for edge detection and the edge information for each arc.
3183 unsigned int numSearchArcs; //The number of arcs in the searchArcs array.
3184} ConcentricRakeReport2;
3185
3186typedef struct SpokeReport2_struct {
3187 EdgeInfo* firstEdges; //The first edge point detected along each search line in the ROI.
3188 unsigned int numFirstEdges; //The number of points in the firstEdges array.
3189 EdgeInfo* lastEdges; //The last edge point detected along each search line in the ROI.
3190 unsigned int numLastEdges; //The number of points in the lastEdges array.
3191 SearchLineInfo* searchLines; //The search lines used for edge detection.
3192 unsigned int numSearchLines; //The number of search lines used in the edge detection.
3193} SpokeReport2;
3194
3195typedef struct EdgeInfo_struct {
3196 PointFloat position; //The location of the edge in the image.
3197 PointFloat calibratedPosition; //The position of the edge in the image in real-world coordinates.
3198 double distance; //The location of the edge from the first point along the boundary of the input ROI.
3199 double calibratedDistance; //The location of the edge from the first point along the boundary of the input ROI in real-world coordinates.
3200 double magnitude; //The intensity contrast at the edge.
3201 double noisePeak; //The strength of the noise associated with the current edge.
3202 int rising; //Indicates the polarity of the edge.
3203} EdgeInfo;
3204
3205typedef struct SearchLineInfo_struct {
3206 LineFloat lineCoordinates; //The endpoints of the search line.
3207 EdgeReport2 edgeReport; //Describes the edges found in this search line.
3208} SearchLineInfo;
3209
3210typedef struct RakeReport2_struct {
3211 EdgeInfo* firstEdges; //The first edge point detected along each search line in the ROI.
3212 unsigned int numFirstEdges; //The number of points in the firstEdges array.
3213 EdgeInfo* lastEdges; //The last edge point detected along each search line in the ROI.
3214 unsigned int numLastEdges; //The number of points in the lastEdges array.
3215 SearchLineInfo* searchLines; //The search lines used for edge detection.
3216 unsigned int numSearchLines; //The number of search lines used in the edge detection.
3217} RakeReport2;
3218
3219typedef struct TransformBehaviors_struct {
3220 GroupBehavior ShiftBehavior; //Specifies the behavior of an overlay group when a shift operation is applied to an image.
3221 GroupBehavior ScaleBehavior; //Specifies the behavior of an overlay group when a scale operation is applied to an image.
3222 GroupBehavior RotateBehavior; //Specifies the behavior of an overlay group when a rotate operation is applied to an image.
3223 GroupBehavior SymmetryBehavior; //Specifies the behavior of an overlay group when a symmetry operation is applied to an image.
3224} TransformBehaviors;
3225
3226typedef struct QRCodeDataToken_struct {
3227 QRStreamMode mode; //Specifies the stream mode or the format of the data that is encoded in the QR code.
3228 unsigned int modeData; //Indicates specifiers used by the user to postprocess the data if it requires it.
3229 unsigned char* data; //Shows the encoded data in the QR code.
3230 unsigned int dataLength; //Specifies the length of the data found in the QR code.
3231} QRCodeDataToken;
3232
3233typedef struct ParticleFilterOptions_struct {
3234 int rejectMatches; //Set this parameter to TRUE to transfer only those particles that do not meet all the criteria.
3235 int rejectBorder; //Set this element to TRUE to reject border particles.
3236 int connectivity8; //Set this parameter to TRUE to use connectivity-8 to determine whether particles are touching.
3237} ParticleFilterOptions;
3238
3239typedef struct StraightEdgeReport2_struct {
3240 StraightEdge* straightEdges; //Contains an array of found straight edges.
3241 unsigned int numStraightEdges; //Indicates the number of straight edges found.
3242 SearchLineInfo* searchLines; //Contains an array of all search lines used in the detection.
3243 unsigned int numSearchLines; //The number of search lines used in the edge detection.
3244} StraightEdgeReport2;
3245
3246typedef struct StraightEdgeOptions_struct {
3247 unsigned int numLines; //Specifies the number of straight edges to find.
3248 StraightEdgeSearchMode searchMode; //Specifies the method used to find the straight edge.
3249 double minScore; //Specifies the minimum score of a detected straight edge.
3250 double maxScore; //Specifies the maximum score of a detected edge.
3251 double orientation; //Specifies the angle at which the straight edge is expected to be found.
3252 double angleRange; //Specifies the +/- range around the orientation within which the straight edge is expected to be found.
3253 double angleTolerance; //Specifies the expected angular accuracy of the straight edge.
3254 unsigned int stepSize; //Specifies the gap in pixels between the search lines used with the rake-based methods.
3255 double minSignalToNoiseRatio; //Specifies the minimum signal to noise ratio (SNR) of the edge points used to fit the straight edge.
3256 double minCoverage; //Specifies the minimum number of points as a percentage of the number of search lines that need to be included in the detected straight edge.
3257 unsigned int houghIterations; //Specifies the number of iterations used in the Hough-based method.
3258} StraightEdgeOptions;
3259
3260typedef struct StraightEdge_struct {
3261 LineFloat straightEdgeCoordinates; //End points of the detected straight edge in pixel coordinates.
3262 LineFloat calibratedStraightEdgeCoordinates; //End points of the detected straight edge in real-world coordinates.
3263 double angle; //Angle of the found edge using the pixel coordinates.
3264 double calibratedAngle; //Angle of the found edge using the real-world coordinates.
3265 double score; //Describes the score of the detected edge.
3266 double straightness; //The straightness value of the detected straight edge.
3267 double averageSignalToNoiseRatio; //Describes the average signal to noise ratio (SNR) of the detected edge.
3268 int calibrationValid; //Indicates if the calibration data for the straight edge is valid.
3269 EdgeInfo* usedEdges; //An array of edges that were used to determine this straight line.
3270 unsigned int numUsedEdges; //Indicates the number of edges in the usedEdges array.
3271} StraightEdge;
3272
3273typedef struct QRCodeSearchOptions_struct {
3274 QRRotationMode rotationMode; //Specifies the amount of QR code rotation the function should allow for.
3275 unsigned int skipLocation; //If set to TRUE, specifies that the function should assume that the QR code occupies the entire image (or the entire search region).
3276 unsigned int edgeThreshold; //The strength of the weakest edge the function uses to find the coarse location of the QR code in the image.
3277 QRDemodulationMode demodulationMode; //The demodulation mode the function uses to locate the QR code.
3278 QRCellSampleSize cellSampleSize; //The cell sample size the function uses to locate the QR code.
3279 QRCellFilterMode cellFilterMode; //The cell filter mode the function uses to locate the QR code.
3280 unsigned int skewDegreesAllowed; //Specifies the amount of skew in the QR code the function should allow for.
3281} QRCodeSearchOptions;
3282
3283typedef struct QRCodeSizeOptions_struct {
3284 unsigned int minSize; //Specifies the minimum size (in pixels) of the QR code in the image.
3285 unsigned int maxSize; //Specifies the maximum size (in pixels) of the QR code in the image.
3286} QRCodeSizeOptions;
3287
3288typedef struct QRCodeDescriptionOptions_struct {
3289 QRDimensions dimensions; //The number of rows and columns that are populated for the QR code, measured in cells.
3290 QRPolarities polarity; //The polarity of the QR code.
3291 QRMirrorMode mirror; //This element is TRUE if the QR code appears mirrored in the image and FALSE if the QR code appears normally in the image.
3292 QRModelType modelType; //This option allows you to specify the type of QR code.
3293} QRCodeDescriptionOptions;
3294
3295typedef struct QRCodeReport_struct {
3296 unsigned int found; //This element is TRUE if the function located and decoded a QR code and FALSE if the function failed to locate and decode a QR code.
3297 unsigned char* data; //The data encoded in the QR code.
3298 unsigned int dataLength; //The length of the data array.
3299 PointFloat boundingBox[4]; //An array of four points describing the rectangle surrounding the QR code.
3300 QRCodeDataToken* tokenizedData; //Contains the data tokenized in exactly the way it was encoded in the code.
3301 unsigned int sizeOfTokenizedData; //Size of the tokenized data.
3302 unsigned int numErrorsCorrected; //The number of errors the function corrected when decoding the QR code.
3303 unsigned int dimensions; //The number of rows and columns that are populated for the QR code, measured in cells.
3304 unsigned int version; //The version of the QR code.
3305 QRModelType modelType; //This option allows you to specify what type of QR code this is.
3306 QRStreamMode streamMode; //The format of the data encoded in the stream.
3307 QRPolarities matrixPolarity; //The polarity of the QR code.
3308 unsigned int mirrored; //This element is TRUE if the QR code appears mirrored in the image and FALSE if the QR code appears normally in the image.
3309 unsigned int positionInAppendStream; //Indicates what position the QR code is in with respect to the stream of data in all codes.
3310 unsigned int sizeOfAppendStream; //Specifies how many QR codes are part of a larger array of codes.
3311 int firstEAN128ApplicationID; //The first EAN-128 Application ID encountered in the stream.
3312 int firstECIDesignator; //The first Regional Language Designator encountered in the stream.
3313 unsigned int appendStreamIdentifier; //Specifies what stream the QR code is in relation to when the code is part of a larger array of codes.
3314 unsigned int minimumEdgeStrength; //The strength of the weakest edge the function used to find the coarse location of the QR code in the image.
3315 QRDemodulationMode demodulationMode; //The demodulation mode the function used to locate the QR code.
3316 QRCellSampleSize cellSampleSize; //The cell sample size the function used to locate the QR code.
3317 QRCellFilterMode cellFilterMode; //The cell filter mode the function used to locate the QR code.
3318} QRCodeReport;
3319
3320typedef struct AIMGradeReport_struct {
3321 AIMGrade overallGrade; //The overall letter grade, which is equal to the lowest of the other five letter grades.
3322 AIMGrade decodingGrade; //The letter grade assigned to a Data Matrix barcode based on the success of the function in decoding the Data Matrix barcode.
3323 AIMGrade symbolContrastGrade; //The letter grade assigned to a Data Matrix barcode based on the symbol contrast raw score.
3324 float symbolContrast; //The symbol contrast raw score representing the percentage difference between the mean of the reflectance of the darkest 10 percent and lightest 10 percent of the Data Matrix barcode.
3325 AIMGrade printGrowthGrade; //The print growth letter grade for the Data Matrix barcode.
3326 float printGrowth; //The print growth raw score for the barcode, which is based on the extent to which dark or light markings appropriately fill their module boundaries.
3327 AIMGrade axialNonuniformityGrade; //The axial nonuniformity grade for the Data Matrix barcode.
3328 float axialNonuniformity; //The axial nonuniformity raw score for the barcode, which is based on how much the sampling point spacing differs from one axis to another.
3329 AIMGrade unusedErrorCorrectionGrade; //The unused error correction letter grade for the Data Matrix barcode.
3330 float unusedErrorCorrection; //The unused error correction raw score for the Data Matrix barcode, which is based on the extent to which regional or spot damage in the Data Matrix barcode has eroded the reading safety margin provided by the error correction.
3331} AIMGradeReport;
3332
3333typedef struct DataMatrixSizeOptions_struct {
3334 unsigned int minSize; //Specifies the minimum size (in pixels) of the Data Matrix barcode in the image.
3335 unsigned int maxSize; //Specifies the maximum size (in pixels) of the Data Matrix barcode in the image.
3336 unsigned int quietZoneWidth; //Specifies the expected minimum size of the quiet zone, in pixels.
3337} DataMatrixSizeOptions;
3338
3339typedef struct DataMatrixDescriptionOptions_struct {
3340 float aspectRatio; //Specifies the ratio of the width of each Data Matrix barcode cell (in pixels) to the height of the Data Matrix barcode (in pixels).
3341 unsigned int rows; //Specifies the number of rows in the Data Matrix barcode.
3342 unsigned int columns; //Specifies the number of columns in the Data Matrix barcode.
3343 int rectangle; //Set this element to TRUE to specify that the Data Matrix barcode is rectangular.
3344 DataMatrixECC ecc; //Specifies the ECC used for this Data Matrix barcode.
3345 DataMatrixPolarity polarity; //Specifies the data-to-background contrast for the Data Matrix barcode.
3346 DataMatrixCellFillMode cellFill; //Specifies the fill percentage for a cell of the Data Matrix barcode that is in the "ON" state.
3347 float minBorderIntegrity; //Specifies the minimum percentage of the border (locator pattern and timing pattern) the function should expect in the Data Matrix barcode.
3348 DataMatrixMirrorMode mirrorMode; //Specifies if the Data Matrix barcode appears normally in the image or if the barcode appears mirrored in the image.
3349} DataMatrixDescriptionOptions;
3350
3351typedef struct DataMatrixSearchOptions_struct {
3352 DataMatrixRotationMode rotationMode; //Specifies the amount of Data Matrix barcode rotation the function should allow for.
3353 int skipLocation; //If set to TRUE, specifies that the function should assume that the Data Matrix barcode occupies the entire image (or the entire search region).
3354 unsigned int edgeThreshold; //Specifies the minimum contrast a pixel must have in order to be considered part of a matrix cell edge.
3355 DataMatrixDemodulationMode demodulationMode; //Specifies the mode the function should use to demodulate (determine which cells are on and which cells are off) the Data Matrix barcode.
3356 DataMatrixCellSampleSize cellSampleSize; //Specifies the sample size, in pixels, the function should take to determine if each cell is on or off.
3357 DataMatrixCellFilterMode cellFilterMode; //Specifies the mode the function uses to determine the pixel value for each cell.
3358 unsigned int skewDegreesAllowed; //Specifies the amount of skew in the Data Matrix barcode the function should allow for.
3359 unsigned int maxIterations; //Specifies the maximum number of iterations before the function stops looking for the Data Matrix barcode.
3360 unsigned int initialSearchVectorWidth; //Specifies the number of pixels the function should average together to determine the location of an edge.
3361} DataMatrixSearchOptions;
3362
3363typedef struct DataMatrixReport_struct {
3364 int found; //This element is TRUE if the function located and decoded a Data Matrix barcode and FALSE if the function failed to locate and decode a Data Matrix barcode.
3365 int binary; //This element is TRUE if the Data Matrix barcode contains binary data and FALSE if the Data Matrix barcode contains text data.
3366 unsigned char* data; //The data encoded in the Data Matrix barcode.
3367 unsigned int dataLength; //The length of the data array.
3368 PointFloat boundingBox[4]; //An array of four points describing the rectangle surrounding the Data Matrix barcode.
3369 unsigned int numErrorsCorrected; //The number of errors the function corrected when decoding the Data Matrix barcode.
3370 unsigned int numErasuresCorrected; //The number of erasures the function corrected when decoding the Data Matrix barcode.
3371 float aspectRatio; //Specifies the aspect ratio of the Data Matrix barcode in the image, which equals the ratio of the width of a Data Matrix barcode cell (in pixels) to the height of a Data Matrix barcode cell (in pixels).
3372 unsigned int rows; //The number of rows in the Data Matrix barcode.
3373 unsigned int columns; //The number of columns in the Data Matrix barcode.
3374 DataMatrixECC ecc; //The Error Correction Code (ECC) used by the Data Matrix barcode.
3375 DataMatrixPolarity polarity; //The polarity of the Data Matrix barcode.
3376 DataMatrixCellFillMode cellFill; //The cell fill percentage of the Data Matrix barcode.
3377 float borderIntegrity; //The percentage of the Data Matrix barcode border that appears correctly in the image.
3378 int mirrored; //This element is TRUE if the Data Matrix barcode appears mirrored in the image and FALSE if the Data Matrix barcode appears normally in the image.
3379 unsigned int minimumEdgeStrength; //The strength of the weakest edge the function used to find the coarse location of the Data Matrix barcode in the image.
3380 DataMatrixDemodulationMode demodulationMode; //The demodulation mode the function used to locate the Data Matrix barcode.
3381 DataMatrixCellSampleSize cellSampleSize; //The cell sample size the function used to locate the Data Matrix barcode.
3382 DataMatrixCellFilterMode cellFilterMode; //The cell filter mode the function used to locate the Data Matrix barcode.
3383 unsigned int iterations; //The number of iterations the function took in attempting to locate the Data Matrix barcode.
3384} DataMatrixReport;
3385
3386typedef struct JPEG2000FileAdvancedOptions_struct {
3387 WaveletTransformMode waveletMode; //Determines which wavelet transform to use when writing the file.
3388 int useMultiComponentTransform; //Set this parameter to TRUE to use an additional transform on RGB images.
3389 unsigned int maxWaveletTransformLevel; //Specifies the maximum allowed level of wavelet transform.
3390 float quantizationStepSize; //Specifies the absolute base quantization step size for derived quantization mode.
3391} JPEG2000FileAdvancedOptions;
3392
3393typedef struct MatchGeometricPatternAdvancedOptions2_struct {
3394 int minFeaturesUsed; //Specifies the minimum number of features the function uses when matching.
3395 int maxFeaturesUsed; //Specifies the maximum number of features the function uses when matching.
3396 int subpixelIterations; //Specifies the maximum number of incremental improvements used to refine matches with subpixel information.
3397 double subpixelTolerance; //Specifies the maximum amount of change, in pixels, between consecutive incremental improvements in the match position before the function stops refining the match position.
3398 int initialMatchListLength; //Specifies the maximum size of the match list.
3399 float matchTemplateCurveScore; //Set this element to TRUE to specify that the function should calculate the match curve to template curve score and return it for each match result.
3400 int correlationScore; //Set this element to TRUE to specify that the function should calculate the correlation score and return it for each match result.
3401 double minMatchSeparationDistance; //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
3402 double minMatchSeparationAngle; //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
3403 double minMatchSeparationScale; //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
3404 double maxMatchOverlap; //Specifies the maximum amount of overlap, expressed as a percentage, allowed between the bounding rectangles of two unique matches.
3405 int coarseResult; //Specifies whether you want the function to spend less time accurately estimating the location of a match.
3406 int smoothContours; //Set this element to TRUE to specify smoothing be done on the contours of the inspection image before feature extraction.
3407 int enableCalibrationSupport; //Set this element to TRUE to specify the algorithm treat the inspection image as a calibrated image.
3408} MatchGeometricPatternAdvancedOptions2;
3409
3410typedef struct InspectionAlignment_struct {
3411 PointFloat position; //The location of the center of the golden template in the image under inspection.
3412 float rotation; //The rotation of the golden template in the image under inspection, in degrees.
3413 float scale; //The percentage of the size of the area under inspection compared to the size of the golden template.
3414} InspectionAlignment;
3415
3416typedef struct InspectionOptions_struct {
3417 RegistrationMethod registrationMethod; //Specifies how the function registers the golden template and the target image.
3418 NormalizationMethod normalizationMethod; //Specifies how the function normalizes the golden template to the target image.
3419 int edgeThicknessToIgnore; //Specifies desired thickness of edges to be ignored.
3420 float brightThreshold; //Specifies the threshold for areas where the target image is brighter than the golden template.
3421 float darkThreshold; //Specifies the threshold for areas where the target image is darker than the golden template.
3422 int binary; //Specifies whether the function should return a binary image giving the location of defects, or a grayscale image giving the intensity of defects.
3423} InspectionOptions;
3424
3425typedef struct CharReport2_struct {
3426 const char* character; //The character value.
3427 PointFloat corner[4]; //An array of four points that describes the rectangle that surrounds the character.
3428 int lowThreshold; //The minimum value of the threshold range used for this character.
3429 int highThreshold; //The maximum value of the threshold range used for this character.
3430 int classificationScore; //The degree to which the assigned character class represents the object better than the other character classes in the character set.
3431 int verificationScore; //The similarity of the character and the reference character for the character class.
3432 int verified; //This element is TRUE if a reference character was found for the character class and FALSE if a reference character was not found.
3433} CharReport2;
3434
3435typedef struct CharInfo2_struct {
3436 const char* charValue; //Retrieves the character value of the corresponding character in the character set.
3437 const Image* charImage; //The image you used to train this character.
3438 const Image* internalImage; //The internal representation that NI Vision uses to match objects to this character.
3439 int isReferenceChar; //This element is TRUE if the character is the reference character for the character class.
3440} CharInfo2;
3441
3442typedef struct ReadTextReport2_struct {
3443 const char* readString; //The read string.
3444 CharReport2* characterReport; //An array of reports describing the properties of each identified character.
3445 int numCharacterReports; //The number of identified characters.
3446} ReadTextReport2;
3447
3448typedef struct EllipseFeature_struct {
3449 PointFloat position; //The location of the center of the ellipse.
3450 double rotation; //The orientation of the semi-major axis of the ellipse with respect to the horizontal.
3451 double minorRadius; //The length of the semi-minor axis of the ellipse.
3452 double majorRadius; //The length of the semi-major axis of the ellipse.
3453} EllipseFeature;
3454
3455typedef struct CircleFeature_struct {
3456 PointFloat position; //The location of the center of the circle.
3457 double radius; //The radius of the circle.
3458} CircleFeature;
3459
3460typedef struct ConstCurveFeature_struct {
3461 PointFloat position; //The center of the circle that this constant curve lies upon.
3462 double radius; //The radius of the circle that this constant curve lies upon.
3463 double startAngle; //When traveling along the constant curve from one endpoint to the next in a counterclockwise manner, this is the angular component of the vector originating at the center of the constant curve and pointing towards the first endpoint of the constant curve.
3464 double endAngle; //When traveling along the constant curve from one endpoint to the next in a counterclockwise manner, this is the angular component of the vector originating at the center of the constant curve and pointing towards the second endpoint of the constant curve.
3465} ConstCurveFeature;
3466
3467typedef struct RectangleFeature_struct {
3468 PointFloat position; //The center of the rectangle.
3469 PointFloat corner[4]; //The four corners of the rectangle.
3470 double rotation; //The orientation of the rectangle with respect to the horizontal.
3471 double width; //The width of the rectangle.
3472 double height; //The height of the rectangle.
3473} RectangleFeature;
3474
3475typedef struct LegFeature_struct {
3476 PointFloat position; //The location of the leg feature.
3477 PointFloat corner[4]; //The four corners of the leg feature.
3478 double rotation; //The orientation of the leg with respect to the horizontal.
3479 double width; //The width of the leg.
3480 double height; //The height of the leg.
3481} LegFeature;
3482
3483typedef struct CornerFeature_struct {
3484 PointFloat position; //The location of the corner feature.
3485 double rotation; //The angular component of the vector bisecting the corner from position.
3486 double enclosedAngle; //The measure of the enclosed angle of the corner.
3487 int isVirtual;
3488} CornerFeature;
3489
3490typedef struct LineFeature_struct {
3491 PointFloat startPoint; //The starting point of the line.
3492 PointFloat endPoint; //The ending point of the line.
3493 double length; //The length of the line measured in pixels from the start point to the end point.
3494 double rotation; //The orientation of the line with respect to the horizontal.
3495} LineFeature;
3496
3497typedef struct ParallelLinePairFeature_struct {
3498 PointFloat firstStartPoint; //The starting point of the first line of the pair.
3499 PointFloat firstEndPoint; //The ending point of the first line of the pair.
3500 PointFloat secondStartPoint; //The starting point of the second line of the pair.
3501 PointFloat secondEndPoint; //The ending point of the second line of the pair.
3502 double rotation; //The orientation of the feature with respect to the horizontal.
3503 double distance; //The distance from the first line to the second line.
3504} ParallelLinePairFeature;
3505
3506typedef struct PairOfParallelLinePairsFeature_struct {
3507 ParallelLinePairFeature firstParallelLinePair; //The first parallel line pair.
3508 ParallelLinePairFeature secondParallelLinePair; //The second parallel line pair.
3509 double rotation; //The orientation of the feature with respect to the horizontal.
3510 double distance; //The distance from the midline of the first parallel line pair to the midline of the second parallel line pair.
3511} PairOfParallelLinePairsFeature;
3512
3513typedef union GeometricFeature_union {
3514 CircleFeature* circle; //A pointer to a CircleFeature.
3515 EllipseFeature* ellipse; //A pointer to an EllipseFeature.
3516 ConstCurveFeature* constCurve; //A pointer to a ConstCurveFeature.
3517 RectangleFeature* rectangle; //A pointer to a RectangleFeature.
3518 LegFeature* leg; //A pointer to a LegFeature.
3519 CornerFeature* corner; //A pointer to a CornerFeature.
3520 ParallelLinePairFeature* parallelLinePair; //A pointer to a ParallelLinePairFeature.
3521 PairOfParallelLinePairsFeature* pairOfParallelLinePairs; //A pointer to a PairOfParallelLinePairsFeature.
3522 LineFeature* line; //A pointer to a LineFeature.
3523 ClosedCurveFeature* closedCurve; //A pointer to a ClosedCurveFeature.
3524} GeometricFeature;
3525
3526typedef struct FeatureData_struct {
3527 FeatureType type; //An enumeration representing the type of the feature.
3528 PointFloat* contourPoints; //A set of points describing the contour of the feature.
3529 int numContourPoints; //The number of points in the contourPoints array.
3530 GeometricFeature feature; //The feature data specific to this type of feature.
3531} FeatureData;
3532
3533typedef struct GeometricPatternMatch2_struct {
3534 PointFloat position; //The location of the origin of the template in the match.
3535 float rotation; //The rotation of the match relative to the template image, in degrees.
3536 float scale; //The size of the match relative to the size of the template image, expressed as a percentage.
3537 float score; //The accuracy of the match.
3538 PointFloat corner[4]; //An array of four points describing the rectangle surrounding the template image.
3539 int inverse; //This element is TRUE if the match is an inverse of the template image.
3540 float occlusion; //The percentage of the match that is occluded.
3541 float templateMatchCurveScore; //The accuracy of the match obtained by comparing the template curves to the curves in the match region.
3542 float matchTemplateCurveScore; //The accuracy of the match obtained by comparing the curves in the match region to the template curves.
3543 float correlationScore; //The accuracy of the match obtained by comparing the template image to the match region using a correlation metric that compares the two regions as a function of their pixel values.
3544 String255 label; //The label corresponding to this match when the match is returned by imaqMatchMultipleGeometricPatterns().
3545 FeatureData* featureData; //The features used in this match.
3546 int numFeatureData; //The size of the featureData array.
3547 PointFloat calibratedPosition; //The location of the origin of the template in the match.
3548 float calibratedRotation; //The rotation of the match relative to the template image, in degrees.
3549 PointFloat calibratedCorner[4]; //An array of four points describing the rectangle surrounding the template image.
3550} GeometricPatternMatch2;
3551
3552typedef struct ClosedCurveFeature_struct {
3553 PointFloat position; //The center of the closed curve feature.
3554 double arcLength; //The arc length of the closed curve feature.
3555} ClosedCurveFeature;
3556
3557typedef struct LineMatch_struct {
3558 PointFloat startPoint; //The starting point of the matched line.
3559 PointFloat endPoint; //The ending point of the matched line.
3560 double length; //The length of the line measured in pixels from the start point to the end point.
3561 double rotation; //The orientation of the matched line.
3562 double score; //The score of the matched line.
3563} LineMatch;
3564
3565typedef struct LineDescriptor_struct {
3566 double minLength; //Specifies the minimum length of a line the function will return.
3567 double maxLength; //Specifies the maximum length of a line the function will return.
3568} LineDescriptor;
3569
3570typedef struct RectangleDescriptor_struct {
3571 double minWidth; //Specifies the minimum width of a rectangle the algorithm will return.
3572 double maxWidth; //Specifies the maximum width of a rectangle the algorithm will return.
3573 double minHeight; //Specifies the minimum height of a rectangle the algorithm will return.
3574 double maxHeight; //Specifies the maximum height of a rectangle the algorithm will return.
3575} RectangleDescriptor;
3576
3577typedef struct RectangleMatch_struct {
3578 PointFloat corner[4]; //The corners of the matched rectangle.
3579 double rotation; //The orientation of the matched rectangle.
3580 double width; //The width of the matched rectangle.
3581 double height; //The height of the matched rectangle.
3582 double score; //The score of the matched rectangle.
3583} RectangleMatch;
3584
3585typedef struct EllipseDescriptor_struct {
3586 double minMajorRadius; //Specifies the minimum length of the semi-major axis of an ellipse the function will return.
3587 double maxMajorRadius; //Specifies the maximum length of the semi-major axis of an ellipse the function will return.
3588 double minMinorRadius; //Specifies the minimum length of the semi-minor axis of an ellipse the function will return.
3589 double maxMinorRadius; //Specifies the maximum length of the semi-minor axis of an ellipse the function will return.
3590} EllipseDescriptor;
3591
3592typedef struct EllipseMatch_struct {
3593 PointFloat position; //The location of the center of the matched ellipse.
3594 double rotation; //The orientation of the matched ellipse.
3595 double majorRadius; //The length of the semi-major axis of the matched ellipse.
3596 double minorRadius; //The length of the semi-minor axis of the matched ellipse.
3597 double score; //The score of the matched ellipse.
3598} EllipseMatch;
3599
3600typedef struct CircleMatch_struct {
3601 PointFloat position; //The location of the center of the matched circle.
3602 double radius; //The radius of the matched circle.
3603 double score; //The score of the matched circle.
3604} CircleMatch;
3605
3606typedef struct CircleDescriptor_struct {
3607 double minRadius; //Specifies the minimum radius of a circle the function will return.
3608 double maxRadius; //Specifies the maximum radius of a circle the function will return.
3609} CircleDescriptor;
3610
3611typedef struct ShapeDetectionOptions_struct {
3612 unsigned int mode; //Specifies the method used when looking for the shape in the image.
3613 RangeFloat* angleRanges; //An array of angle ranges, in degrees, where each range specifies how much you expect the shape to be rotated in the image.
3614 int numAngleRanges; //The size of the orientationRanges array.
3615 RangeFloat scaleRange; //A range that specifies the sizes of the shapes you expect to be in the image, expressed as a ratio percentage representing the size of the pattern in the image divided by size of the original pattern multiplied by 100.
3616 double minMatchScore;
3617} ShapeDetectionOptions;
3618
3619typedef struct Curve_struct {
3620 PointFloat* points; //The points on the curve.
3621 unsigned int numPoints; //The number of points in the curve.
3622 int closed; //This element is TRUE if the curve is closed and FALSE if the curve is open.
3623 double curveLength; //The length of the curve.
3624 double minEdgeStrength; //The lowest edge strength detected on the curve.
3625 double maxEdgeStrength; //The highest edge strength detected on the curve.
3626 double averageEdgeStrength; //The average of all edge strengths detected on the curve.
3627} Curve;
3628
3629typedef struct CurveOptions_struct {
3630 ExtractionMode extractionMode; //Specifies the method the function uses to identify curves in the image.
3631 int threshold; //Specifies the minimum contrast a seed point must have in order to begin a curve.
3632 EdgeFilterSize filterSize; //Specifies the width of the edge filter the function uses to identify curves in the image.
3633 int minLength; //Specifies the length, in pixels, of the smallest curve the function will extract.
3634 int rowStepSize; //Specifies the distance, in the y direction, between lines the function inspects for curve seed points.
3635 int columnStepSize; //Specifies the distance, in the x direction, between columns the function inspects for curve seed points.
3636 int maxEndPointGap; //Specifies the maximum gap, in pixels, between the endpoints of a curve that the function identifies as a closed curve.
3637 int onlyClosed; //Set this element to TRUE to specify that the function should only identify closed curves in the image.
3638 int subpixelAccuracy; //Set this element to TRUE to specify that the function identifies the location of curves with subpixel accuracy by interpolating between points to find the crossing of threshold.
3639} CurveOptions;
3640
3641typedef struct Barcode2DInfo_struct {
3642 Barcode2DType type; //The type of the 2D barcode.
3643 int binary; //This element is TRUE if the 2D barcode contains binary data and FALSE if the 2D barcode contains text data.
3644 unsigned char* data; //The data encoded in the 2D barcode.
3645 unsigned int dataLength; //The length of the data array.
3646 PointFloat boundingBox[4]; //An array of four points describing the rectangle surrounding the 2D barcode.
3647 unsigned int numErrorsCorrected; //The number of errors the function corrected when decoding the 2D barcode.
3648 unsigned int numErasuresCorrected; //The number of erasures the function corrected when decoding the 2D barcode.
3649 unsigned int rows; //The number of rows in the 2D barcode.
3650 unsigned int columns; //The number of columns in the 2D barcode.
3651} Barcode2DInfo;
3652
3653typedef struct DataMatrixOptions_struct {
3654 Barcode2DSearchMode searchMode; //Specifies the mode the function uses to search for barcodes.
3655 Barcode2DContrast contrast; //Specifies the contrast of the barcodes that the function searches for.
3656 Barcode2DCellShape cellShape; //Specifies the shape of the barcode data cells, which affects how the function decodes the barcode.
3657 Barcode2DShape barcodeShape; //Specifies the shape of the barcodes that the function searches for.
3658 DataMatrixSubtype subtype; //Specifies the Data Matrix subtypes of the barcodes that the function searches for.
3659} DataMatrixOptions;
3660
3661typedef struct ClassifierAccuracyReport_struct {
3662 int size; //The size of the arrays in this structure.
3663 float accuracy; //The overall accuracy of the classifier, from 0 to 1000.
3664 char** classNames; //The names of the classes of this classifier.
3665 double* classAccuracy; //An array of size elements that contains accuracy information for each class.
3666 double* classPredictiveValue; //An array containing size elements that contains the predictive values of each class.
3667 int** classificationDistribution; //A two-dimensional array containing information about how the classifier classifies its samples.
3668} ClassifierAccuracyReport;
3669
3670typedef struct NearestNeighborClassResult_struct {
3671 char* className; //The name of the class.
3672 float standardDeviation; //The standard deviation of the members of this class.
3673 int count; //The number of samples in this class.
3674} NearestNeighborClassResult;
3675
3676typedef struct NearestNeighborTrainingReport_struct {
3677 float** classDistancesTable; //The confidence in the training.
3678 NearestNeighborClassResult* allScores; //All classes and their scores.
3679 int allScoresSize; //The number of entries in allScores.
3680} NearestNeighborTrainingReport;
3681
3682typedef struct ParticleClassifierPreprocessingOptions_struct {
3683 int manualThreshold; //Set this element to TRUE to specify the threshold range manually.
3684 RangeFloat manualThresholdRange; //If a manual threshold is being done, the range of pixels to keep.
3685 ThresholdMethod autoThresholdMethod; //If an automatic threshold is being done, the method used to calculate the threshold range.
3686 RangeFloat limits; //The limits on the automatic threshold range.
3687 ParticleType particleType; //Specifies what kind of particles to look for.
3688 int rejectBorder; //Set this element to TRUE to reject border particles.
3689 int numErosions; //The number of erosions to perform.
3690} ParticleClassifierPreprocessingOptions;
3691
3692typedef struct ClassifierSampleInfo_struct {
3693 char* className; //The name of the class this sample is in.
3694 double* featureVector; //The feature vector of this sample, or NULL if this is not a custom classifier session.
3695 int featureVectorSize; //The number of elements in the feature vector.
3696 Image* thumbnail; //A thumbnail image of this sample, or NULL if no image was specified.
3697} ClassifierSampleInfo;
3698
3699typedef struct ClassScore_struct {
3700 char* className; //The name of the class.
3701 float distance; //The distance from the item to this class.
3702} ClassScore;
3703
3704typedef struct ClassifierReport_struct {
3705 char* bestClassName; //The name of the best class for the sample.
3706 float classificationScore; //The similarity of the sample and the two closest classes in the classifier.
3707 float identificationScore; //The similarity of the sample and the assigned class.
3708 ClassScore* allScores; //All classes and their scores.
3709 int allScoresSize; //The number of entries in allScores.
3710} ClassifierReport;
3711
3712typedef struct NearestNeighborOptions_struct {
3713 NearestNeighborMethod method; //The method to use.
3714 NearestNeighborMetric metric; //The metric to use.
3715 int k; //The value of k, if the IMAQ_K_NEAREST_NEIGHBOR method is used.
3716} NearestNeighborOptions;
3717
3718typedef struct ParticleClassifierOptions_struct {
3719 float scaleDependence; //The relative importance of scale when classifying particles.
3720 float mirrorDependence; //The relative importance of mirror symmetry when classifying particles.
3721} ParticleClassifierOptions;
3722
3723typedef struct RGBU64Value_struct {
3724 unsigned short B; //The blue value of the color.
3725 unsigned short G; //The green value of the color.
3726 unsigned short R; //The red value of the color.
3727 unsigned short alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
3728} RGBU64Value;
3729
3730typedef struct GeometricPatternMatch_struct {
3731 PointFloat position; //The location of the origin of the template in the match.
3732 float rotation; //The rotation of the match relative to the template image, in degrees.
3733 float scale; //The size of the match relative to the size of the template image, expressed as a percentage.
3734 float score; //The accuracy of the match.
3735 PointFloat corner[4]; //An array of four points describing the rectangle surrounding the template image.
3736 int inverse; //This element is TRUE if the match is an inverse of the template image.
3737 float occlusion; //The percentage of the match that is occluded.
3738 float templateMatchCurveScore; //The accuracy of the match obtained by comparing the template curves to the curves in the match region.
3739 float matchTemplateCurveScore; //The accuracy of the match obtained by comparing the curves in the match region to the template curves.
3740 float correlationScore; //The accuracy of the match obtained by comparing the template image to the match region using a correlation metric that compares the two regions as a function of their pixel values.
3741} GeometricPatternMatch;
3742
3743typedef struct MatchGeometricPatternAdvancedOptions_struct {
3744 int minFeaturesUsed; //Specifies the minimum number of features the function uses when matching.
3745 int maxFeaturesUsed; //Specifies the maximum number of features the function uses when matching.
3746 int subpixelIterations; //Specifies the maximum number of incremental improvements used to refine matches with subpixel information.
3747 double subpixelTolerance; //Specifies the maximum amount of change, in pixels, between consecutive incremental improvements in the match position before the function stops refining the match position.
3748 int initialMatchListLength; //Specifies the maximum size of the match list.
3749 int matchTemplateCurveScore; //Set this element to TRUE to specify that the function should calculate the match curve to template curve score and return it for each match result.
3750 int correlationScore; //Set this element to TRUE to specify that the function should calculate the correlation score and return it for each match result.
3751 double minMatchSeparationDistance; //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
3752 double minMatchSeparationAngle; //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
3753 double minMatchSeparationScale; //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
3754 double maxMatchOverlap; //Specifies the maximum amount of overlap, expressed as a percentage, allowed between the bounding rectangles of two unique matches.
3755 int coarseResult; //Specifies whether you want the function to spend less time accurately estimating the location of a match.
3756} MatchGeometricPatternAdvancedOptions;
3757
3758typedef struct MatchGeometricPatternOptions_struct {
3759 unsigned int mode; //Specifies the method imaqMatchGeometricPattern() uses when looking for the pattern in the image.
3760 int subpixelAccuracy; //Set this element to TRUE to specify that the function should calculate match locations with subpixel accuracy.
3761 RangeFloat* angleRanges; //An array of angle ranges, in degrees, where each range specifies how much you expect the template to be rotated in the image.
3762 int numAngleRanges; //Number of angle ranges in the angleRanges array.
3763 RangeFloat scaleRange; //A range that specifies the sizes of the pattern you expect to be in the image, expressed as a ratio percentage representing the size of the pattern in the image divided by size of the original pattern multiplied by 100.
3764 RangeFloat occlusionRange; //A range that specifies the percentage of the pattern you expect to be occluded in the image.
3765 int numMatchesRequested; //Number of valid matches expected.
3766 float minMatchScore; //The minimum score a match can have for the function to consider the match valid.
3767} MatchGeometricPatternOptions;
3768
3769typedef struct LearnGeometricPatternAdvancedOptions_struct {
3770 int minRectLength; //Specifies the minimum length for each side of a rectangular feature.
3771 double minRectAspectRatio; //Specifies the minimum aspect ratio of a rectangular feature.
3772 int minRadius; //Specifies the minimum radius for a circular feature.
3773 int minLineLength; //Specifies the minimum length for a linear feature.
3774 double minFeatureStrength; //Specifies the minimum strength for a feature.
3775 int maxFeaturesUsed; //Specifies the maximum number of features the function uses when learning.
3776 int maxPixelDistanceFromLine; //Specifies the maximum number of pixels between an edge pixel and a linear feature for the function to consider that edge pixel as part of the linear feature.
3777} LearnGeometricPatternAdvancedOptions;
3778
3779typedef struct FitEllipseOptions_struct {
3780 int rejectOutliers; //Whether to use every given point or only a subset of the points to fit the ellipse.
3781 double minScore; //Specifies the required quality of the fitted ellipse.
3782 double pixelRadius; //The acceptable distance, in pixels, that a point determined to belong to the ellipse can be from the circumference of the ellipse.
3783 int maxIterations; //Specifies the number of refinement iterations you allow the function to perform on the initial subset of points.
3784} FitEllipseOptions;
3785
3786typedef struct FitCircleOptions_struct {
3787 int rejectOutliers; //Whether to use every given point or only a subset of the points to fit the circle.
3788 double minScore; //Specifies the required quality of the fitted circle.
3789 double pixelRadius; //The acceptable distance, in pixels, that a point determined to belong to the circle can be from the circumference of the circle.
3790 int maxIterations; //Specifies the number of refinement iterations you allow the function to perform on the initial subset of points.
3791} FitCircleOptions;
3792
3793typedef struct ConstructROIOptions2_struct {
3794 int windowNumber; //The window number of the image window.
3795 const char* windowTitle; //Specifies the message string that the function displays in the title bar of the window.
3796 PaletteType type; //The palette type to use.
3797 RGBValue* palette; //If type is IMAQ_PALETTE_USER, this array is the palette of colors to use with the window.
3798 int numColors; //If type is IMAQ_PALETTE_USER, this element is the number of colors in the palette array.
3799 unsigned int maxContours; //The maximum number of contours the user will be able to select.
3800} ConstructROIOptions2;
3801
3802typedef struct HSLValue_struct {
3803 unsigned char L; //The color luminance.
3804 unsigned char S; //The color saturation.
3805 unsigned char H; //The color hue.
3806 unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
3807} HSLValue;
3808
3809typedef struct HSVValue_struct {
3810 unsigned char V; //The color value.
3811 unsigned char S; //The color saturation.
3812 unsigned char H; //The color hue.
3813 unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
3814} HSVValue;
3815
3816typedef struct HSIValue_struct {
3817 unsigned char I; //The color intensity.
3818 unsigned char S; //The color saturation.
3819 unsigned char H; //The color hue.
3820 unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
3821} HSIValue;
3822
3823typedef struct CIELabValue_struct {
3824 double b; //The yellow/blue information of the color.
3825 double a; //The red/green information of the color.
3826 double L; //The color lightness.
3827 unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
3828} CIELabValue;
3829
3830typedef struct CIEXYZValue_struct {
3831 double Z; //The Z color information.
3832 double Y; //The color luminance.
3833 double X; //The X color information.
3834 unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
3835} CIEXYZValue;
3836
3837typedef union Color2_union {
3838 RGBValue rgb; //The information needed to describe a color in the RGB (Red, Green, and Blue) color space.
3839 HSLValue hsl; //The information needed to describe a color in the HSL (Hue, Saturation, and Luminance) color space.
3840 HSVValue hsv; //The information needed to describe a color in the HSI (Hue, Saturation, and Value) color space.
3841 HSIValue hsi; //The information needed to describe a color in the HSI (Hue, Saturation, and Intensity) color space.
3842 CIELabValue cieLab; //The information needed to describe a color in the CIE L*a*b* (L, a, b) color space.
3843 CIEXYZValue cieXYZ; //The information needed to describe a color in the CIE XYZ (X, Y, Z) color space.
3844 int rawValue; //The integer value for the data in the color union.
3845} Color2;
3846
3847typedef struct BestEllipse2_struct {
3848 PointFloat center; //The coordinate location of the center of the ellipse.
3849 PointFloat majorAxisStart; //The coordinate location of the start of the major axis of the ellipse.
3850 PointFloat majorAxisEnd; //The coordinate location of the end of the major axis of the ellipse.
3851 PointFloat minorAxisStart; //The coordinate location of the start of the minor axis of the ellipse.
3852 PointFloat minorAxisEnd; //The coordinate location of the end of the minor axis of the ellipse.
3853 double area; //The area of the ellipse.
3854 double perimeter; //The length of the perimeter of the ellipse.
3855 double error; //Represents the least square error of the fitted ellipse to the entire set of points.
3856 int valid; //This element is TRUE if the function achieved the minimum score within the number of allowed refinement iterations and FALSE if the function did not achieve the minimum score.
3857 int* pointsUsed; //An array of the indexes for the points array indicating which points the function used to fit the ellipse.
3858 int numPointsUsed; //The number of points the function used to fit the ellipse.
3859} BestEllipse2;
3860
3861typedef struct LearnPatternAdvancedOptions_struct {
3862 LearnPatternAdvancedShiftOptions* shiftOptions; //Use this element to control the behavior of imaqLearnPattern2() during the shift-invariant learning phase.
3863 LearnPatternAdvancedRotationOptions* rotationOptions; //Use this element to control the behavior of imaqLearnPattern2()during the rotation-invariant learning phase.
3864} LearnPatternAdvancedOptions;
3865
3866typedef struct AVIInfo_struct {
3867 unsigned int width; //The width of each frame.
3868 unsigned int height; //The height of each frame.
3869 ImageType imageType; //The type of images this AVI contains.
3870 unsigned int numFrames; //The number of frames in the AVI.
3871 unsigned int framesPerSecond; //The number of frames per second this AVI should be shown at.
3872 char* filterName; //The name of the compression filter used to create this AVI.
3873 int hasData; //Specifies whether this AVI has data attached to each frame or not.
3874 unsigned int maxDataSize; //If this AVI has data, the maximum size of the data in each frame.
3875} AVIInfo;
3876
3877typedef struct LearnPatternAdvancedShiftOptions_struct {
3878 int initialStepSize; //The largest number of image pixels to shift the sample across the inspection image during the initial phase of shift-invariant matching.
3879 int initialSampleSize; //Specifies the number of template pixels that you want to include in a sample for the initial phase of shift-invariant matching.
3880 double initialSampleSizeFactor; //Specifies the size of the sample for the initial phase of shift-invariant matching as a percent of the template size, in pixels.
3881 int finalSampleSize; //Specifies the number of template pixels you want to add to initialSampleSize for the final phase of shift-invariant matching.
3882 double finalSampleSizeFactor; //Specifies the size of the sample for the final phase of shift-invariant matching as a percent of the edge points in the template, in pixels.
3883 int subpixelSampleSize; //Specifies the number of template pixels that you want to include in a sample for the subpixel phase of shift-invariant matching.
3884 double subpixelSampleSizeFactor; //Specifies the size of the sample for the subpixel phase of shift-invariant matching as a percent of the template size, in pixels.
3885} LearnPatternAdvancedShiftOptions;
3886
3887typedef struct LearnPatternAdvancedRotationOptions_struct {
3888 SearchStrategy searchStrategySupport; //Specifies the aggressiveness of the rotation search strategy available during the matching phase.
3889 int initialStepSize; //The largest number of image pixels to shift the sample across the inspection image during the initial phase of matching.
3890 int initialSampleSize; //Specifies the number of template pixels that you want to include in a sample for the initial phase of rotation-invariant matching.
3891 double initialSampleSizeFactor; //Specifies the size of the sample for the initial phase of rotation-invariant matching as a percent of the template size, in pixels.
3892 int initialAngularAccuracy; //Sets the angle accuracy, in degrees, to use during the initial phase of rotation-invariant matching.
3893 int finalSampleSize; //Specifies the number of template pixels you want to add to initialSampleSize for the final phase of rotation-invariant matching.
3894 double finalSampleSizeFactor; //Specifies the size of the sample for the final phase of rotation-invariant matching as a percent of the edge points in the template, in pixels.
3895 int finalAngularAccuracy; //Sets the angle accuracy, in degrees, to use during the final phase of the rotation-invariant matching.
3896 int subpixelSampleSize; //Specifies the number of template pixels that you want to include in a sample for the subpixel phase of rotation-invariant matching.
3897 double subpixelSampleSizeFactor; //Specifies the size of the sample for the subpixel phase of rotation-invariant matching as a percent of the template size, in pixels.
3898} LearnPatternAdvancedRotationOptions;
3899
3900typedef struct MatchPatternAdvancedOptions_struct {
3901 int subpixelIterations; //Defines the maximum number of incremental improvements used to refine matching using subpixel information.
3902 double subpixelTolerance; //Defines the maximum amount of change, in pixels, between consecutive incremental improvements in the match position that you want to trigger the end of the refinement process.
3903 int initialMatchListLength; //Specifies the maximum size of the match list.
3904 int matchListReductionFactor; //Specifies the reduction of the match list as matches are refined.
3905 int initialStepSize; //Specifies the number of pixels to shift the sample across the inspection image during the initial phase of shift-invariant matching.
3906 SearchStrategy searchStrategy; //Specifies the aggressiveness of the rotation search strategy.
3907 int intermediateAngularAccuracy; //Specifies the accuracy to use during the intermediate phase of rotation-invariant matching.
3908} MatchPatternAdvancedOptions;
3909
3910typedef struct ParticleFilterCriteria2_struct {
3911 MeasurementType parameter; //The morphological measurement that the function uses for filtering.
3912 float lower; //The lower bound of the criteria range.
3913 float upper; //The upper bound of the criteria range.
3914 int calibrated; //Set this element to TRUE to take calibrated measurements.
3915 int exclude; //Set this element to TRUE to indicate that a match occurs when the measurement is outside the criteria range.
3916} ParticleFilterCriteria2;
3917
3918typedef struct BestCircle2_struct {
3919 PointFloat center; //The coordinate location of the center of the circle.
3920 double radius; //The radius of the circle.
3921 double area; //The area of the circle.
3922 double perimeter; //The length of the perimeter of the circle.
3923 double error; //Represents the least square error of the fitted circle to the entire set of points.
3924 int valid; //This element is TRUE if the function achieved the minimum score within the number of allowed refinement iterations and FALSE if the function did not achieve the minimum score.
3925 int* pointsUsed; //An array of the indexes for the points array indicating which points the function used to fit the circle.
3926 int numPointsUsed; //The number of points the function used to fit the circle.
3927} BestCircle2;
3928
3929typedef struct OCRSpacingOptions_struct {
3930 int minCharSpacing; //The minimum number of pixels that must be between two characters for NI Vision to train or read the characters separately.
3931 int minCharSize; //The minimum number of pixels required for an object to be a potentially identifiable character.
3932 int maxCharSize; //The maximum number of pixels required for an object to be a potentially identifiable character.
3933 int maxHorizontalElementSpacing; //The maximum horizontal spacing, in pixels, allowed between character elements to train or read the character elements as a single character.
3934 int maxVerticalElementSpacing; //The maximum vertical element spacing in pixels.
3935 int minBoundingRectWidth; //The minimum possible width, in pixels, for a character bounding rectangle.
3936 int maxBoundingRectWidth; //The maximum possible width, in pixels, for a character bounding rectangle.
3937 int minBoundingRectHeight; //The minimum possible height, in pixels, for a character bounding rectangle.
3938 int maxBoundingRectHeight; //The maximum possible height, in pixels, for a character bounding rectangle.
3939 int autoSplit; //Set this element to TRUE to automatically adjust the location of the character bounding rectangle when characters overlap vertically.
3940} OCRSpacingOptions;
3941
3942typedef struct OCRProcessingOptions_struct {
3943 ThresholdMode mode; //The thresholding mode.
3944 int lowThreshold; //The low threshold value when you set mode to IMAQ_FIXED_RANGE.
3945 int highThreshold; //The high threshold value when you set mode to IMAQ_FIXED_RANGE.
3946 int blockCount; //The number of blocks for threshold calculation algorithms that require blocks.
3947 int fastThreshold; //Set this element to TRUE to use a faster, less accurate threshold calculation algorithm.
3948 int biModalCalculation; //Set this element to TRUE to calculate both the low and high threshold values when using the fast thresholding method.
3949 int darkCharacters; //Set this element to TRUE to read or train dark characters on a light background.
3950 int removeParticlesTouchingROI; //Set this element to TRUE to remove the particles touching the ROI.
3951 int erosionCount; //The number of erosions to perform.
3952} OCRProcessingOptions;
3953
3954typedef struct ReadTextOptions_struct {
3955 String255 validChars[255]; //An array of strings that specifies the valid characters.
3956 int numValidChars; //The number of strings in the validChars array that you have initialized.
3957 char substitutionChar; //The character to substitute for objects that the function cannot match with any of the trained characters.
3958 ReadStrategy readStrategy; //The read strategy, which determines how closely the function analyzes images in the reading process to match objects with trained characters.
3959 int acceptanceLevel; //The minimum acceptance level at which an object is considered a trained character.
3960 int aspectRatio; //The maximum aspect ratio variance percentage for valid characters.
3961 ReadResolution readResolution; //The read resolution, which determines how much of the trained character data the function uses to match objects to trained characters.
3962} ReadTextOptions;
3963
3964typedef struct CharInfo_struct {
3965 const char* charValue; //Retrieves the character value of the corresponding character in the character set.
3966 const Image* charImage; //The image you used to train this character.
3967 const Image* internalImage; //The internal representation that NI Vision uses to match objects to this character.
3968} CharInfo;
3969
3970#if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
3971typedef struct Rect_struct {
3972 int top; //Location of the top edge of the rectangle.
3973 int left; //Location of the left edge of the rectangle.
3974 int height; //Height of the rectangle.
3975 int width; //Width of the rectangle.
3976} Rect;
3977#define _CVI_RECT_DEFINED
3978#endif
3979
3980typedef struct CharReport_struct {
3981 const char* character; //The character value.
3982 PointFloat corner[4]; //An array of four points that describes the rectangle that surrounds the character.
3983 int reserved; //This element is reserved.
3984 int lowThreshold; //The minimum value of the threshold range used for this character.
3985 int highThreshold; //The maximum value of the threshold range used for this character.
3986} CharReport;
3987
3988typedef struct ReadTextReport_struct {
3989 const char* readString; //The read string.
3990 const CharReport* characterReport; //An array of reports describing the properties of each identified character.
3991 int numCharacterReports; //The number of identified characters.
3992} ReadTextReport;
3993
3994#if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
3995typedef struct Point_struct {
3996 int x; //The x-coordinate of the point.
3997 int y; //The y-coordinate of the point.
3998} Point;
3999#define _CVI_POINT_DEFINED
4000#endif
4001
4002typedef struct Annulus_struct {
4003 Point center; //The coordinate location of the center of the annulus.
4004 int innerRadius; //The internal radius of the annulus.
4005 int outerRadius; //The external radius of the annulus.
4006 double startAngle; //The start angle, in degrees, of the annulus.
4007 double endAngle; //The end angle, in degrees, of the annulus.
4008} Annulus;
4009
4010typedef struct EdgeLocationReport_struct {
4011 PointFloat* edges; //The coordinate location of all edges detected by the search line.
4012 int numEdges; //The number of points in the edges array.
4013} EdgeLocationReport;
4014
4015typedef struct EdgeOptions_struct {
4016 unsigned threshold; //Specifies the threshold value for the contrast of the edge.
4017 unsigned width; //The number of pixels that the function averages to find the contrast at either side of the edge.
4018 unsigned steepness; //The span, in pixels, of the slope of the edge projected along the path specified by the input points.
4019 InterpolationMethod subpixelType; //The method for interpolating.
4020 unsigned subpixelDivisions; //The number of samples the function obtains from a pixel.
4021} EdgeOptions;
4022
4023typedef struct EdgeReport_struct {
4024 float location; //The location of the edge from the first point in the points array.
4025 float contrast; //The contrast at the edge.
4026 PolarityType polarity; //The polarity of the edge.
4027 float reserved; //This element is reserved.
4028 PointFloat coordinate; //The coordinates of the edge.
4029} EdgeReport;
4030
4031typedef struct ExtremeReport_struct {
4032 double location; //The locations of the extreme.
4033 double amplitude; //The amplitude of the extreme.
4034 double secondDerivative; //The second derivative of the extreme.
4035} ExtremeReport;
4036
4037typedef struct FitLineOptions_struct {
4038 float minScore; //Specifies the required quality of the fitted line.
4039 float pixelRadius; //Specifies the neighborhood pixel relationship for the initial subset of points being used.
4040 int numRefinements; //Specifies the number of refinement iterations you allow the function to perform on the initial subset of points.
4041} FitLineOptions;
4042
4043typedef struct DisplayMapping_struct {
4044 MappingMethod method; //Describes the method for converting 16-bit pixels to 8-bit pixels.
4045 int minimumValue; //When method is IMAQ_RANGE, minimumValue represents the value that is mapped to 0.
4046 int maximumValue; //When method is IMAQ_RANGE, maximumValue represents the value that is mapped to 255.
4047 int shiftCount; //When method is IMAQ_DOWNSHIFT, shiftCount represents the number of bits the function right-shifts the 16-bit pixel values.
4048} DisplayMapping;
4049
4050typedef struct DetectExtremesOptions_struct {
4051 double threshold; //Defines which extremes are too small.
4052 int width; //Specifies the number of consecutive data points the function uses in the quadratic least-squares fit.
4053} DetectExtremesOptions;
4054
4055typedef struct ImageInfo_struct {
4056 CalibrationUnit imageUnit; //If you set calibration information with imaqSetSimpleCalibrationInfo(), imageUnit is the calibration unit.
4057 float stepX; //If you set calibration information with imaqSetCalibrationInfo(), stepX is the distance in the calibration unit between two pixels in the x direction.
4058 float stepY; //If you set calibration information with imaqSetCalibrationInfo(), stepY is the distance in the calibration unit between two pixels in the y direction.
4059 ImageType imageType; //The type of the image.
4060 int xRes; //The number of columns in the image.
4061 int yRes; //The number of rows in the image.
4062 int xOffset; //If you set mask offset information with imaqSetMaskOffset(), xOffset is the offset of the mask origin in the x direction.
4063 int yOffset; //If you set mask offset information with imaqSetMaskOffset(), yOffset is the offset of the mask origin in the y direction.
4064 int border; //The number of border pixels around the image.
4065 int pixelsPerLine; //The number of pixels stored for each line of the image.
4066 void* reserved0; //This element is reserved.
4067 void* reserved1; //This element is reserved.
4068 void* imageStart; //A pointer to pixel (0,0).
4069} ImageInfo;
4070
4071typedef struct LCDOptions_struct {
4072 int litSegments; //Set this parameter to TRUE if the segments are brighter than the background.
4073 float threshold; //Determines whether a segment is ON or OFF.
4074 int sign; //Indicates whether the function must read the sign of the indicator.
4075 int decimalPoint; //Determines whether to look for a decimal separator after each digit.
4076} LCDOptions;
4077
4078typedef struct LCDReport_struct {
4079 const char* text; //A string of the characters of the LCD.
4080 LCDSegments* segmentInfo; //An array of LCDSegment structures describing which segments of each digit are on.
4081 int numCharacters; //The number of characters that the function reads.
4082 int reserved; //This element is reserved.
4083} LCDReport;
4084
4085typedef struct LCDSegments_struct {
4086 unsigned a:1; //True if the a segment is on.
4087 unsigned b:1; //True if the b segment is on.
4088 unsigned c:1; //True if the c segment is on.
4089 unsigned d:1; //True if the d segment is on.
4090 unsigned e:1; //True if the e segment is on.
4091 unsigned f:1; //True if the f segment is on.
4092 unsigned g:1; //True if the g segment is on.
4093 unsigned reserved:25; //This element is reserved.
4094} LCDSegments;
4095
4096typedef struct LearnCalibrationOptions_struct {
4097 CalibrationMode mode; //Specifies the type of algorithm you want to use to reduce distortion in your image.
4098 ScalingMethod method; //Defines the scaling method correction functions use to correct the image.
4099 CalibrationROI roi; //Specifies the ROI correction functions use when correcting an image.
4100 int learnMap; //Set this element to TRUE if you want the function to calculate and store an error map during the learning process.
4101 int learnTable; //Set this element to TRUE if you want the function to calculate and store the correction table.
4102} LearnCalibrationOptions;
4103
4104typedef struct LearnColorPatternOptions_struct {
4105 LearningMode learnMode; //Specifies the invariance mode the function uses when learning the pattern.
4106 ImageFeatureMode featureMode; //Specifies the features the function uses when learning the color pattern.
4107 int threshold; //Specifies the saturation threshold the function uses to distinguish between two colors that have the same hue values.
4108 ColorIgnoreMode ignoreMode; //Specifies whether the function excludes certain colors from the color features of the template image.
4109 ColorInformation* colorsToIgnore; //An array of ColorInformation structures providing a set of colors to exclude from the color features of the template image.
4110 int numColorsToIgnore; //The number of ColorInformation structures in the colorsToIgnore array.
4111} LearnColorPatternOptions;
4112
4113typedef struct Line_struct {
4114 Point start; //The coordinate location of the start of the line.
4115 Point end; //The coordinate location of the end of the line.
4116} Line;
4117
4118typedef struct LinearAverages_struct {
4119 float* columnAverages; //An array containing the mean pixel value of each column.
4120 int columnCount; //The number of elements in the columnAverages array.
4121 float* rowAverages; //An array containing the mean pixel value of each row.
4122 int rowCount; //The number of elements in the rowAverages array.
4123 float* risingDiagAverages; //An array containing the mean pixel value of each diagonal running from the lower left to the upper right of the inspected area of the image.
4124 int risingDiagCount; //The number of elements in the risingDiagAverages array.
4125 float* fallingDiagAverages; //An array containing the mean pixel value of each diagonal running from the upper left to the lower right of the inspected area of the image.
4126 int fallingDiagCount; //The number of elements in the fallingDiagAverages array.
4127} LinearAverages;
4128
4129typedef struct LineProfile_struct {
4130 float* profileData; //An array containing the value of each pixel in the line.
4131 Rect boundingBox; //The bounding rectangle of the line.
4132 float min; //The smallest pixel value in the line profile.
4133 float max; //The largest pixel value in the line profile.
4134 float mean; //The mean value of the pixels in the line profile.
4135 float stdDev; //The standard deviation of the line profile.
4136 int dataCount; //The size of the profileData array.
4137} LineProfile;
4138
4139typedef struct MatchColorPatternOptions_struct {
4140 MatchingMode matchMode; //Specifies the method to use when looking for the color pattern in the image.
4141 ImageFeatureMode featureMode; //Specifies the features to use when looking for the color pattern in the image.
4142 int minContrast; //Specifies the minimum contrast expected in the image.
4143 int subpixelAccuracy; //Set this parameter to TRUE to return areas in the image that match the pattern area with subpixel accuracy.
4144 RotationAngleRange* angleRanges; //An array of angle ranges, in degrees, where each range specifies how much you expect the pattern to be rotated in the image.
4145 int numRanges; //Number of angle ranges in the angleRanges array.
4146 double colorWeight; //Determines the percent contribution of the color score to the final color pattern matching score.
4147 ColorSensitivity sensitivity; //Specifies the sensitivity of the color information in the image.
4148 SearchStrategy strategy; //Specifies how the color features of the image are used during the search phase.
4149 int numMatchesRequested; //Number of valid matches expected.
4150 float minMatchScore; //The minimum score a match can have for the function to consider the match valid.
4151} MatchColorPatternOptions;
4152
4153typedef struct HistogramReport_struct {
4154 int* histogram; //An array describing the number of pixels that fell into each class.
4155 int histogramCount; //The number of elements in the histogram array.
4156 float min; //The smallest pixel value that the function classified.
4157 float max; //The largest pixel value that the function classified.
4158 float start; //The smallest pixel value that fell into the first class.
4159 float width; //The size of each class.
4160 float mean; //The mean value of the pixels that the function classified.
4161 float stdDev; //The standard deviation of the pixels that the function classified.
4162 int numPixels; //The number of pixels that the function classified.
4163} HistogramReport;
4164
4165typedef struct ArcInfo_struct {
4166 Rect boundingBox; //The coordinate location of the bounding box of the arc.
4167 double startAngle; //The counterclockwise angle from the x-axis in degrees to the start of the arc.
4168 double endAngle; //The counterclockwise angle from the x-axis in degrees to the end of the arc.
4169} ArcInfo;
4170
4171typedef struct AxisReport_struct {
4172 PointFloat origin; //The origin of the coordinate system, which is the intersection of the two axes of the coordinate system.
4173 PointFloat mainAxisEnd; //The end of the main axis, which is the result of the computation of the intersection of the main axis with the rectangular search area.
4174 PointFloat secondaryAxisEnd; //The end of the secondary axis, which is the result of the computation of the intersection of the secondary axis with the rectangular search area.
4175} AxisReport;
4176
4177typedef struct BarcodeInfo_struct {
4178 const char* outputString; //A string containing the decoded barcode data.
4179 int size; //The size of the output string.
4180 char outputChar1; //The contents of this character depend on the barcode type.
4181 char outputChar2; //The contents of this character depend on the barcode type.
4182 double confidenceLevel; //A quality measure of the decoded barcode ranging from 0 to 100, with 100 being the best.
4183 BarcodeType type; //The type of barcode.
4184} BarcodeInfo;
4185
4186typedef struct BCGOptions_struct {
4187 float brightness; //Adjusts the brightness of the image.
4188 float contrast; //Adjusts the contrast of the image.
4189 float gamma; //Performs gamma correction.
4190} BCGOptions;
4191
4192typedef struct BestCircle_struct {
4193 PointFloat center; //The coordinate location of the center of the circle.
4194 double radius; //The radius of the circle.
4195 double area; //The area of the circle.
4196 double perimeter; //The length of the perimeter of the circle.
4197 double error; //Represents the least square error of the fitted circle to the entire set of points.
4198} BestCircle;
4199
4200typedef struct BestEllipse_struct {
4201 PointFloat center; //The coordinate location of the center of the ellipse.
4202 PointFloat majorAxisStart; //The coordinate location of the start of the major axis of the ellipse.
4203 PointFloat majorAxisEnd; //The coordinate location of the end of the major axis of the ellipse.
4204 PointFloat minorAxisStart; //The coordinate location of the start of the minor axis of the ellipse.
4205 PointFloat minorAxisEnd; //The coordinate location of the end of the minor axis of the ellipse.
4206 double area; //The area of the ellipse.
4207 double perimeter; //The length of the perimeter of the ellipse.
4208} BestEllipse;
4209
4210typedef struct BestLine_struct {
4211 PointFloat start; //The coordinate location of the start of the line.
4212 PointFloat end; //The coordinate location of the end of the line.
4213 LineEquation equation; //Defines the three coefficients of the equation of the best fit line.
4214 int valid; //This element is TRUE if the function achieved the minimum score within the number of allowed refinement iterations and FALSE if the function did not achieve the minimum score.
4215 double error; //Represents the least square error of the fitted line to the entire set of points.
4216 int* pointsUsed; //An array of the indexes for the points array indicating which points the function used to fit the line.
4217 int numPointsUsed; //The number of points the function used to fit the line.
4218} BestLine;
4219
4220typedef struct BrowserOptions_struct {
4221 int width; //The width to make the browser.
4222 int height; //The height to make the browser image.
4223 int imagesPerLine; //The number of images to place on a single line.
4224 RGBValue backgroundColor; //The background color of the browser.
4225 int frameSize; //Specifies the number of pixels with which to border each thumbnail.
4226 BrowserFrameStyle style; //The style for the frame around each thumbnail.
4227 float ratio; //Specifies the width to height ratio of each thumbnail.
4228 RGBValue focusColor; //The color to use to display focused cells.
4229} BrowserOptions;
4230
4231typedef struct CoordinateSystem_struct {
4232 PointFloat origin; //The origin of the coordinate system.
4233 float angle; //The angle, in degrees, of the x-axis of the coordinate system relative to the image x-axis.
4234 AxisOrientation axisOrientation; //The direction of the y-axis of the coordinate reference system.
4235} CoordinateSystem;
4236
4237typedef struct CalibrationInfo_struct {
4238 float* errorMap; //The error map for the calibration.
4239 int mapColumns; //The number of columns in the error map.
4240 int mapRows; //The number of rows in the error map.
4241 ROI* userRoi; //Specifies the ROI the user provided when learning the calibration.
4242 ROI* calibrationRoi; //Specifies the ROI that corresponds to the region of the image where the calibration information is accurate.
4243 LearnCalibrationOptions options; //Specifies the calibration options the user provided when learning the calibration.
4244 GridDescriptor grid; //Specifies the scaling constants for the image.
4245 CoordinateSystem system; //Specifies the coordinate system for the real world coordinates.
4246 RangeFloat range; //The range of the grayscale the function used to represent the circles in the grid image.
4247 float quality; //The quality score of the learning process, which is a value between 0-1000.
4248} CalibrationInfo;
4249
4250typedef struct CalibrationPoints_struct {
4251 PointFloat* pixelCoordinates; //The array of pixel coordinates.
4252 PointFloat* realWorldCoordinates; //The array of corresponding real-world coordinates.
4253 int numCoordinates; //The number of coordinates in both of the arrays.
4254} CalibrationPoints;
4255
4256typedef struct CaliperOptions_struct {
4257 TwoEdgePolarityType polarity; //Specifies the edge polarity of the edge pairs.
4258 float separation; //The distance between edge pairs.
4259 float separationDeviation; //Sets the range around the separation value.
4260} CaliperOptions;
4261
4262typedef struct CaliperReport_struct {
4263 float edge1Contrast; //The contrast of the first edge.
4264 PointFloat edge1Coord; //The coordinates of the first edge.
4265 float edge2Contrast; //The contrast of the second edge.
4266 PointFloat edge2Coord; //The coordinates of the second edge.
4267 float separation; //The distance between the two edges.
4268 float reserved; //This element is reserved.
4269} CaliperReport;
4270
4271typedef struct DrawTextOptions_struct {
4272 char fontName[32]; //The font name to use.
4273 int fontSize; //The size of the font.
4274 int bold; //Set this parameter to TRUE to bold text.
4275 int italic; //Set this parameter to TRUE to italicize text.
4276 int underline; //Set this parameter to TRUE to underline text.
4277 int strikeout; //Set this parameter to TRUE to strikeout text.
4278 TextAlignment textAlignment; //Sets the alignment of text.
4279 FontColor fontColor; //Sets the font color.
4280} DrawTextOptions;
4281
4282typedef struct CircleReport_struct {
4283 Point center; //The coordinate point of the center of the circle.
4284 int radius; //The radius of the circle, in pixels.
4285 int area; //The area of the circle, in pixels.
4286} CircleReport;
4287
4288typedef struct ClosedContour_struct {
4289 Point* points; //The points that make up the closed contour.
4290 int numPoints; //The number of points in the array.
4291} ClosedContour;
4292
4293typedef struct ColorHistogramReport_struct {
4294 HistogramReport plane1; //The histogram report of the first color plane.
4295 HistogramReport plane2; //The histogram report of the second plane.
4296 HistogramReport plane3; //The histogram report of the third plane.
4297} ColorHistogramReport;
4298
4299typedef struct ColorInformation_struct {
4300 int infoCount; //The size of the info array.
4301 int saturation; //The saturation level the function uses to learn the color information.
4302 double* info; //An array of color information that represents the color spectrum analysis of a region of an image in a compact form.
4303} ColorInformation;
4304
4305typedef struct Complex_struct {
4306 float r; //The real part of the value.
4307 float i; //The imaginary part of the value.
4308} Complex;
4309
4310typedef struct ConcentricRakeReport_struct {
4311 ArcInfo* rakeArcs; //An array containing the location of each concentric arc line used for edge detection.
4312 int numArcs; //The number of arc lines in the rakeArcs array.
4313 PointFloat* firstEdges; //The coordinate location of all edges detected as first edges.
4314 int numFirstEdges; //The number of points in the first edges array.
4315 PointFloat* lastEdges; //The coordinate location of all edges detected as last edges.
4316 int numLastEdges; //The number of points in the last edges array.
4317 EdgeLocationReport* allEdges; //An array of reports describing the location of the edges located by each concentric rake arc line.
4318 int* linesWithEdges; //An array of indices into the rakeArcs array indicating the concentric rake arc lines on which the function detected at least one edge.
4319 int numLinesWithEdges; //The number of concentric rake arc lines along which the function detected edges.
4320} ConcentricRakeReport;
4321
4322typedef struct ConstructROIOptions_struct {
4323 int windowNumber; //The window number of the image window.
4324 const char* windowTitle; //Specifies the message string that the function displays in the title bar of the window.
4325 PaletteType type; //The palette type to use.
4326 RGBValue* palette; //If type is IMAQ_PALETTE_USER, this array is the palette of colors to use with the window.
4327 int numColors; //If type is IMAQ_PALETTE_USER, this element is the number of colors in the palette array.
4328} ConstructROIOptions;
4329
4330typedef struct ContourInfo_struct {
4331 ContourType type; //The contour type.
4332 unsigned numPoints; //The number of points that make up the contour.
4333 Point* points; //The points describing the contour.
4334 RGBValue contourColor; //The contour color.
4335} ContourInfo;
4336
4337typedef union ContourUnion_union {
4338 Point* point; //Use this member when the contour is of type IMAQ_POINT.
4339 Line* line; //Use this member when the contour is of type IMAQ_LINE.
4340 Rect* rect; //Use this member when the contour is of type IMAQ_RECT.
4341 Rect* ovalBoundingBox; //Use this member when the contour is of type IMAQ_OVAL.
4342 ClosedContour* closedContour; //Use this member when the contour is of type IMAQ_CLOSED_CONTOUR.
4343 OpenContour* openContour; //Use this member when the contour is of type IMAQ_OPEN_CONTOUR.
4344 Annulus* annulus; //Use this member when the contour is of type IMAQ_ANNULUS.
4345 RotatedRect* rotatedRect; //Use this member when the contour is of type IMAQ_ROTATED_RECT.
4346} ContourUnion;
4347
4348typedef struct ContourInfo2_struct {
4349 ContourType type; //The contour type.
4350 RGBValue color; //The contour color.
4351 ContourUnion structure; //The information necessary to describe the contour in coordinate space.
4352} ContourInfo2;
4353
4354typedef struct ContourPoint_struct {
4355 double x; //The x-coordinate value in the image.
4356 double y; //The y-coordinate value in the image.
4357 double curvature; //The change in slope at this edge point of the segment.
4358 double xDisplacement; //The x displacement of the current edge pixel from a cubic spline fit of the current edge segment.
4359 double yDisplacement; //The y displacement of the current edge pixel from a cubic spline fit of the current edge segment.
4360} ContourPoint;
4361
4362typedef struct CoordinateTransform_struct {
4363 Point initialOrigin; //The origin of the initial coordinate system.
4364 float initialAngle; //The angle, in degrees, of the x-axis of the initial coordinate system relative to the image x-axis.
4365 Point finalOrigin; //The origin of the final coordinate system.
4366 float finalAngle; //The angle, in degrees, of the x-axis of the final coordinate system relative to the image x-axis.
4367} CoordinateTransform;
4368
4369typedef struct CoordinateTransform2_struct {
4370 CoordinateSystem referenceSystem; //Defines the coordinate system for input coordinates.
4371 CoordinateSystem measurementSystem; //Defines the coordinate system in which the function should perform measurements.
4372} CoordinateTransform2;
4373
4374typedef struct CannyOptions_struct {
4375 float sigma; //The sigma of the Gaussian smoothing filter that the function applies to the image before edge detection.
4376 float upperThreshold; //The upper fraction of pixel values in the image from which the function chooses a seed or starting point of an edge segment.
4377 float lowerThreshold; //The function multiplies this value by upperThreshold to determine the lower threshold for all the pixels in an edge segment.
4378 int windowSize; //The window size of the Gaussian filter that the function applies to the image.
4379} CannyOptions;
4380
4381typedef struct Range_struct {
4382 int minValue; //The minimum value of the range.
4383 int maxValue; //The maximum value of the range.
4384} Range;
4385
4386typedef struct UserPointSymbol_struct {
4387 int cols; //Number of columns in the symbol.
4388 int rows; //Number of rows in the symbol.
4389 int* pixels; //The pixels of the symbol.
4390} UserPointSymbol;
4391
4392typedef struct View3DOptions_struct {
4393 int sizeReduction; //A divisor the function uses when determining the final height and width of the 3D image.
4394 int maxHeight; //Defines the maximum height of a pixel from the image source drawn in 3D.
4395 Direction3D direction; //Defines the 3D orientation.
4396 float alpha; //Determines the angle between the horizontal and the baseline.
4397 float beta; //Determines the angle between the horizontal and the second baseline.
4398 int border; //Defines the border size.
4399 int background; //Defines the background color.
4400 Plane3D plane; //Indicates the view a function uses to show complex images.
4401} View3DOptions;
4402
4403typedef struct MatchPatternOptions_struct {
4404 MatchingMode mode; //Specifies the method to use when looking for the pattern in the image.
4405 int minContrast; //Specifies the minimum contrast expected in the image.
4406 int subpixelAccuracy; //Set this element to TRUE to return areas in the image that match the pattern area with subpixel accuracy.
4407 RotationAngleRange* angleRanges; //An array of angle ranges, in degrees, where each range specifies how much you expect the pattern to be rotated in the image.
4408 int numRanges; //Number of angle ranges in the angleRanges array.
4409 int numMatchesRequested; //Number of valid matches expected.
4410 int matchFactor; //Controls the number of potential matches that the function examines.
4411 float minMatchScore; //The minimum score a match can have for the function to consider the match valid.
4412} MatchPatternOptions;
4413
4414typedef struct TIFFFileOptions_struct {
4415 int rowsPerStrip; //Indicates the number of rows that the function writes per strip.
4416 PhotometricMode photoInterp; //Designates which photometric interpretation to use.
4417 TIFFCompressionType compressionType; //Indicates the type of compression to use on the TIFF file.
4418} TIFFFileOptions;
4419
4420typedef union Color_union {
4421 RGBValue rgb; //The information needed to describe a color in the RGB (Red, Green, and Blue) color space.
4422 HSLValue hsl; //The information needed to describe a color in the HSL (Hue, Saturation, and Luminance) color space.
4423 HSVValue hsv; //The information needed to describe a color in the HSI (Hue, Saturation, and Value) color space.
4424 HSIValue hsi; //The information needed to describe a color in the HSI (Hue, Saturation, and Intensity) color space.
4425 int rawValue; //The integer value for the data in the color union.
4426} Color;
4427
4428typedef union PixelValue_union {
4429 float grayscale; //A grayscale pixel value.
4430 RGBValue rgb; //A RGB pixel value.
4431 HSLValue hsl; //A HSL pixel value.
4432 Complex complex; //A complex pixel value.
4433 RGBU64Value rgbu64; //An unsigned 64-bit RGB pixel value.
4434} PixelValue;
4435
4436typedef struct OpenContour_struct {
4437 Point* points; //The points that make up the open contour.
4438 int numPoints; //The number of points in the array.
4439} OpenContour;
4440
4441typedef struct OverlayTextOptions_struct {
4442 const char* fontName; //The name of the font to use.
4443 int fontSize; //The size of the font.
4444 int bold; //Set this element to TRUE to bold the text.
4445 int italic; //Set this element to TRUE to italicize the text.
4446 int underline; //Set this element to TRUE to underline the text.
4447 int strikeout; //Set this element to TRUE to strikeout the text.
4448 TextAlignment horizontalTextAlignment; //Sets the alignment of the text.
4449 VerticalTextAlignment verticalTextAlignment; //Sets the vertical alignment for the text.
4450 RGBValue backgroundColor; //Sets the color for the text background pixels.
4451 double angle; //The counterclockwise angle, in degrees, of the text relative to the x-axis.
4452} OverlayTextOptions;
4453
4454typedef struct ParticleFilterCriteria_struct {
4455 MeasurementValue parameter; //The morphological measurement that the function uses for filtering.
4456 float lower; //The lower bound of the criteria range.
4457 float upper; //The upper bound of the criteria range.
4458 int exclude; //Set this element to TRUE to indicate that a match occurs when the value is outside the criteria range.
4459} ParticleFilterCriteria;
4460
4461typedef struct ParticleReport_struct {
4462 int area; //The number of pixels in the particle.
4463 float calibratedArea; //The size of the particle, calibrated to the calibration information of the image.
4464 float perimeter; //The length of the perimeter, calibrated to the calibration information of the image.
4465 int numHoles; //The number of holes in the particle.
4466 int areaOfHoles; //The total surface area, in pixels, of all the holes in a particle.
4467 float perimeterOfHoles; //The length of the perimeter of all the holes in the particle calibrated to the calibration information of the image.
4468 Rect boundingBox; //The smallest rectangle that encloses the particle.
4469 float sigmaX; //The sum of the particle pixels on the x-axis.
4470 float sigmaY; //The sum of the particle pixels on the y-axis.
4471 float sigmaXX; //The sum of the particle pixels on the x-axis, squared.
4472 float sigmaYY; //The sum of the particle pixels on the y-axis, squared.
4473 float sigmaXY; //The sum of the particle pixels on the x-axis and y-axis.
4474 int longestLength; //The length of the longest horizontal line segment.
4475 Point longestPoint; //The location of the leftmost pixel of the longest segment in the particle.
4476 int projectionX; //The length of the particle when projected onto the x-axis.
4477 int projectionY; //The length of the particle when projected onto the y-axis.
4478 int connect8; //This element is TRUE if the function used connectivity-8 to determine if particles are touching.
4479} ParticleReport;
4480
4481typedef struct PatternMatch_struct {
4482 PointFloat position; //The location of the center of the match.
4483 float rotation; //The rotation of the match relative to the template image, in degrees.
4484 float scale; //The size of the match relative to the size of the template image, expressed as a percentage.
4485 float score; //The accuracy of the match.
4486 PointFloat corner[4]; //An array of four points describing the rectangle surrounding the template image.
4487} PatternMatch;
4488
4489typedef struct QuantifyData_struct {
4490 float mean; //The mean value of the pixel values.
4491 float stdDev; //The standard deviation of the pixel values.
4492 float min; //The smallest pixel value.
4493 float max; //The largest pixel value.
4494 float calibratedArea; //The area, calibrated to the calibration information of the image.
4495 int pixelArea; //The area, in number of pixels.
4496 float relativeSize; //The proportion, expressed as a percentage, of the associated region relative to the whole image.
4497} QuantifyData;
4498
4499typedef struct QuantifyReport_struct {
4500 QuantifyData global; //Statistical data of the whole image.
4501 QuantifyData* regions; //An array of QuantifyData structures containing statistical data of each region of the image.
4502 int regionCount; //The number of regions.
4503} QuantifyReport;
4504
4505typedef struct RakeOptions_struct {
4506 int threshold; //Specifies the threshold value for the contrast of the edge.
4507 int width; //The number of pixels that the function averages to find the contrast at either side of the edge.
4508 int steepness; //The span, in pixels, of the slope of the edge projected along the path specified by the input points.
4509 int subsamplingRatio; //Specifies the number of pixels that separate two consecutive search lines.
4510 InterpolationMethod subpixelType; //The method for interpolating.
4511 int subpixelDivisions; //The number of samples the function obtains from a pixel.
4512} RakeOptions;
4513
4514typedef struct RakeReport_struct {
4515 LineFloat* rakeLines; //The coordinate location of each of the rake lines used by the function.
4516 int numRakeLines; //The number of lines in the rakeLines array.
4517 PointFloat* firstEdges; //The coordinate location of all edges detected as first edges.
4518 unsigned int numFirstEdges; //The number of points in the firstEdges array.
4519 PointFloat* lastEdges; //The coordinate location of all edges detected as last edges.
4520 unsigned int numLastEdges; //The number of points in the lastEdges array.
4521 EdgeLocationReport* allEdges; //An array of reports describing the location of the edges located by each rake line.
4522 int* linesWithEdges; //An array of indices into the rakeLines array indicating the rake lines on which the function detected at least one edge.
4523 int numLinesWithEdges; //The number of rake lines along which the function detected edges.
4524} RakeReport;
4525
4526typedef struct TransformReport_struct {
4527 PointFloat* points; //An array of transformed coordinates.
4528 int* validPoints; //An array of values that describe the validity of each of the coordinates according to the region of interest you calibrated using either imaqLearnCalibrationGrid() or imaqLearnCalibrationPoints().
4529 int numPoints; //The length of both the points array and the validPoints array.
4530} TransformReport;
4531
4532typedef struct ShapeReport_struct {
4533 Rect coordinates; //The bounding rectangle of the object.
4534 Point centroid; //The coordinate location of the centroid of the object.
4535 int size; //The size, in pixels, of the object.
4536 double score; //A value ranging between 1 and 1,000 that specifies how similar the object in the image is to the template.
4537} ShapeReport;
4538
4539typedef struct MeterArc_struct {
4540 PointFloat needleBase; //The coordinate location of the base of the meter needle.
4541 PointFloat* arcCoordPoints; //An array of points describing the coordinate location of the meter arc.
4542 int numOfArcCoordPoints; //The number of points in the arcCoordPoints array.
4543 int needleColor; //This element is TRUE when the meter has a light-colored needle on a dark background.
4544} MeterArc;
4545
4546typedef struct ThresholdData_struct {
4547 float rangeMin; //The lower boundary of the range to keep.
4548 float rangeMax; //The upper boundary of the range to keep.
4549 float newValue; //If useNewValue is TRUE, newValue is the replacement value for pixels within the range.
4550 int useNewValue; //If TRUE, the function sets pixel values within [rangeMin, rangeMax] to the value specified in newValue.
4551} ThresholdData;
4552
4553typedef struct StructuringElement_struct {
4554 int matrixCols; //Number of columns in the matrix.
4555 int matrixRows; //Number of rows in the matrix.
4556 int hexa; //Set this element to TRUE if you specify a hexagonal structuring element in kernel.
4557 int* kernel; //The values of the structuring element.
4558} StructuringElement;
4559
4560typedef struct SpokeReport_struct {
4561 LineFloat* spokeLines; //The coordinate location of each of the spoke lines used by the function.
4562 int numSpokeLines; //The number of lines in the spokeLines array.
4563 PointFloat* firstEdges; //The coordinate location of all edges detected as first edges.
4564 int numFirstEdges; //The number of points in the firstEdges array.
4565 PointFloat* lastEdges; //The coordinate location of all edges detected as last edges.
4566 int numLastEdges; //The number of points in the lastEdges array.
4567 EdgeLocationReport* allEdges; //An array of reports describing the location of the edges located by each spoke line.
4568 int* linesWithEdges; //An array of indices into the spokeLines array indicating the rake lines on which the function detected at least one edge.
4569 int numLinesWithEdges; //The number of spoke lines along which the function detects edges.
4570} SpokeReport;
4571
4572typedef struct SimpleEdgeOptions_struct {
4573 LevelType type; //Determines how the function evaluates the threshold and hysteresis values.
4574 int threshold; //The pixel value at which an edge occurs.
4575 int hysteresis; //A value that helps determine edges in noisy images.
4576 EdgeProcess process; //Determines which edges the function looks for.
4577 int subpixel; //Set this element to TRUE to find edges with subpixel accuracy by interpolating between points to find the crossing of the given threshold.
4578} SimpleEdgeOptions;
4579
4580typedef struct SelectParticleCriteria_struct {
4581 MeasurementValue parameter; //The morphological measurement that the function uses for filtering.
4582 float lower; //The lower boundary of the criteria range.
4583 float upper; //The upper boundary of the criteria range.
4584} SelectParticleCriteria;
4585
4586typedef struct SegmentInfo_struct {
4587 int numberOfPoints; //The number of points in the segment.
4588 int isOpen; //If TRUE, the contour is open.
4589 double weight; //The significance of the edge in terms of the gray values that constitute the edge.
4590 ContourPoint* points; //The points of the segment.
4591} SegmentInfo;
4592
4593typedef struct RotationAngleRange_struct {
4594 float lower; //The lowest amount of rotation, in degrees, a valid pattern can have.
4595 float upper; //The highest amount of rotation, in degrees, a valid pattern can have.
4596} RotationAngleRange;
4597
4598typedef struct RotatedRect_struct {
4599 int top; //Location of the top edge of the rectangle before rotation.
4600 int left; //Location of the left edge of the rectangle before rotation.
4601 int height; //Height of the rectangle.
4602 int width; //Width of the rectangle.
4603 double angle; //The rotation, in degrees, of the rectangle.
4604} RotatedRect;
4605
4606typedef struct ROIProfile_struct {
4607 LineProfile report; //Quantifying information about the points along the edge of each contour in the ROI.
4608 Point* pixels; //An array of the points along the edge of each contour in the ROI.
4609} ROIProfile;
4610
4611typedef struct ToolWindowOptions_struct {
4612 int showSelectionTool; //If TRUE, the selection tool becomes visible.
4613 int showZoomTool; //If TRUE, the zoom tool becomes visible.
4614 int showPointTool; //If TRUE, the point tool becomes visible.
4615 int showLineTool; //If TRUE, the line tool becomes visible.
4616 int showRectangleTool; //If TRUE, the rectangle tool becomes visible.
4617 int showOvalTool; //If TRUE, the oval tool becomes visible.
4618 int showPolygonTool; //If TRUE, the polygon tool becomes visible.
4619 int showClosedFreehandTool; //If TRUE, the closed freehand tool becomes visible.
4620 int showPolyLineTool; //If TRUE, the polyline tool becomes visible.
4621 int showFreehandTool; //If TRUE, the freehand tool becomes visible.
4622 int showAnnulusTool; //If TRUE, the annulus becomes visible.
4623 int showRotatedRectangleTool; //If TRUE, the rotated rectangle tool becomes visible.
4624 int showPanTool; //If TRUE, the pan tool becomes visible.
4625 int showZoomOutTool; //If TRUE, the zoom out tool becomes visible.
4626 int reserved2; //This element is reserved and should be set to FALSE.
4627 int reserved3; //This element is reserved and should be set to FALSE.
4628 int reserved4; //This element is reserved and should be set to FALSE.
4629} ToolWindowOptions;
4630
4631typedef struct SpokeOptions_struct {
4632 int threshold; //Specifies the threshold value for the contrast of the edge.
4633 int width; //The number of pixels that the function averages to find the contrast at either side of the edge.
4634 int steepness; //The span, in pixels, of the slope of the edge projected along the path specified by the input points.
4635 double subsamplingRatio; //The angle, in degrees, between each radial search line in the spoke.
4636 InterpolationMethod subpixelType; //The method for interpolating.
4637 int subpixelDivisions; //The number of samples the function obtains from a pixel.
4638} SpokeOptions;
4639
4640#if !defined __GNUC__ && !defined _M_X64
4641#pragma pack(pop)
4642#endif
4643
4644//============================================================================
4645// Callback Function Type
4646//============================================================================
4647#ifndef __GNUC__
4648typedef void (IMAQ_CALLBACK* EventCallback)(WindowEventType event, int windowNumber, Tool tool, Rect rect);
4649#endif
4650
4651//============================================================================
4652// Globals
4653//============================================================================
4654#ifndef __GNUC__
4655#pragma const_seg("IMAQVisionColorConstants")
4656#endif
4657static const RGBValue IMAQ_RGB_TRANSPARENT = { 0, 0, 0, 1 };
4658static const RGBValue IMAQ_RGB_RED = { 0, 0, 255, 0 };
4659static const RGBValue IMAQ_RGB_BLUE = { 255, 0, 0, 0 };
4660static const RGBValue IMAQ_RGB_GREEN = { 0, 255, 0, 0 };
4661static const RGBValue IMAQ_RGB_YELLOW = { 0, 255, 255, 0 };
4662static const RGBValue IMAQ_RGB_WHITE = { 255, 255, 255, 0 };
4663static const RGBValue IMAQ_RGB_BLACK = { 0, 0, 0, 0 };
4664#ifndef __GNUC__
4665#pragma const_seg()
4666#endif
4667
4668//============================================================================
4669// Backwards Compatibility
4670//============================================================================
4671typedef ColorSensitivity ColorComplexity;
4672#define IMAQ_COMPLEXITY_LOW IMAQ_SENSITIVITY_LOW
4673#define IMAQ_COMPLEXITY_MED IMAQ_SENSITIVITY_MED
4674#define IMAQ_COMPLEXITY_HIGH IMAQ_SENSITIVITY_HIGH
4675#define ERR_INVALID_COLORCOMPLEXITY ERR_INVALID_COLORSENSITIVITY
4676
4677//============================================================================
4678// Logical functions
4679//============================================================================
4680IMAQ_FUNC int IMAQ_STDCALL imaqAnd(Image* dest, const Image* sourceA, const Image* sourceB);
4681IMAQ_FUNC int IMAQ_STDCALL imaqAndConstant(Image* dest, const Image* source, PixelValue value);
4682IMAQ_FUNC int IMAQ_STDCALL imaqCompare(Image* dest, const Image* source, const Image* compareImage, ComparisonFunction compare);
4683IMAQ_FUNC int IMAQ_STDCALL imaqCompareConstant(Image* dest, const Image* source, PixelValue value, ComparisonFunction compare);
4684IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifference(Image* dest, const Image* sourceA, const Image* sourceB);
4685IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifferenceConstant(Image* dest, const Image* source, PixelValue value);
4686IMAQ_FUNC int IMAQ_STDCALL imaqNand(Image* dest, const Image* sourceA, const Image* sourceB);
4687IMAQ_FUNC int IMAQ_STDCALL imaqNandConstant(Image* dest, const Image* source, PixelValue value);
4688IMAQ_FUNC int IMAQ_STDCALL imaqNor(Image* dest, const Image* sourceA, const Image* sourceB);
4689IMAQ_FUNC int IMAQ_STDCALL imaqNorConstant(Image* dest, const Image* source, PixelValue value);
4690IMAQ_FUNC int IMAQ_STDCALL imaqOr(Image* dest, const Image* sourceA, const Image* sourceB);
4691IMAQ_FUNC int IMAQ_STDCALL imaqOrConstant(Image* dest, const Image* source, PixelValue value);
4692IMAQ_FUNC int IMAQ_STDCALL imaqXnor(Image* dest, const Image* sourceA, const Image* sourceB);
4693IMAQ_FUNC int IMAQ_STDCALL imaqXnorConstant(Image* dest, const Image* source, PixelValue value);
4694IMAQ_FUNC int IMAQ_STDCALL imaqXor(Image* dest, const Image* sourceA, const Image* sourceB);
4695IMAQ_FUNC int IMAQ_STDCALL imaqXorConstant(Image* dest, const Image* source, PixelValue value);
4696
4697//============================================================================
4698// Particle Analysis functions
4699//============================================================================
4700IMAQ_FUNC int IMAQ_STDCALL imaqCountParticles(Image* image, int connectivity8, int* numParticles);
4701IMAQ_FUNC int IMAQ_STDCALL imaqMeasureParticle(Image* image, int particleNumber, int calibrated, MeasurementType measurement, double* value);
4702IMAQ_FUNC MeasureParticlesReport* IMAQ_STDCALL imaqMeasureParticles(Image* image, MeasureParticlesCalibrationMode calibrationMode, const MeasurementType* measurements, size_t numMeasurements);
4703IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter4(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, const ParticleFilterOptions2* options, const ROI* roi, int* numParticles);
4704
4705//============================================================================
4706// Morphology functions
4707//============================================================================
4708IMAQ_FUNC int IMAQ_STDCALL imaqConvexHull(Image* dest, Image* source, int connectivity8);
4709IMAQ_FUNC int IMAQ_STDCALL imaqDanielssonDistance(Image* dest, Image* source);
4710IMAQ_FUNC int IMAQ_STDCALL imaqFillHoles(Image* dest, const Image* source, int connectivity8);
4711IMAQ_FUNC CircleReport* IMAQ_STDCALL imaqFindCircles(Image* dest, Image* source, float minRadius, float maxRadius, int* numCircles);
4712IMAQ_FUNC int IMAQ_STDCALL imaqLabel2(Image* dest, Image* source, int connectivity8, int* particleCount);
4713IMAQ_FUNC int IMAQ_STDCALL imaqMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
4714IMAQ_FUNC int IMAQ_STDCALL imaqRejectBorder(Image* dest, Image* source, int connectivity8);
4715IMAQ_FUNC int IMAQ_STDCALL imaqSegmentation(Image* dest, Image* source);
4716IMAQ_FUNC int IMAQ_STDCALL imaqSeparation(Image* dest, Image* source, int erosions, const StructuringElement* structuringElement);
4717IMAQ_FUNC int IMAQ_STDCALL imaqSimpleDistance(Image* dest, Image* source, const StructuringElement* structuringElement);
4718IMAQ_FUNC int IMAQ_STDCALL imaqSizeFilter(Image* dest, Image* source, int connectivity8, int erosions, SizeType keepSize, const StructuringElement* structuringElement);
4719IMAQ_FUNC int IMAQ_STDCALL imaqSkeleton(Image* dest, Image* source, SkeletonMethod method);
4720
4721
4722//============================================================================
4723// Acquisition functions
4724//============================================================================
4725IMAQ_FUNC Image* IMAQ_STDCALL imaqCopyFromRing(SESSION_ID sessionID, Image* image, int imageToCopy, int* imageNumber, Rect rect);
4726IMAQ_FUNC Image* IMAQ_STDCALL imaqEasyAcquire(const char* interfaceName);
4727IMAQ_FUNC Image* IMAQ_STDCALL imaqExtractFromRing(SESSION_ID sessionID, int imageToExtract, int* imageNumber);
4728IMAQ_FUNC Image* IMAQ_STDCALL imaqGrab(SESSION_ID sessionID, Image* image, int immediate);
4729IMAQ_FUNC int IMAQ_STDCALL imaqReleaseImage(SESSION_ID sessionID);
4730IMAQ_FUNC int IMAQ_STDCALL imaqSetupGrab(SESSION_ID sessionID, Rect rect);
4731IMAQ_FUNC int IMAQ_STDCALL imaqSetupRing(SESSION_ID sessionID, Image** images, int numImages, int skipCount, Rect rect);
4732IMAQ_FUNC int IMAQ_STDCALL imaqSetupSequence(SESSION_ID sessionID, Image** images, int numImages, int skipCount, Rect rect);
4733IMAQ_FUNC Image* IMAQ_STDCALL imaqSnap(SESSION_ID sessionID, Image* image, Rect rect);
4734IMAQ_FUNC int IMAQ_STDCALL imaqStartAcquisition(SESSION_ID sessionID);
4735IMAQ_FUNC int IMAQ_STDCALL imaqStopAcquisition(SESSION_ID sessionID);
4736
4737//============================================================================
4738// Arithmetic functions
4739//============================================================================
4740IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifference(Image* dest, const Image* sourceA, const Image* sourceB);
4741IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifferenceConstant(Image* dest, const Image* source, PixelValue value);
4742IMAQ_FUNC int IMAQ_STDCALL imaqAdd(Image* dest, const Image* sourceA, const Image* sourceB);
4743IMAQ_FUNC int IMAQ_STDCALL imaqAddConstant(Image* dest, const Image* source, PixelValue value);
4744IMAQ_FUNC int IMAQ_STDCALL imaqAverage(Image* dest, const Image* sourceA, const Image* sourceB);
4745IMAQ_FUNC int IMAQ_STDCALL imaqAverageConstant(Image* dest, const Image* source, PixelValue value);
4746IMAQ_FUNC int IMAQ_STDCALL imaqDivide2(Image* dest, const Image* sourceA, const Image* sourceB, RoundingMode roundingMode);
4747IMAQ_FUNC int IMAQ_STDCALL imaqDivideConstant2(Image* dest, const Image* source, PixelValue value, RoundingMode roundingMode);
4748IMAQ_FUNC int IMAQ_STDCALL imaqMax(Image* dest, const Image* sourceA, const Image* sourceB);
4749IMAQ_FUNC int IMAQ_STDCALL imaqMaxConstant(Image* dest, const Image* source, PixelValue value);
4750IMAQ_FUNC int IMAQ_STDCALL imaqMin(Image* dest, const Image* sourceA, const Image* sourceB);
4751IMAQ_FUNC int IMAQ_STDCALL imaqMinConstant(Image* dest, const Image* source, PixelValue value);
4752IMAQ_FUNC int IMAQ_STDCALL imaqModulo(Image* dest, const Image* sourceA, const Image* sourceB);
4753IMAQ_FUNC int IMAQ_STDCALL imaqModuloConstant(Image* dest, const Image* source, PixelValue value);
4754IMAQ_FUNC int IMAQ_STDCALL imaqMulDiv(Image* dest, const Image* sourceA, const Image* sourceB, float value);
4755IMAQ_FUNC int IMAQ_STDCALL imaqMultiply(Image* dest, const Image* sourceA, const Image* sourceB);
4756IMAQ_FUNC int IMAQ_STDCALL imaqMultiplyConstant(Image* dest, const Image* source, PixelValue value);
4757IMAQ_FUNC int IMAQ_STDCALL imaqSubtract(Image* dest, const Image* sourceA, const Image* sourceB);
4758IMAQ_FUNC int IMAQ_STDCALL imaqSubtractConstant(Image* dest, const Image* source, PixelValue value);
4759
4760//============================================================================
4761// Caliper functions
4762//============================================================================
4763IMAQ_FUNC CaliperReport* IMAQ_STDCALL imaqCaliperTool(const Image* image, const Point* points, int numPoints, const EdgeOptions* edgeOptions, const CaliperOptions* caliperOptions, int* numEdgePairs);
4764IMAQ_FUNC ConcentricRakeReport2* IMAQ_STDCALL imaqConcentricRake2(Image* image, ROI* roi, ConcentricRakeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
4765IMAQ_FUNC ExtremeReport* IMAQ_STDCALL imaqDetectExtremes(const double* pixels, int numPixels, DetectionMode mode, const DetectExtremesOptions* options, int* numExtremes);
4766IMAQ_FUNC int IMAQ_STDCALL imaqDetectRotation(const Image* referenceImage, const Image* testImage, PointFloat referenceCenter, PointFloat testCenter, int radius, float precision, double* angle);
4767IMAQ_FUNC EdgeReport2* IMAQ_STDCALL imaqEdgeTool4(Image* image, ROI* roi, EdgeProcess processType, EdgeOptions2* edgeOptions, const unsigned int reverseDirection);
4768IMAQ_FUNC FindEdgeReport* IMAQ_STDCALL imaqFindEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindEdgeOptions2* findEdgeOptions, const StraightEdgeOptions* straightEdgeOptions);
4769IMAQ_FUNC int IMAQ_STDCALL imaqFindTransformRect2(Image* image, const ROI* roi, FindTransformMode mode, CoordinateSystem* baseSystem, CoordinateSystem* newSystem, const FindTransformRectOptions2* findTransformOptions, const StraightEdgeOptions* straightEdgeOptions, AxisReport* axisReport);
4770IMAQ_FUNC int IMAQ_STDCALL imaqFindTransformRects2(Image* image, const ROI* primaryROI, const ROI* secondaryROI, FindTransformMode mode, CoordinateSystem* baseSystem, CoordinateSystem* newSystem, const FindTransformRectsOptions2* findTransformOptions, const StraightEdgeOptions* primaryStraightEdgeOptions, const StraightEdgeOptions* secondaryStraightEdgeOptions, AxisReport* axisReport);
4771IMAQ_FUNC int IMAQ_STDCALL imaqLineGaugeTool2(const Image* image, Point start, Point end, LineGaugeMethod method, const EdgeOptions* edgeOptions, const CoordinateTransform2* transform, float* distance);
4772IMAQ_FUNC RakeReport2* IMAQ_STDCALL imaqRake2(Image* image, ROI* roi, RakeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
4773IMAQ_FUNC PointFloat* IMAQ_STDCALL imaqSimpleEdge(const Image* image, const Point* points, int numPoints, const SimpleEdgeOptions* options, int* numEdges);
4774IMAQ_FUNC SpokeReport2* IMAQ_STDCALL imaqSpoke2(Image* image, ROI* roi, SpokeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
4775IMAQ_FUNC StraightEdgeReport2* IMAQ_STDCALL imaqStraightEdge(const Image* image, const ROI* roi, SearchDirection searchDirection, const EdgeOptions2* edgeOptions, const StraightEdgeOptions* straightEdgeOptions);
4776IMAQ_FUNC StraightEdgeReport2* IMAQ_STDCALL imaqStraightEdge2(const Image* image, const ROI* roi, SearchDirection searchDirection, const EdgeOptions2* edgeOptions, const StraightEdgeOptions* straightEdgeOptions, unsigned int optimizedMode);
4777
4778//============================================================================
4779// Spatial Filters functions
4780//============================================================================
4781IMAQ_FUNC int IMAQ_STDCALL imaqCannyEdgeFilter(Image* dest, const Image* source, const CannyOptions* options);
4782IMAQ_FUNC int IMAQ_STDCALL imaqConvolve2(Image* dest, Image* source, float* kernel, int matrixRows, int matrixCols, float normalize, Image* mask, RoundingMode roundingMode);
4783IMAQ_FUNC int IMAQ_STDCALL imaqCorrelate(Image* dest, Image* source, const Image* templateImage, Rect rect);
4784IMAQ_FUNC int IMAQ_STDCALL imaqEdgeFilter(Image* dest, Image* source, OutlineMethod method, const Image* mask);
4785IMAQ_FUNC int IMAQ_STDCALL imaqLowPass(Image* dest, Image* source, int width, int height, float tolerance, const Image* mask);
4786IMAQ_FUNC int IMAQ_STDCALL imaqMedianFilter(Image* dest, Image* source, int width, int height, const Image* mask);
4787IMAQ_FUNC int IMAQ_STDCALL imaqNthOrderFilter(Image* dest, Image* source, int width, int height, int n, const Image* mask);
4788
4789//============================================================================
4790// Drawing functions
4791//============================================================================
4792IMAQ_FUNC int IMAQ_STDCALL imaqDrawLineOnImage(Image* dest, const Image* source, DrawMode mode, Point start, Point end, float newPixelValue);
4793IMAQ_FUNC int IMAQ_STDCALL imaqDrawShapeOnImage(Image* dest, const Image* source, Rect rect, DrawMode mode, ShapeMode shape, float newPixelValue);
4794IMAQ_FUNC int IMAQ_STDCALL imaqDrawTextOnImage(Image* dest, const Image* source, Point coord, const char* text, const DrawTextOptions* options, int* fontNameUsed);
4795
4796//============================================================================
4797// Interlacing functions
4798//============================================================================
4799IMAQ_FUNC int IMAQ_STDCALL imaqInterlaceCombine(Image* frame, const Image* odd, const Image* even);
4800IMAQ_FUNC int IMAQ_STDCALL imaqInterlaceSeparate(const Image* frame, Image* odd, Image* even);
4801
4802//============================================================================
4803// Image Information functions
4804//============================================================================
4805IMAQ_FUNC char** IMAQ_STDCALL imaqEnumerateCustomKeys(const Image* image, unsigned int* size);
4806IMAQ_FUNC int IMAQ_STDCALL imaqGetBitDepth(const Image* image, unsigned int* bitDepth);
4807IMAQ_FUNC int IMAQ_STDCALL imaqGetBytesPerPixel(const Image* image, int* byteCount);
4808IMAQ_FUNC int IMAQ_STDCALL imaqGetImageInfo(const Image* image, ImageInfo* info);
4809IMAQ_FUNC int IMAQ_STDCALL imaqGetImageSize(const Image* image, int* width, int* height);
4810IMAQ_FUNC int IMAQ_STDCALL imaqGetImageType(const Image* image, ImageType* type);
4811IMAQ_FUNC int IMAQ_STDCALL imaqGetMaskOffset(const Image* image, Point* offset);
4812IMAQ_FUNC void* IMAQ_STDCALL imaqGetPixelAddress(const Image* image, Point pixel);
4813IMAQ_FUNC int IMAQ_STDCALL imaqGetVisionInfoTypes(const Image* image, unsigned int* present);
4814IMAQ_FUNC int IMAQ_STDCALL imaqIsImageEmpty(const Image* image, int* empty);
4815IMAQ_FUNC void* IMAQ_STDCALL imaqReadCustomData(const Image* image, const char* key, unsigned int* size);
4816IMAQ_FUNC int IMAQ_STDCALL imaqRemoveCustomData(Image* image, const char* key);
4817IMAQ_FUNC int IMAQ_STDCALL imaqRemoveVisionInfo2(const Image* image, unsigned int info);
4818IMAQ_FUNC int IMAQ_STDCALL imaqSetBitDepth(Image* image, unsigned int bitDepth);
4819IMAQ_FUNC int IMAQ_STDCALL imaqSetImageSize(Image* image, int width, int height);
4820IMAQ_FUNC int IMAQ_STDCALL imaqSetMaskOffset(Image* image, Point offset);
4821IMAQ_FUNC int IMAQ_STDCALL imaqWriteCustomData(Image* image, const char* key, const void* data, unsigned int size);
4822
4823//============================================================================
4824// Display functions
4825//============================================================================
4826IMAQ_FUNC int IMAQ_STDCALL imaqAreToolsContextSensitive(int* sensitive);
4827IMAQ_FUNC int IMAQ_STDCALL imaqCloseWindow(int windowNumber);
4828IMAQ_FUNC int IMAQ_STDCALL imaqDisplayImage(const Image* image, int windowNumber, int resize);
4829IMAQ_FUNC int IMAQ_STDCALL imaqGetLastKey(char* keyPressed, int* windowNumber, int* modifiers);
4830IMAQ_FUNC void* IMAQ_STDCALL imaqGetSystemWindowHandle(int windowNumber);
4831IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowCenterPos(int windowNumber, Point* centerPosition);
4832IMAQ_FUNC int IMAQ_STDCALL imaqSetToolContextSensitivity(int sensitive);
4833IMAQ_FUNC int IMAQ_STDCALL imaqShowWindow(int windowNumber, int visible);
4834
4835//============================================================================
4836// Image Manipulation functions
4837//============================================================================
4838IMAQ_FUNC int IMAQ_STDCALL imaqCast(Image* dest, const Image* source, ImageType type, const float* lookup, int shift);
4839IMAQ_FUNC int IMAQ_STDCALL imaqCopyRect(Image* dest, const Image* source, Rect rect, Point destLoc);
4840IMAQ_FUNC int IMAQ_STDCALL imaqDuplicate(Image* dest, const Image* source);
4841IMAQ_FUNC void* IMAQ_STDCALL imaqFlatten(const Image* image, FlattenType type, CompressionType compression, int quality, unsigned int* size);
4842IMAQ_FUNC int IMAQ_STDCALL imaqFlip(Image* dest, const Image* source, FlipAxis axis);
4843IMAQ_FUNC int IMAQ_STDCALL imaqMask(Image* dest, const Image* source, const Image* mask);
4844IMAQ_FUNC int IMAQ_STDCALL imaqResample(Image* dest, const Image* source, int newWidth, int newHeight, InterpolationMethod method, Rect rect);
4845IMAQ_FUNC int IMAQ_STDCALL imaqRotate2(Image* dest, const Image* source, float angle, PixelValue fill, InterpolationMethod method, int maintainSize);
4846IMAQ_FUNC int IMAQ_STDCALL imaqScale(Image* dest, const Image* source, int xScale, int yScale, ScalingMode scaleMode, Rect rect);
4847IMAQ_FUNC int IMAQ_STDCALL imaqShift(Image* dest, const Image* source, int shiftX, int shiftY, PixelValue fill);
4848IMAQ_FUNC int IMAQ_STDCALL imaqTranspose(Image* dest, const Image* source);
4849IMAQ_FUNC int IMAQ_STDCALL imaqUnflatten(Image* image, const void* data, unsigned int size);
4850IMAQ_FUNC int IMAQ_STDCALL imaqUnwrapImage(Image* dest, const Image* source, Annulus annulus, RectOrientation orientation, InterpolationMethod method);
4851IMAQ_FUNC int IMAQ_STDCALL imaqView3D(Image* dest, Image* source, const View3DOptions* options);
4852
4853//============================================================================
4854// File I/O functions
4855//============================================================================
4856IMAQ_FUNC int IMAQ_STDCALL imaqCloseAVI(AVISession session);
4857IMAQ_FUNC AVISession IMAQ_STDCALL imaqCreateAVI(const char* fileName, const char* compressionFilter, int quality, unsigned int framesPerSecond, unsigned int maxDataSize);
4858IMAQ_FUNC int IMAQ_STDCALL imaqGetAVIInfo(AVISession session, AVIInfo* info);
4859IMAQ_FUNC int IMAQ_STDCALL imaqGetFileInfo(const char* fileName, CalibrationUnit* calibrationUnit, float* calibrationX, float* calibrationY, int* width, int* height, ImageType* imageType);
4860IMAQ_FUNC FilterName* IMAQ_STDCALL imaqGetFilterNames(int* numFilters);
4861IMAQ_FUNC char** IMAQ_STDCALL imaqLoadImagePopup(const char* defaultDirectory, const char* defaultFileSpec, const char* fileTypeList, const char* title, int allowMultiplePaths, ButtonLabel buttonLabel, int restrictDirectory, int restrictExtension, int allowCancel, int allowMakeDirectory, int* cancelled, int* numPaths);
4862IMAQ_FUNC AVISession IMAQ_STDCALL imaqOpenAVI(const char* fileName);
4863IMAQ_FUNC int IMAQ_STDCALL imaqReadAVIFrame(Image* image, AVISession session, unsigned int frameNum, void* data, unsigned int* dataSize);
4864IMAQ_FUNC int IMAQ_STDCALL imaqReadFile(Image* image, const char* fileName, RGBValue* colorTable, int* numColors);
4865IMAQ_FUNC int IMAQ_STDCALL imaqReadVisionFile(Image* image, const char* fileName, RGBValue* colorTable, int* numColors);
4866IMAQ_FUNC int IMAQ_STDCALL imaqWriteAVIFrame(Image* image, AVISession session, const void* data, unsigned int dataLength);
4867IMAQ_FUNC int IMAQ_STDCALL imaqWriteBMPFile(const Image* image, const char* fileName, int compress, const RGBValue* colorTable);
4868IMAQ_FUNC int IMAQ_STDCALL imaqWriteFile(const Image* image, const char* fileName, const RGBValue* colorTable);
4869IMAQ_FUNC int IMAQ_STDCALL imaqWriteJPEGFile(const Image* image, const char* fileName, unsigned int quality, void* colorTable);
4870IMAQ_FUNC int IMAQ_STDCALL imaqWriteJPEG2000File(const Image* image, const char* fileName, int lossless, float compressionRatio, const JPEG2000FileAdvancedOptions* advancedOptions, const RGBValue* colorTable);
4871IMAQ_FUNC int IMAQ_STDCALL imaqWritePNGFile2(const Image* image, const char* fileName, unsigned int compressionSpeed, const RGBValue* colorTable, int useBitDepth);
4872IMAQ_FUNC int IMAQ_STDCALL imaqWriteTIFFFile(const Image* image, const char* fileName, const TIFFFileOptions* options, const RGBValue* colorTable);
4873IMAQ_FUNC int IMAQ_STDCALL imaqWriteVisionFile(const Image* image, const char* fileName, const RGBValue* colorTable);
4874
4875
4876//============================================================================
4877// Analytic Geometry functions
4878//============================================================================
4879IMAQ_FUNC int IMAQ_STDCALL imaqBuildCoordinateSystem(const Point* points, ReferenceMode mode, AxisOrientation orientation, CoordinateSystem* system);
4880IMAQ_FUNC BestCircle2* IMAQ_STDCALL imaqFitCircle2(const PointFloat* points, int numPoints, const FitCircleOptions* options);
4881IMAQ_FUNC BestEllipse2* IMAQ_STDCALL imaqFitEllipse2(const PointFloat* points, int numPoints, const FitEllipseOptions* options);
4882IMAQ_FUNC BestLine* IMAQ_STDCALL imaqFitLine(const PointFloat* points, int numPoints, const FitLineOptions* options);
4883IMAQ_FUNC int IMAQ_STDCALL imaqGetAngle(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, float* angle);
4884IMAQ_FUNC int IMAQ_STDCALL imaqGetBisectingLine(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, PointFloat* bisectStart, PointFloat* bisectEnd);
4885IMAQ_FUNC int IMAQ_STDCALL imaqGetDistance(PointFloat point1, PointFloat point2, float* distance);
4886IMAQ_FUNC int IMAQ_STDCALL imaqGetIntersection(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, PointFloat* intersection);
4887IMAQ_FUNC int IMAQ_STDCALL imaqGetMidLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point, PointFloat* midLineStart, PointFloat* midLineEnd);
4888IMAQ_FUNC int IMAQ_STDCALL imaqGetPerpendicularLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point, PointFloat* perpLineStart, PointFloat* perpLineEnd, double* distance);
4889IMAQ_FUNC SegmentInfo* IMAQ_STDCALL imaqGetPointsOnContour(const Image* image, int* numSegments);
4890IMAQ_FUNC Point* IMAQ_STDCALL imaqGetPointsOnLine(Point start, Point end, int* numPoints);
4891IMAQ_FUNC int IMAQ_STDCALL imaqGetPolygonArea(const PointFloat* points, int numPoints, float* area);
4892IMAQ_FUNC float* IMAQ_STDCALL imaqInterpolatePoints(const Image* image, const Point* points, int numPoints, InterpolationMethod method, int subpixel, int* interpCount);
4893
4894//============================================================================
4895// Clipboard functions
4896//============================================================================
4897IMAQ_FUNC int IMAQ_STDCALL imaqClipboardToImage(Image* dest, RGBValue* palette);
4898IMAQ_FUNC int IMAQ_STDCALL imaqImageToClipboard(const Image* image, const RGBValue* palette);
4899
4900//============================================================================
4901// Border functions
4902//============================================================================
4903IMAQ_FUNC int IMAQ_STDCALL imaqFillBorder(Image* image, BorderMethod method);
4904IMAQ_FUNC int IMAQ_STDCALL imaqGetBorderSize(const Image* image, int* borderSize);
4905IMAQ_FUNC int IMAQ_STDCALL imaqSetBorderSize(Image* image, int size);
4906
4907//============================================================================
4908// Image Management functions
4909//============================================================================
4910IMAQ_FUNC int IMAQ_STDCALL imaqArrayToImage(Image* image, const void* array, int numCols, int numRows);
4911IMAQ_FUNC Image* IMAQ_STDCALL imaqCreateImage(ImageType type, int borderSize);
4912IMAQ_FUNC void* IMAQ_STDCALL imaqImageToArray(const Image* image, Rect rect, int* columns, int* rows);
4913
4914//============================================================================
4915// Color Processing functions
4916//============================================================================
4917IMAQ_FUNC Color2 IMAQ_STDCALL imaqChangeColorSpace2(const Color2* sourceColor, ColorMode sourceSpace, ColorMode destSpace, double offset, const CIEXYZValue* whiteReference);
4918IMAQ_FUNC int IMAQ_STDCALL imaqColorBCGTransform(Image* dest, const Image* source, const BCGOptions* redOptions, const BCGOptions* greenOptions, const BCGOptions* blueOptions, const Image* mask);
4919IMAQ_FUNC int IMAQ_STDCALL imaqColorEqualize(Image* dest, const Image* source, int colorEqualization);
4920IMAQ_FUNC ColorHistogramReport* IMAQ_STDCALL imaqColorHistogram2(Image* image, int numClasses, ColorMode mode, const CIEXYZValue* whiteReference, Image* mask);
4921IMAQ_FUNC int IMAQ_STDCALL imaqColorLookup(Image* dest, const Image* source, ColorMode mode, const Image* mask, const short* plane1, const short* plane2, const short* plane3);
4922IMAQ_FUNC int IMAQ_STDCALL imaqColorThreshold(Image* dest, const Image* source, int replaceValue, ColorMode mode, const Range* plane1Range, const Range* plane2Range, const Range* plane3Range);
4923IMAQ_FUNC SupervisedColorSegmentationReport* IMAQ_STDCALL imaqSupervisedColorSegmentation(ClassifierSession* session, Image* labelImage, const Image* srcImage, const ROI* roi, const ROILabel* labelIn, unsigned int numLabelIn, int maxDistance, int minIdentificationScore, const ColorSegmenationOptions* segmentOptions);
4924IMAQ_FUNC int IMAQ_STDCALL imaqGetColorSegmentationMaxDistance(ClassifierSession* session, const ColorSegmenationOptions* segmentOptions, SegmentationDistanceLevel distLevel, int* maxDistance);
4925
4926//============================================================================
4927// Transform functions
4928//============================================================================
4929IMAQ_FUNC int IMAQ_STDCALL imaqBCGTransform(Image* dest, const Image* source, const BCGOptions* options, const Image* mask);
4930IMAQ_FUNC int IMAQ_STDCALL imaqEqualize(Image* dest, const Image* source, float min, float max, const Image* mask);
4931IMAQ_FUNC int IMAQ_STDCALL imaqInverse(Image* dest, const Image* source, const Image* mask);
4932IMAQ_FUNC int IMAQ_STDCALL imaqMathTransform(Image* dest, const Image* source, MathTransformMethod method, float rangeMin, float rangeMax, float power, const Image* mask);
4933IMAQ_FUNC int IMAQ_STDCALL imaqWatershedTransform(Image* dest, const Image* source, int connectivity8, int* zoneCount);
4934IMAQ_FUNC int IMAQ_STDCALL imaqLookup2(Image* dest, const Image* source, const int* table, const Image* mask);
4935
4936
4937//============================================================================
4938// Window Management functions
4939//============================================================================
4940IMAQ_FUNC int IMAQ_STDCALL imaqAreScrollbarsVisible(int windowNumber, int* visible);
4941IMAQ_FUNC int IMAQ_STDCALL imaqBringWindowToTop(int windowNumber);
4942IMAQ_FUNC int IMAQ_STDCALL imaqGetMousePos(Point* position, int* windowNumber);
4943IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowBackground(int windowNumber, WindowBackgroundFillStyle* fillStyle, WindowBackgroundHatchStyle* hatchStyle, RGBValue* fillColor, RGBValue* backgroundColor);
4944IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowDisplayMapping(int windowNum, DisplayMapping* mapping);
4945IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowGrid(int windowNumber, int* xResolution, int* yResolution);
4946IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowHandle(int* handle);
4947IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowPos(int windowNumber, Point* position);
4948IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowSize(int windowNumber, int* width, int* height);
4949IMAQ_FUNC char* IMAQ_STDCALL imaqGetWindowTitle(int windowNumber);
4950IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowZoom2(int windowNumber, float* xZoom, float* yZoom);
4951IMAQ_FUNC int IMAQ_STDCALL imaqIsWindowNonTearing(int windowNumber, int* nonTearing);
4952IMAQ_FUNC int IMAQ_STDCALL imaqIsWindowVisible(int windowNumber, int* visible);
4953IMAQ_FUNC int IMAQ_STDCALL imaqMoveWindow(int windowNumber, Point position);
4954IMAQ_FUNC int IMAQ_STDCALL imaqSetupWindow(int windowNumber, int configuration);
4955IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowBackground(int windowNumber, WindowBackgroundFillStyle fillStyle, WindowBackgroundHatchStyle hatchStyle, const RGBValue* fillColor, const RGBValue* backgroundColor);
4956IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowDisplayMapping(int windowNumber, const DisplayMapping* mapping);
4957IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowGrid(int windowNumber, int xResolution, int yResolution);
4958IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowMaxContourCount(int windowNumber, unsigned int maxContourCount);
4959IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowNonTearing(int windowNumber, int nonTearing);
4960IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowPalette(int windowNumber, PaletteType type, const RGBValue* palette, int numColors);
4961IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowSize(int windowNumber, int width, int height);
4962IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowThreadPolicy(WindowThreadPolicy policy);
4963IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowTitle(int windowNumber, const char* title);
4964IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowZoomToFit(int windowNumber, int zoomToFit);
4965IMAQ_FUNC int IMAQ_STDCALL imaqShowScrollbars(int windowNumber, int visible);
4966IMAQ_FUNC int IMAQ_STDCALL imaqZoomWindow2(int windowNumber, float xZoom, float yZoom, Point center);
4967
4968//============================================================================
4969// Utilities functions
4970//============================================================================
4971IMAQ_FUNC const float* IMAQ_STDCALL imaqGetKernel(KernelFamily family, int size, int number);
4972IMAQ_FUNC Annulus IMAQ_STDCALL imaqMakeAnnulus(Point center, int innerRadius, int outerRadius, double startAngle, double endAngle);
4973IMAQ_FUNC Point IMAQ_STDCALL imaqMakePoint(int xCoordinate, int yCoordinate);
4974IMAQ_FUNC PointFloat IMAQ_STDCALL imaqMakePointFloat(float xCoordinate, float yCoordinate);
4975IMAQ_FUNC Rect IMAQ_STDCALL imaqMakeRect(int top, int left, int height, int width);
4976IMAQ_FUNC Rect IMAQ_STDCALL imaqMakeRectFromRotatedRect(RotatedRect rotatedRect);
4977IMAQ_FUNC RotatedRect IMAQ_STDCALL imaqMakeRotatedRect(int top, int left, int height, int width, double angle);
4978IMAQ_FUNC RotatedRect IMAQ_STDCALL imaqMakeRotatedRectFromRect(Rect rect);
4979IMAQ_FUNC int IMAQ_STDCALL imaqMulticoreOptions(MulticoreOperation operation, unsigned int* customNumCores);
4980
4981//============================================================================
4982// Tool Window functions
4983//============================================================================
4984IMAQ_FUNC int IMAQ_STDCALL imaqCloseToolWindow(void);
4985IMAQ_FUNC int IMAQ_STDCALL imaqGetCurrentTool(Tool* currentTool);
4986IMAQ_FUNC int IMAQ_STDCALL imaqGetLastEvent(WindowEventType* type, int* windowNumber, Tool* tool, Rect* rect);
4987IMAQ_FUNC void* IMAQ_STDCALL imaqGetToolWindowHandle(void);
4988IMAQ_FUNC int IMAQ_STDCALL imaqGetToolWindowPos(Point* position);
4989IMAQ_FUNC int IMAQ_STDCALL imaqIsToolWindowVisible(int* visible);
4990IMAQ_FUNC int IMAQ_STDCALL imaqMoveToolWindow(Point position);
4991IMAQ_FUNC int IMAQ_STDCALL imaqSetCurrentTool(Tool currentTool);
4992#ifndef __GNUC__
4993IMAQ_FUNC int IMAQ_STDCALL imaqSetEventCallback(EventCallback callback, int synchronous);
4994#endif
4995IMAQ_FUNC int IMAQ_STDCALL imaqSetToolColor(const RGBValue* color);
4996IMAQ_FUNC int IMAQ_STDCALL imaqSetupToolWindow(int showCoordinates, int maxIconsPerLine, const ToolWindowOptions* options);
4997IMAQ_FUNC int IMAQ_STDCALL imaqShowToolWindow(int visible);
4998
4999//============================================================================
5000// Meter functions
5001//============================================================================
5002IMAQ_FUNC MeterArc* IMAQ_STDCALL imaqGetMeterArc(int lightNeedle, MeterArcMode mode, const ROI* roi, PointFloat base, PointFloat start, PointFloat end);
5003IMAQ_FUNC int IMAQ_STDCALL imaqReadMeter(const Image* image, const MeterArc* arcInfo, double* percentage, PointFloat* endOfNeedle);
5004
5005//============================================================================
5006// Calibration functions
5007//============================================================================
5008IMAQ_FUNC int IMAQ_STDCALL imaqCopyCalibrationInfo2(Image* dest, Image* source, Point offset);
5009IMAQ_FUNC int IMAQ_STDCALL imaqCorrectCalibratedImage(Image* dest, const Image* source, PixelValue fill, InterpolationMethod method, const ROI* roi);
5010IMAQ_FUNC CalibrationInfo* IMAQ_STDCALL imaqGetCalibrationInfo2(const Image* image);
5011IMAQ_FUNC CalibrationInfo* IMAQ_STDCALL imaqGetCalibrationInfo3(Image* image, unsigned int isGetErrorMap);
5012IMAQ_FUNC int IMAQ_STDCALL imaqLearnCalibrationGrid(Image* image, const ROI* roi, const LearnCalibrationOptions* options, const GridDescriptor* grid, const CoordinateSystem* system, const RangeFloat* range, float* quality);
5013IMAQ_FUNC int IMAQ_STDCALL imaqLearnCalibrationPoints(Image* image, const CalibrationPoints* points, const ROI* roi, const LearnCalibrationOptions* options, const GridDescriptor* grid, const CoordinateSystem* system, float* quality);
5014IMAQ_FUNC int IMAQ_STDCALL imaqSetCoordinateSystem(Image* image, const CoordinateSystem* system);
5015IMAQ_FUNC int IMAQ_STDCALL imaqSetSimpleCalibration(Image* image, ScalingMethod method, int learnTable, const GridDescriptor* grid, const CoordinateSystem* system);
5016IMAQ_FUNC TransformReport* IMAQ_STDCALL imaqTransformPixelToRealWorld(const Image* image, const PointFloat* pixelCoordinates, int numCoordinates);
5017IMAQ_FUNC TransformReport* IMAQ_STDCALL imaqTransformRealWorldToPixel(const Image* image, const PointFloat* realWorldCoordinates, int numCoordinates);
5018IMAQ_FUNC int IMAQ_STDCALL imaqSetSimpleCalibration2(Image* image, const GridDescriptor* gridDescriptor);
5019IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationSetAxisInfo(Image* image, CoordinateSystem* axisInfo);
5020IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationGetThumbnailImage(Image* templateImage, Image* image, CalibrationThumbnailType type, unsigned int index);
5021IMAQ_FUNC GetCalibrationInfoReport* IMAQ_STDCALL imaqCalibrationGetCalibrationInfo(Image* image, unsigned int isGetErrorMap);
5022IMAQ_FUNC GetCameraParametersReport* IMAQ_STDCALL imaqCalibrationGetCameraParameters(Image* templateImage);
5023IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationCompactInformation(Image* image);
5024
5025//============================================================================
5026// Pixel Manipulation functions
5027//============================================================================
5028IMAQ_FUNC int IMAQ_STDCALL imaqArrayToComplexPlane(Image* dest, const Image* source, const float* newPixels, ComplexPlane plane);
5029IMAQ_FUNC float* IMAQ_STDCALL imaqComplexPlaneToArray(const Image* image, ComplexPlane plane, Rect rect, int* rows, int* columns);
5030IMAQ_FUNC int IMAQ_STDCALL imaqExtractColorPlanes(const Image* image, ColorMode mode, Image* plane1, Image* plane2, Image* plane3);
5031IMAQ_FUNC int IMAQ_STDCALL imaqExtractComplexPlane(Image* dest, const Image* source, ComplexPlane plane);
5032IMAQ_FUNC int IMAQ_STDCALL imaqFillImage(Image* image, PixelValue value, const Image* mask);
5033IMAQ_FUNC void* IMAQ_STDCALL imaqGetLine(const Image* image, Point start, Point end, int* numPoints);
5034IMAQ_FUNC int IMAQ_STDCALL imaqGetPixel(const Image* image, Point pixel, PixelValue* value);
5035IMAQ_FUNC int IMAQ_STDCALL imaqReplaceColorPlanes(Image* dest, const Image* source, ColorMode mode, const Image* plane1, const Image* plane2, const Image* plane3);
5036IMAQ_FUNC int IMAQ_STDCALL imaqReplaceComplexPlane(Image* dest, const Image* source, const Image* newValues, ComplexPlane plane);
5037IMAQ_FUNC int IMAQ_STDCALL imaqSetLine(Image* image, const void* array, int arraySize, Point start, Point end);
5038IMAQ_FUNC int IMAQ_STDCALL imaqSetPixel(Image* image, Point coord, PixelValue value);
5039
5040//============================================================================
5041// Color Matching functions
5042//============================================================================
5043IMAQ_FUNC ColorInformation* IMAQ_STDCALL imaqLearnColor(const Image* image, const ROI* roi, ColorSensitivity sensitivity, int saturation);
5044IMAQ_FUNC int* IMAQ_STDCALL imaqMatchColor(const Image* image, const ColorInformation* info, const ROI* roi, int* numScores);
5045
5046//============================================================================
5047// Frequency Domain Analysis functions
5048//============================================================================
5049IMAQ_FUNC int IMAQ_STDCALL imaqAttenuate(Image* dest, const Image* source, AttenuateMode highlow);
5050IMAQ_FUNC int IMAQ_STDCALL imaqConjugate(Image* dest, const Image* source);
5051IMAQ_FUNC int IMAQ_STDCALL imaqFFT(Image* dest, const Image* source);
5052IMAQ_FUNC int IMAQ_STDCALL imaqFlipFrequencies(Image* dest, const Image* source);
5053IMAQ_FUNC int IMAQ_STDCALL imaqInverseFFT(Image* dest, const Image* source);
5054IMAQ_FUNC int IMAQ_STDCALL imaqTruncate(Image* dest, const Image* source, TruncateMode highlow, float ratioToKeep);
5055
5056//============================================================================
5057// Barcode I/O functions
5058//============================================================================
5059IMAQ_FUNC int IMAQ_STDCALL imaqGradeDataMatrixBarcodeAIM(const Image* image, AIMGradeReport* report);
5060IMAQ_FUNC BarcodeInfo* IMAQ_STDCALL imaqReadBarcode(const Image* image, BarcodeType type, const ROI* roi, int validate);
5061IMAQ_FUNC DataMatrixReport* IMAQ_STDCALL imaqReadDataMatrixBarcode2(Image* image, const ROI* roi, DataMatrixGradingMode prepareForGrading, const DataMatrixDescriptionOptions* descriptionOptions, const DataMatrixSizeOptions* sizeOptions, const DataMatrixSearchOptions* searchOptions);
5062IMAQ_FUNC Barcode2DInfo* IMAQ_STDCALL imaqReadPDF417Barcode(const Image* image, const ROI* roi, Barcode2DSearchMode searchMode, unsigned int* numBarcodes);
5063IMAQ_FUNC QRCodeReport* IMAQ_STDCALL imaqReadQRCode(Image* image, const ROI* roi, QRGradingMode reserved, const QRCodeDescriptionOptions* descriptionOptions, const QRCodeSizeOptions* sizeOptions, const QRCodeSearchOptions* searchOptions);
5064
5065//============================================================================
5066// LCD functions
5067//============================================================================
5068IMAQ_FUNC int IMAQ_STDCALL imaqFindLCDSegments(ROI* roi, const Image* image, const LCDOptions* options);
5069IMAQ_FUNC LCDReport* IMAQ_STDCALL imaqReadLCD(const Image* image, const ROI* roi, const LCDOptions* options);
5070
5071//============================================================================
5072// Shape Matching functions
5073//============================================================================
5074IMAQ_FUNC ShapeReport* IMAQ_STDCALL imaqMatchShape(Image* dest, Image* source, const Image* templateImage, int scaleInvariant, int connectivity8, double tolerance, int* numMatches);
5075
5076//============================================================================
5077// Contours functions
5078//============================================================================
5079IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddAnnulusContour(ROI* roi, Annulus annulus);
5080IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddClosedContour(ROI* roi, const Point* points, int numPoints);
5081IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddLineContour(ROI* roi, Point start, Point end);
5082IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddOpenContour(ROI* roi, const Point* points, int numPoints);
5083IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddOvalContour(ROI* roi, Rect boundingBox);
5084IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddPointContour(ROI* roi, Point point);
5085IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRectContour(ROI* roi, Rect rect);
5086IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRotatedRectContour2(ROI* roi, RotatedRect rect);
5087IMAQ_FUNC ContourID IMAQ_STDCALL imaqCopyContour(ROI* destRoi, const ROI* sourceRoi, ContourID id);
5088IMAQ_FUNC ContourID IMAQ_STDCALL imaqGetContour(const ROI* roi, unsigned int index);
5089IMAQ_FUNC int IMAQ_STDCALL imaqGetContourColor(const ROI* roi, ContourID id, RGBValue* contourColor);
5090IMAQ_FUNC int IMAQ_STDCALL imaqGetContourCount(const ROI* roi);
5091IMAQ_FUNC ContourInfo2* IMAQ_STDCALL imaqGetContourInfo2(const ROI* roi, ContourID id);
5092IMAQ_FUNC int IMAQ_STDCALL imaqMoveContour(ROI* roi, ContourID id, int deltaX, int deltaY);
5093IMAQ_FUNC int IMAQ_STDCALL imaqRemoveContour(ROI* roi, ContourID id);
5094IMAQ_FUNC int IMAQ_STDCALL imaqSetContourColor(ROI* roi, ContourID id, const RGBValue* color);
5095
5096//============================================================================
5097// Regions of Interest functions
5098//============================================================================
5099IMAQ_FUNC int IMAQ_STDCALL imaqConstructROI2(const Image* image, ROI* roi, Tool initialTool, const ToolWindowOptions* tools, const ConstructROIOptions2* options, int* okay);
5100IMAQ_FUNC ROI* IMAQ_STDCALL imaqCreateROI(void);
5101IMAQ_FUNC int IMAQ_STDCALL imaqGetROIBoundingBox(const ROI* roi, Rect* boundingBox);
5102IMAQ_FUNC int IMAQ_STDCALL imaqGetROIColor(const ROI* roi, RGBValue* roiColor);
5103IMAQ_FUNC ROI* IMAQ_STDCALL imaqGetWindowROI(int windowNumber);
5104IMAQ_FUNC int IMAQ_STDCALL imaqSetROIColor(ROI* roi, const RGBValue* color);
5105IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowROI(int windowNumber, const ROI* roi);
5106
5107//============================================================================
5108// Image Analysis functions
5109//============================================================================
5110IMAQ_FUNC int IMAQ_STDCALL imaqCentroid(const Image* image, PointFloat* centroid, const Image* mask);
5111IMAQ_FUNC Curve* IMAQ_STDCALL imaqExtractCurves(const Image* image, const ROI* roi, const CurveOptions* curveOptions, unsigned int* numCurves);
5112IMAQ_FUNC HistogramReport* IMAQ_STDCALL imaqHistogram(const Image* image, int numClasses, float min, float max, const Image* mask);
5113IMAQ_FUNC LinearAverages* IMAQ_STDCALL imaqLinearAverages2(Image* image, LinearAveragesMode mode, Rect rect);
5114IMAQ_FUNC LineProfile* IMAQ_STDCALL imaqLineProfile(const Image* image, Point start, Point end);
5115IMAQ_FUNC QuantifyReport* IMAQ_STDCALL imaqQuantify(const Image* image, const Image* mask);
5116
5117//============================================================================
5118// Error Management functions
5119//============================================================================
5120IMAQ_FUNC int IMAQ_STDCALL imaqClearError(void);
5121IMAQ_FUNC char* IMAQ_STDCALL imaqGetErrorText(int errorCode);
5122IMAQ_FUNC int IMAQ_STDCALL imaqGetLastError(void);
5123IMAQ_FUNC const char* IMAQ_STDCALL imaqGetLastErrorFunc(void);
5124IMAQ_FUNC int IMAQ_STDCALL imaqSetError(int errorCode, const char* function);
5125
5126//============================================================================
5127// Threshold functions
5128//============================================================================
5129IMAQ_FUNC ThresholdData* IMAQ_STDCALL imaqAutoThreshold2(Image* dest, const Image* source, int numClasses, ThresholdMethod method, const Image* mask);
5130IMAQ_FUNC int IMAQ_STDCALL imaqLocalThreshold(Image* dest, const Image* source, unsigned int windowWidth, unsigned int windowHeight, LocalThresholdMethod method, double deviationWeight, ObjectType type, float replaceValue);
5131IMAQ_FUNC int IMAQ_STDCALL imaqMagicWand(Image* dest, const Image* source, Point coord, float tolerance, int connectivity8, float replaceValue);
5132IMAQ_FUNC int IMAQ_STDCALL imaqMultithreshold(Image* dest, const Image* source, const ThresholdData* ranges, int numRanges);
5133IMAQ_FUNC int IMAQ_STDCALL imaqThreshold(Image* dest, const Image* source, float rangeMin, float rangeMax, int useNewValue, float newValue);
5134
5135//============================================================================
5136// Memory Management functions
5137//============================================================================
5138IMAQ_FUNC int IMAQ_STDCALL imaqDispose(void* object);
5139
5140//============================================================================
5141// Pattern Matching functions
5142//============================================================================
5143IMAQ_FUNC CircleMatch* IMAQ_STDCALL imaqDetectCircles(const Image* image, const CircleDescriptor* circleDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5144IMAQ_FUNC EllipseMatch* IMAQ_STDCALL imaqDetectEllipses(const Image* image, const EllipseDescriptor* ellipseDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5145IMAQ_FUNC LineMatch* IMAQ_STDCALL imaqDetectLines(const Image* image, const LineDescriptor* lineDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5146IMAQ_FUNC RectangleMatch* IMAQ_STDCALL imaqDetectRectangles(const Image* image, const RectangleDescriptor* rectangleDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5147IMAQ_FUNC FeatureData* IMAQ_STDCALL imaqGetGeometricFeaturesFromCurves(const Curve* curves, unsigned int numCurves, const FeatureType* featureTypes, unsigned int numFeatureTypes, unsigned int* numFeatures);
5148IMAQ_FUNC FeatureData* IMAQ_STDCALL imaqGetGeometricTemplateFeatureInfo(const Image* pattern, unsigned int* numFeatures);
5149IMAQ_FUNC int IMAQ_STDCALL imaqLearnColorPattern(Image* image, const LearnColorPatternOptions* options);
5150IMAQ_FUNC int IMAQ_STDCALL imaqLearnGeometricPattern(Image* image, PointFloat originOffset, const CurveOptions* curveOptions, const LearnGeometricPatternAdvancedOptions* advancedLearnOptions, const Image* mask);
5151IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL imaqLearnMultipleGeometricPatterns(const Image** patterns, unsigned int numberOfPatterns, const String255* labels);
5152IMAQ_FUNC int IMAQ_STDCALL imaqLearnPattern3(Image* image, LearningMode learningMode, LearnPatternAdvancedOptions* advancedOptions, const Image* mask);
5153IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchColorPattern(const Image* image, Image* pattern, const MatchColorPatternOptions* options, Rect searchRect, int* numMatches);
5154IMAQ_FUNC GeometricPatternMatch2* IMAQ_STDCALL imaqMatchGeometricPattern2(const Image* image, const Image* pattern, const CurveOptions* curveOptions, const MatchGeometricPatternOptions* matchOptions, const MatchGeometricPatternAdvancedOptions2* advancedMatchOptions, const ROI* roi, int* numMatches);
5155IMAQ_FUNC GeometricPatternMatch2* IMAQ_STDCALL imaqMatchMultipleGeometricPatterns(const Image* image, const MultipleGeometricPattern* multiplePattern, const ROI* roi, int* numMatches);
5156IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL imaqReadMultipleGeometricPatternFile(const char* fileName, String255 description);
5157IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqRefineMatches(const Image* image, const Image* pattern, const PatternMatch* candidatesIn, int numCandidatesIn, MatchPatternOptions* options, MatchPatternAdvancedOptions* advancedOptions, int* numCandidatesOut);
5158IMAQ_FUNC int IMAQ_STDCALL imaqSetMultipleGeometricPatternsOptions(MultipleGeometricPattern* multiplePattern, const char* label, const CurveOptions* curveOptions, const MatchGeometricPatternOptions* matchOptions, const MatchGeometricPatternAdvancedOptions2* advancedMatchOptions);
5159IMAQ_FUNC int IMAQ_STDCALL imaqWriteMultipleGeometricPatternFile(const MultipleGeometricPattern* multiplePattern, const char* fileName, const char* description);
5160IMAQ_FUNC GeometricPatternMatch3* IMAQ_STDCALL imaqMatchGeometricPattern3(const Image* image, const Image* pattern, const CurveOptions* curveOptions, const MatchGeometricPatternOptions* matchOptions, const MatchGeometricPatternAdvancedOptions3* advancedMatchOptions, const ROI* roi, size_t* numMatches);
5161IMAQ_FUNC int IMAQ_STDCALL imaqLearnGeometricPattern2(Image* image, PointFloat originOffset, double angleOffset, const CurveOptions* curveOptions, const LearnGeometricPatternAdvancedOptions2* advancedLearnOptions, const Image* mask);
5162IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchPattern3(const Image* image, const Image* pattern, const MatchPatternOptions* options, const MatchPatternAdvancedOptions* advancedOptions, const ROI* roi, int* numMatches);
5163
5164//============================================================================
5165// Overlay functions
5166//============================================================================
5167IMAQ_FUNC int IMAQ_STDCALL imaqClearOverlay(Image* image, const char* group);
5168IMAQ_FUNC int IMAQ_STDCALL imaqCopyOverlay(Image* dest, const Image* source, const char* group);
5169IMAQ_FUNC int IMAQ_STDCALL imaqGetOverlayProperties(const Image* image, const char* group, TransformBehaviors* transformBehaviors);
5170IMAQ_FUNC int IMAQ_STDCALL imaqMergeOverlay(Image* dest, const Image* source, const RGBValue* palette, unsigned int numColors, const char* group);
5171IMAQ_FUNC int IMAQ_STDCALL imaqOverlayArc(Image* image, const ArcInfo* arc, const RGBValue* color, DrawMode drawMode, const char* group);
5172IMAQ_FUNC int IMAQ_STDCALL imaqOverlayBitmap(Image* image, Point destLoc, const RGBValue* bitmap, unsigned int numCols, unsigned int numRows, const char* group);
5173IMAQ_FUNC int IMAQ_STDCALL imaqOverlayClosedContour(Image* image, const Point* points, int numPoints, const RGBValue* color, DrawMode drawMode, const char* group);
5174IMAQ_FUNC int IMAQ_STDCALL imaqOverlayLine(Image* image, Point start, Point end, const RGBValue* color, const char* group);
5175IMAQ_FUNC int IMAQ_STDCALL imaqOverlayMetafile(Image* image, const void* metafile, Rect rect, const char* group);
5176IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOpenContour(Image* image, const Point* points, int numPoints, const RGBValue* color, const char* group);
5177IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOval(Image* image, Rect boundingBox, const RGBValue* color, DrawMode drawMode, char* group);
5178IMAQ_FUNC int IMAQ_STDCALL imaqOverlayPoints(Image* image, const Point* points, int numPoints, const RGBValue* colors, int numColors, PointSymbol symbol, const UserPointSymbol* userSymbol, const char* group);
5179IMAQ_FUNC int IMAQ_STDCALL imaqOverlayRect(Image* image, Rect rect, const RGBValue* color, DrawMode drawMode, const char* group);
5180IMAQ_FUNC int IMAQ_STDCALL imaqOverlayROI(Image* image, const ROI* roi, PointSymbol symbol, const UserPointSymbol* userSymbol, const char* group);
5181IMAQ_FUNC int IMAQ_STDCALL imaqOverlayText(Image* image, Point origin, const char* text, const RGBValue* color, const OverlayTextOptions* options, const char* group);
5182IMAQ_FUNC int IMAQ_STDCALL imaqSetOverlayProperties(Image* image, const char* group, TransformBehaviors* transformBehaviors);
5183
5184//============================================================================
5185// OCR functions
5186//============================================================================
5187IMAQ_FUNC CharSet* IMAQ_STDCALL imaqCreateCharSet(void);
5188IMAQ_FUNC int IMAQ_STDCALL imaqDeleteChar(CharSet* set, int index);
5189IMAQ_FUNC int IMAQ_STDCALL imaqGetCharCount(const CharSet* set);
5190IMAQ_FUNC CharInfo2* IMAQ_STDCALL imaqGetCharInfo2(const CharSet* set, int index);
5191IMAQ_FUNC int IMAQ_STDCALL imaqReadOCRFile(const char* fileName, CharSet* set, String255 setDescription, ReadTextOptions* readOptions, OCRProcessingOptions* processingOptions, OCRSpacingOptions* spacingOptions);
5192IMAQ_FUNC ReadTextReport3* IMAQ_STDCALL imaqReadText3(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5193IMAQ_FUNC int IMAQ_STDCALL imaqRenameChar(CharSet* set, int index, const char* newCharValue);
5194IMAQ_FUNC int IMAQ_STDCALL imaqSetReferenceChar(const CharSet* set, int index, int isReferenceChar);
5195IMAQ_FUNC int IMAQ_STDCALL imaqTrainChars(const Image* image, CharSet* set, int index, const char* charValue, const ROI* roi, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5196IMAQ_FUNC int* IMAQ_STDCALL imaqVerifyPatterns(const Image* image, const CharSet* set, const String255* expectedPatterns, int patternCount, const ROI* roi, int* numScores);
5197IMAQ_FUNC int* IMAQ_STDCALL imaqVerifyText(const Image* image, const CharSet* set, const char* expectedString, const ROI* roi, int* numScores);
5198IMAQ_FUNC int IMAQ_STDCALL imaqWriteOCRFile(const char* fileName, const CharSet* set, const char* setDescription, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5199
5200//============================================================================
5201// Geometric Matching functions
5202//============================================================================
5203IMAQ_FUNC ExtractContourReport* IMAQ_STDCALL imaqExtractContour(Image* image, const ROI* roi, ExtractContourDirection direction, CurveParameters* curveParams, const ConnectionConstraint* connectionConstraintParams, unsigned int numOfConstraints, ExtractContourSelection selection, Image* contourImage);
5204IMAQ_FUNC int IMAQ_STDCALL imaqContourOverlay(Image* image, const Image* contourImage, const ContourOverlaySettings* pointsSettings, const ContourOverlaySettings* eqnSettings, const char* groupName);
5205IMAQ_FUNC ContourComputeCurvatureReport* IMAQ_STDCALL imaqContourComputeCurvature(const Image* contourImage, unsigned int kernel);
5206IMAQ_FUNC CurvatureAnalysisReport* IMAQ_STDCALL imaqContourClassifyCurvature(const Image* contourImage, unsigned int kernel, RangeLabel* curvatureClasses, unsigned int numCurvatureClasses);
5207IMAQ_FUNC ComputeDistancesReport* IMAQ_STDCALL imaqContourComputeDistances(const Image* targetImage, const Image* templateImage, const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel);
5208IMAQ_FUNC ClassifyDistancesReport* IMAQ_STDCALL imaqContourClassifyDistances(const Image* targetImage, const Image* templateImage, const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel, const RangeLabel* distanceRanges, unsigned int numDistanceRanges);
5209IMAQ_FUNC ContourInfoReport* IMAQ_STDCALL imaqContourInfo(const Image* contourImage);
5210IMAQ_FUNC SetupMatchPatternData* IMAQ_STDCALL imaqContourSetupMatchPattern(MatchMode* matchMode, unsigned int enableSubPixelAccuracy, CurveParameters* curveParams, unsigned int useLearnCurveParameters, const RangeSettingDouble* rangeSettings, unsigned int numRangeSettings);
5211IMAQ_FUNC int IMAQ_STDCALL imaqContourAdvancedSetupMatchPattern(SetupMatchPatternData* matchSetupData, GeometricAdvancedSetupDataOption* geometricOptions, unsigned int numGeometricOptions);
5212IMAQ_FUNC ContourFitLineReport* IMAQ_STDCALL imaqContourFitLine(Image* image, double pixelRadius);
5213IMAQ_FUNC PartialCircle* IMAQ_STDCALL imaqContourFitCircle(Image* image, double pixelRadius, int rejectOutliers);
5214IMAQ_FUNC PartialEllipse* IMAQ_STDCALL imaqContourFitEllipse(Image* image, double pixelRadius, int rejectOutliers);
5215IMAQ_FUNC ContourFitSplineReport* IMAQ_STDCALL imaqContourFitSpline(Image* image, int degree, int numberOfControlPoints);
5216IMAQ_FUNC ContourFitPolynomialReport* IMAQ_STDCALL imaqContourFitPolynomial(Image* image, int order);
5217
5218//============================================================================
5219// Edge Detection functions
5220//============================================================================
5221IMAQ_FUNC FindCircularEdgeReport* IMAQ_STDCALL imaqFindCircularEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindCircularEdgeOptions* edgeOptions, const CircleFitOptions* circleFitOptions);
5222IMAQ_FUNC FindConcentricEdgeReport* IMAQ_STDCALL imaqFindConcentricEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindConcentricEdgeOptions* edgeOptions, const ConcentricEdgeFitOptions* concentricEdgeFitOptions);
5223
5224//============================================================================
5225// Morphology Reconstruction functions
5226//============================================================================
5227IMAQ_FUNC int IMAQ_STDCALL imaqGrayMorphologyReconstruct(Image* dstImage, Image* srcImage, const Image* markerImage, PointFloat* points, int numOfPoints, MorphologyReconstructOperation operation, const StructuringElement* structuringElement, const ROI* roi);
5228IMAQ_FUNC int IMAQ_STDCALL imaqMorphologyReconstruct(Image* dstImage, Image* srcImage, const Image* markerImage, PointFloat* points, int numOfPoints, MorphologyReconstructOperation operation, Connectivity connectivity, const ROI* roi);
5229
5230//============================================================================
5231// Texture functions
5232//============================================================================
5233IMAQ_FUNC int IMAQ_STDCALL imaqDetectTextureDefect(ClassifierSession* session, Image* destImage, const Image* srcImage, const ROI* roi, int initialStepSize, int finalStepSize, unsigned char defectPixelValue, double minClassificationScore);
5234IMAQ_FUNC int IMAQ_STDCALL imaqClassificationTextureDefectOptions(ClassifierSession* session, WindowSize* windowOptions, WaveletOptions* waveletOptions, void** bandsUsed, int* numBandsUsed, CooccurrenceOptions* cooccurrenceOptions, unsigned char setOperation);
5235IMAQ_FUNC int IMAQ_STDCALL imaqCooccurrenceMatrix(const Image* srcImage, const ROI* roi, int levelPixel, const DisplacementVector* displacementVec, void* featureOptionArray, unsigned int featureOptionArraySize, void** cooccurrenceMatrixArray, int* coocurrenceMatrixRows, int* coocurrenceMatrixCols, void** featureVectorArray, int* featureVectorArraySize);
5236IMAQ_FUNC ExtractTextureFeaturesReport* IMAQ_STDCALL imaqExtractTextureFeatures(const Image* srcImage, const ROI* roi, const WindowSize* windowOptions, const WaveletOptions* waveletOptions, void* waveletBands, unsigned int numWaveletBands, const CooccurrenceOptions* cooccurrenceOptions, unsigned char useWindow);
5237IMAQ_FUNC WaveletBandsReport* IMAQ_STDCALL imaqExtractWaveletBands(const Image* srcImage, const WaveletOptions* waveletOptions, void* waveletBands, unsigned int numWaveletBands);
5238
5239//============================================================================
5240// Regions of Interest Manipulation functions
5241//============================================================================
5242IMAQ_FUNC ROI* IMAQ_STDCALL imaqMaskToROI(const Image* mask, int* withinLimit);
5243IMAQ_FUNC ROIProfile* IMAQ_STDCALL imaqROIProfile(const Image* image, const ROI* roi);
5244IMAQ_FUNC int IMAQ_STDCALL imaqROIToMask(Image* mask, const ROI* roi, int fillValue, const Image* imageModel, int* inSpace);
5245IMAQ_FUNC int IMAQ_STDCALL imaqTransformROI2(ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem);
5246IMAQ_FUNC LabelToROIReport* IMAQ_STDCALL imaqLabelToROI(const Image* image, const unsigned int* labelsIn, unsigned int numLabelsIn, int maxNumVectors, int isExternelEdges);
5247
5248//============================================================================
5249// Morphology functions
5250//============================================================================
5251IMAQ_FUNC int IMAQ_STDCALL imaqGrayMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
5252
5253//============================================================================
5254// Classification functions
5255//============================================================================
5256IMAQ_FUNC int IMAQ_STDCALL imaqAddClassifierSample(Image* image, ClassifierSession* session, const ROI* roi, const char* sampleClass, double* featureVector, unsigned int vectorSize);
5257IMAQ_FUNC ClassifierReportAdvanced* IMAQ_STDCALL imaqAdvanceClassify(Image* image, const ClassifierSession* session, const ROI* roi, double* featureVector, unsigned int vectorSize);
5258IMAQ_FUNC ClassifierReport* IMAQ_STDCALL imaqClassify(Image* image, const ClassifierSession* session, const ROI* roi, double* featureVector, unsigned int vectorSize);
5259IMAQ_FUNC ClassifierSession* IMAQ_STDCALL imaqCreateClassifier(ClassifierType type);
5260IMAQ_FUNC int IMAQ_STDCALL imaqDeleteClassifierSample(ClassifierSession* session, int index);
5261IMAQ_FUNC ClassifierAccuracyReport* IMAQ_STDCALL imaqGetClassifierAccuracy(const ClassifierSession* session);
5262IMAQ_FUNC ClassifierSampleInfo* IMAQ_STDCALL imaqGetClassifierSampleInfo(const ClassifierSession* session, int index, int* numSamples);
5263IMAQ_FUNC int IMAQ_STDCALL imaqGetColorClassifierOptions(const ClassifierSession* session, ColorOptions* options);
5264IMAQ_FUNC int IMAQ_STDCALL imaqGetNearestNeighborOptions(const ClassifierSession* session, NearestNeighborOptions* options);
5265IMAQ_FUNC int IMAQ_STDCALL imaqGetParticleClassifierOptions2(const ClassifierSession* session, ParticleClassifierPreprocessingOptions2* preprocessingOptions, ParticleClassifierOptions* options);
5266IMAQ_FUNC ClassifierSession* IMAQ_STDCALL imaqReadClassifierFile(ClassifierSession* session, const char* fileName, ReadClassifierFileMode mode, ClassifierType* type, ClassifierEngineType* engine, String255 description);
5267IMAQ_FUNC int IMAQ_STDCALL imaqRelabelClassifierSample(ClassifierSession* session, int index, const char* newClass);
5268IMAQ_FUNC int IMAQ_STDCALL imaqSetParticleClassifierOptions2(ClassifierSession* session, const ParticleClassifierPreprocessingOptions2* preprocessingOptions, const ParticleClassifierOptions* options);
5269IMAQ_FUNC int IMAQ_STDCALL imaqSetColorClassifierOptions(ClassifierSession* session, const ColorOptions* options);
5270IMAQ_FUNC NearestNeighborTrainingReport* IMAQ_STDCALL imaqTrainNearestNeighborClassifier(ClassifierSession* session, const NearestNeighborOptions* options);
5271IMAQ_FUNC int IMAQ_STDCALL imaqWriteClassifierFile(const ClassifierSession* session, const char* fileName, WriteClassifierFileMode mode, const String255 description);
5272
5273//============================================================================
5274// Measure Distances functions
5275//============================================================================
5276IMAQ_FUNC ClampMax2Report* IMAQ_STDCALL imaqClampMax2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const CurveOptions* curveSettings, const ClampSettings* clampSettings, const ClampOverlaySettings* clampOverlaySettings);
5277
5278//============================================================================
5279// Inspection functions
5280//============================================================================
5281IMAQ_FUNC int IMAQ_STDCALL imaqCompareGoldenTemplate(const Image* image, const Image* goldenTemplate, Image* brightDefects, Image* darkDefects, const InspectionAlignment* alignment, const InspectionOptions* options);
5282IMAQ_FUNC int IMAQ_STDCALL imaqLearnGoldenTemplate(Image* goldenTemplate, PointFloat originOffset, const Image* mask);
5283//============================================================================
5284// Obsolete functions
5285//============================================================================
5286IMAQ_FUNC int IMAQ_STDCALL imaqRotate(Image* dest, const Image* source, float angle, PixelValue fill, InterpolationMethod method);
5287IMAQ_FUNC int IMAQ_STDCALL imaqWritePNGFile(const Image* image, const char* fileName, unsigned int compressionSpeed, const RGBValue* colorTable);
5288IMAQ_FUNC ParticleReport* IMAQ_STDCALL imaqSelectParticles(const Image* image, const ParticleReport* reports, int reportCount, int rejectBorder, const SelectParticleCriteria* criteria, int criteriaCount, int* selectedCount);
5289IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter(Image* dest, Image* source, const ParticleFilterCriteria* criteria, int criteriaCount, int rejectMatches, int connectivity8);
5290IMAQ_FUNC ParticleReport* IMAQ_STDCALL imaqGetParticleInfo(Image* image, int connectivity8, ParticleInfoMode mode, int* reportCount);
5291IMAQ_FUNC int IMAQ_STDCALL imaqCalcCoeff(const Image* image, const ParticleReport* report, MeasurementValue parameter, float* coefficient);
5292IMAQ_FUNC EdgeReport* IMAQ_STDCALL imaqEdgeTool(const Image* image, const Point* points, int numPoints, const EdgeOptions* options, int* numEdges);
5293IMAQ_FUNC CircleReport* IMAQ_STDCALL imaqCircles(Image* dest, const Image* source, float minRadius, float maxRadius, int* numCircles);
5294IMAQ_FUNC int IMAQ_STDCALL imaqLabel(Image* dest, Image* source, int connectivity8, int* particleCount);
5295IMAQ_FUNC int IMAQ_STDCALL imaqFitEllipse(const PointFloat* points, int numPoints, BestEllipse* ellipse);
5296IMAQ_FUNC int IMAQ_STDCALL imaqFitCircle(const PointFloat* points, int numPoints, BestCircle* circle);
5297IMAQ_FUNC Color IMAQ_STDCALL imaqChangeColorSpace(const Color* sourceColor, ColorMode sourceSpace, ColorMode destSpace);
5298IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchPattern(const Image* image, Image* pattern, const MatchPatternOptions* options, Rect searchRect, int* numMatches);
5299IMAQ_FUNC int IMAQ_STDCALL imaqConvex(Image* dest, const Image* source);
5300IMAQ_FUNC int IMAQ_STDCALL imaqIsVisionInfoPresent(const Image* image, VisionInfoType type, int* present);
5301IMAQ_FUNC int IMAQ_STDCALL imaqLineGaugeTool(const Image* image, Point start, Point end, LineGaugeMethod method, const EdgeOptions* edgeOptions, const CoordinateTransform* reference, float* distance);
5302IMAQ_FUNC int IMAQ_STDCALL imaqBestCircle(const PointFloat* points, int numPoints, PointFloat* center, double* radius);
5303IMAQ_FUNC int IMAQ_STDCALL imaqSavePattern(const Image* pattern, const char* fileName);
5304IMAQ_FUNC int IMAQ_STDCALL imaqLoadPattern(Image* pattern, const char* fileName);
5305IMAQ_FUNC int IMAQ_STDCALL imaqTransformROI(ROI* roi, Point originStart, float angleStart, Point originFinal, float angleFinal);
5306IMAQ_FUNC int IMAQ_STDCALL imaqCoordinateReference(const Point* points, ReferenceMode mode, Point* origin, float* angle);
5307IMAQ_FUNC ContourInfo* IMAQ_STDCALL imaqGetContourInfo(const ROI* roi, ContourID id);
5308IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowOverlay(int windowNumber, const Overlay* overlay);
5309IMAQ_FUNC Overlay* IMAQ_STDCALL imaqCreateOverlayFromROI(const ROI* roi);
5310IMAQ_FUNC Overlay* IMAQ_STDCALL imaqCreateOverlayFromMetafile(const void* metafile);
5311IMAQ_FUNC int IMAQ_STDCALL imaqSetCalibrationInfo(Image* image, CalibrationUnit unit, float xDistance, float yDistance);
5312IMAQ_FUNC int IMAQ_STDCALL imaqGetCalibrationInfo(const Image* image, CalibrationUnit* unit, float* xDistance, float* yDistance);
5313IMAQ_FUNC int IMAQ_STDCALL imaqConstructROI(const Image* image, ROI* roi, Tool initialTool, const ToolWindowOptions* tools, const ConstructROIOptions* options, int* okay);
5314IMAQ_FUNC int IMAQ_STDCALL imaqGetParticleClassifierOptions(const ClassifierSession* session, ParticleClassifierPreprocessingOptions* preprocessingOptions, ParticleClassifierOptions* options);
5315IMAQ_FUNC int IMAQ_STDCALL imaqZoomWindow(int windowNumber, int xZoom, int yZoom, Point center);
5316IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowZoom(int windowNumber, int* xZoom, int* yZoom);
5317IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter3(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, const ParticleFilterOptions* options, const ROI* roi, int* numParticles);
5318IMAQ_FUNC ReadTextReport2* IMAQ_STDCALL imaqReadText2(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5319IMAQ_FUNC int IMAQ_STDCALL imaqLearnPattern2(Image* image, LearningMode learningMode, LearnPatternAdvancedOptions* advancedOptions);
5320IMAQ_FUNC int IMAQ_STDCALL imaqConvolve(Image* dest, Image* source, const float* kernel, int matrixRows, int matrixCols, float normalize, const Image* mask);
5321IMAQ_FUNC int IMAQ_STDCALL imaqDivideConstant(Image* dest, const Image* source, PixelValue value);
5322IMAQ_FUNC int IMAQ_STDCALL imaqDivide(Image* dest, const Image* sourceA, const Image* sourceB);
5323IMAQ_FUNC EdgeReport2* IMAQ_STDCALL imaqEdgeTool3(const Image* image, const ROI* roi, EdgeProcess processType, const EdgeOptions2* edgeOptions);
5324IMAQ_FUNC ConcentricRakeReport* IMAQ_STDCALL imaqConcentricRake(const Image* image, const ROI* roi, ConcentricRakeDirection direction, EdgeProcess process, const RakeOptions* options);
5325IMAQ_FUNC SpokeReport* IMAQ_STDCALL imaqSpoke(const Image* image, const ROI* roi, SpokeDirection direction, EdgeProcess process, const SpokeOptions* options);
5326IMAQ_FUNC int IMAQ_STDCALL imaqLearnPattern(Image* image, LearningMode learningMode);
5327IMAQ_FUNC int IMAQ_STDCALL imaqLookup(Image* dest, const Image* source, const short* table, const Image* mask);
5328IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchPattern2(const Image* image, const Image* pattern, const MatchPatternOptions* options, const MatchPatternAdvancedOptions* advancedOptions, Rect searchRect, int* numMatches);
5329IMAQ_FUNC int IMAQ_STDCALL imaqSetParticleClassifierOptions(ClassifierSession* session, const ParticleClassifierPreprocessingOptions* preprocessingOptions, const ParticleClassifierOptions* options);
5330IMAQ_FUNC int IMAQ_STDCALL imaqCopyCalibrationInfo(Image* dest, const Image* source);
5331IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter2(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, int rejectMatches, int connectivity8, int* numParticles);
5332IMAQ_FUNC EdgeReport* IMAQ_STDCALL imaqEdgeTool2(const Image* image, const Point* points, int numPoints, EdgeProcess process, const EdgeOptions* options, int* numEdges);
5333IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRotatedRectContour(ROI* roi, RotatedRect rect);
5334IMAQ_FUNC Barcode2DInfo* IMAQ_STDCALL imaqReadDataMatrixBarcode(const Image* image, const ROI* roi, const DataMatrixOptions* options, unsigned int* numBarcodes);
5335IMAQ_FUNC LinearAverages* IMAQ_STDCALL imaqLinearAverages(const Image* image, Rect rect);
5336IMAQ_FUNC GeometricPatternMatch* IMAQ_STDCALL imaqMatchGeometricPattern(const Image* image, const Image* pattern, const CurveOptions* curveOptions, const MatchGeometricPatternOptions* matchOptions, const MatchGeometricPatternAdvancedOptions* advancedMatchOptions, const ROI* roi, int* numMatches);
5337IMAQ_FUNC CharInfo* IMAQ_STDCALL imaqGetCharInfo(const CharSet* set, int index);
5338IMAQ_FUNC ReadTextReport* IMAQ_STDCALL imaqReadText(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5339IMAQ_FUNC ThresholdData* IMAQ_STDCALL imaqAutoThreshold(Image* dest, Image* source, int numClasses, ThresholdMethod method);
5340IMAQ_FUNC ColorHistogramReport* IMAQ_STDCALL imaqColorHistogram(Image* image, int numClasses, ColorMode mode, const Image* mask);
5341IMAQ_FUNC RakeReport* IMAQ_STDCALL imaqRake(const Image* image, const ROI* roi, RakeDirection direction, EdgeProcess process, const RakeOptions* options);
5342#endif
5343