Now you can download a copy of these docs so you can use them offline! Download now
nivision.h
1 /*============================================================================*/
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 //============================================================================
831 typedef 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 
838 typedef 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 
892 typedef 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 
898 typedef 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 
904 typedef 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 
910 typedef 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 
916 typedef 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 
922 typedef 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 
928 typedef 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 
934 typedef 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 
942 typedef 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 
948 typedef 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 
954 typedef 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 
964 typedef 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 
981 typedef 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 
987 typedef 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 
995 typedef 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 
1001 typedef 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 
1007 typedef 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 
1013 typedef 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 
1021 typedef 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 
1034 typedef 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 
1042 typedef 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 
1050 typedef 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 
1059 typedef 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 
1065 typedef 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 
1084 typedef 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 
1092 typedef 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 
1101 typedef 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 
1108 typedef 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 
1114 typedef 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 
1121 typedef 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 
1128 typedef 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 
1137 typedef 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 
1150 typedef 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 
1161 typedef 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 
1169 typedef 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 
1179 typedef 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 
1186 typedef 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 
1196 typedef 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 
1202 typedef 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 
1219 typedef 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 
1225 typedef 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 
1233 typedef 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 
1239 typedef 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 
1249 typedef 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 
1256 typedef 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 
1272 typedef 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 
1278 typedef 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 
1286 typedef 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 
1292 typedef 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 
1298 typedef 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 
1314 typedef 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 
1323 typedef 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 
1331 typedef 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 
1339 typedef 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 
1346 typedef 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 
1354 typedef 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 
1363 typedef 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 
1375 typedef 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 
1382 typedef 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 
1391 typedef 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 
1400 typedef 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 
1408 typedef 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 
1417 typedef 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 
1424 typedef 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 
1431 typedef 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 
1439 typedef 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 
1445 typedef 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 
1530 typedef 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 
1538 typedef 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 
1546 typedef 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 
1553 typedef 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 
1560 typedef 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 
1566 typedef 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 
1578 typedef 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 
1585 typedef 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 
1592 typedef 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 
1641 typedef 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 
1654 typedef 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 
1660 typedef 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 
1669 typedef 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 
1675 typedef 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 
1682 typedef 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 
1691 typedef 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 
1696 typedef 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 
1705 typedef 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 
1713 typedef 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 
1724 typedef 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 
1730 typedef 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 
1742 typedef 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 
1750 typedef 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 
1779 typedef 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 
1785 typedef 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 
1792 typedef 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 
1799 typedef 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 
1805 typedef 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 
1812 typedef 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 
1818 typedef 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 
1830 typedef 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 
1837 typedef 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 
1843 typedef 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 
1849 typedef 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 
1893 typedef 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 
1899 typedef 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 
1906 typedef 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 
1913 typedef 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 
1920 typedef 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 
1929 typedef 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 
1936 typedef 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 
1944 typedef 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 
1951 typedef 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 
1957 typedef 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 
1964 typedef 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 
1971 typedef 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 
1978 typedef 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 
1993 typedef 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 
1999 typedef 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 
2005 typedef 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 
2016 typedef 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 
2023 typedef 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 
2031 typedef 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 
2037 typedef 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 
2049 typedef 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 
2056 typedef 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 
2062 typedef 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 
2068 typedef 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 
2077 typedef 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 
2086 typedef 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 
2093 typedef 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 
2102 typedef 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 
2114 typedef 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 
2121 typedef 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 
2134 typedef 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 
2144 typedef 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 
2151 typedef 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 
2160 typedef 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 
2166 typedef 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 
2172 typedef 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 
2179 typedef 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 
2185 typedef 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 
2194 typedef 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 
2201 typedef 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 
2207 typedef 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 //============================================================================
2223 typedef struct Image_struct Image;
2224 typedef struct ROI_struct ROI;
2225 typedef struct Overlay_struct Overlay;
2226 typedef struct ClassifierSession_struct ClassifierSession;
2227 typedef struct MultipleGeometricPattern_struct MultipleGeometricPattern;
2228 typedef int ContourID;
2229 typedef unsigned long SESSION_ID;
2230 typedef int AVISession;
2231 typedef char* FilterName;
2232 typedef char String255[256];
2233 typedef struct CharSet_struct CharSet;
2237 typedef struct CharInfo_struct CharInfo;
2238 typedef struct CharReport_struct CharReport;
2239 typedef struct ReadTextReport_struct ReadTextReport;
2240 typedef struct DivisionModel_struct DivisionModel;
2241 typedef struct FocalLength_struct FocalLength;
2242 typedef struct PolyModel_struct PolyModel;
2244 typedef struct PointFloat_struct PointFloat;
2246 typedef struct MaxGridSize_struct MaxGridSize;
2247 typedef struct ImageSize_struct ImageSize;
2252 typedef struct GridDescriptor_struct GridDescriptor;
2255 typedef struct EdgePolarity_struct EdgePolarity;
2256 typedef struct ClampSettings_struct ClampSettings;
2257 typedef struct PointDouble_struct PointDouble;
2259 typedef struct ClampResults_struct ClampResults;
2260 typedef struct ClampPoints_struct ClampPoints;
2261 typedef struct RGBValue_struct RGBValue;
2265 typedef struct LineFloat_struct LineFloat;
2266 typedef struct LineEquation_struct LineEquation;
2269 typedef struct PartialCircle_struct PartialCircle;
2270 typedef struct PartialEllipse_struct PartialEllipse;
2275 typedef struct ROILabel_struct ROILabel;
2280 typedef struct RangeDouble_struct RangeDouble;
2281 typedef struct RangeLabel_struct RangeLabel;
2283 typedef struct Disparity_struct Disparity;
2285 typedef struct MatchMode_struct MatchMode;
2296 typedef struct EdgeOptions2_struct EdgeOptions2;
2302 typedef struct WindowSize_struct WindowSize;
2304 typedef struct WaveletOptions_struct WaveletOptions;
2307 typedef struct RangeFloat_struct RangeFloat;
2313 typedef struct ColorOptions_struct ColorOptions;
2314 typedef struct SampleScore_struct SampleScore;
2319 typedef struct FindEdgeReport_struct FindEdgeReport;
2324 typedef struct CharReport3_struct CharReport3;
2325 typedef struct ArcInfo2_struct ArcInfo2;
2326 typedef struct EdgeReport2_struct EdgeReport2;
2327 typedef struct SearchArcInfo_struct SearchArcInfo;
2329 typedef struct SpokeReport2_struct SpokeReport2;
2330 typedef struct EdgeInfo_struct EdgeInfo;
2331 typedef struct SearchLineInfo_struct SearchLineInfo;
2332 typedef struct RakeReport2_struct RakeReport2;
2338 typedef struct StraightEdge_struct StraightEdge;
2342 typedef struct QRCodeReport_struct QRCodeReport;
2343 typedef struct AIMGradeReport_struct AIMGradeReport;
2352 typedef struct CharReport2_struct CharReport2;
2353 typedef struct CharInfo2_struct CharInfo2;
2355 typedef struct EllipseFeature_struct EllipseFeature;
2356 typedef struct CircleFeature_struct CircleFeature;
2359 typedef struct LegFeature_struct LegFeature;
2360 typedef struct CornerFeature_struct CornerFeature;
2361 typedef struct LineFeature_struct LineFeature;
2365 typedef struct FeatureData_struct FeatureData;
2368 typedef struct LineMatch_struct LineMatch;
2369 typedef struct LineDescriptor_struct LineDescriptor;
2371 typedef struct RectangleMatch_struct RectangleMatch;
2373 typedef struct EllipseMatch_struct EllipseMatch;
2374 typedef struct CircleMatch_struct CircleMatch;
2377 typedef struct Curve_struct Curve;
2378 typedef struct CurveOptions_struct CurveOptions;
2379 typedef struct Barcode2DInfo_struct Barcode2DInfo;
2386 typedef struct ClassScore_struct ClassScore;
2390 typedef struct RGBU64Value_struct RGBU64Value;
2398 typedef struct HSLValue_struct HSLValue;
2399 typedef struct HSVValue_struct HSVValue;
2400 typedef struct HSIValue_struct HSIValue;
2401 typedef struct CIELabValue_struct CIELabValue;
2402 typedef struct CIEXYZValue_struct CIEXYZValue;
2403 typedef union Color2_union Color2;
2404 typedef struct BestEllipse2_struct BestEllipse2;
2406 typedef struct AVIInfo_struct AVIInfo;
2411 typedef struct BestCircle2_struct BestCircle2;
2415 typedef struct CharInfo_struct CharInfo;
2416 #if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
2417 typedef struct Rect_struct Rect;
2418 #endif
2419 typedef struct CharReport_struct CharReport;
2420 typedef struct ReadTextReport_struct ReadTextReport;
2421 #if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
2422 typedef struct Point_struct Point;
2423 #endif
2424 typedef struct Annulus_struct Annulus;
2426 typedef struct EdgeOptions_struct EdgeOptions;
2427 typedef struct EdgeReport_struct EdgeReport;
2428 typedef struct ExtremeReport_struct ExtremeReport;
2429 typedef struct FitLineOptions_struct FitLineOptions;
2430 typedef struct DisplayMapping_struct DisplayMapping;
2432 typedef struct ImageInfo_struct ImageInfo;
2433 typedef struct LCDOptions_struct LCDOptions;
2434 typedef struct LCDReport_struct LCDReport;
2435 typedef struct LCDSegments_struct LCDSegments;
2438 typedef struct Line_struct Line;
2439 typedef struct LinearAverages_struct LinearAverages;
2440 typedef struct LineProfile_struct LineProfile;
2443 typedef struct ArcInfo_struct ArcInfo;
2444 typedef struct AxisReport_struct AxisReport;
2445 typedef struct BarcodeInfo_struct BarcodeInfo;
2446 typedef struct BCGOptions_struct BCGOptions;
2447 typedef struct BestCircle_struct BestCircle;
2448 typedef struct BestEllipse_struct BestEllipse;
2449 typedef struct BestLine_struct BestLine;
2450 typedef struct BrowserOptions_struct BrowserOptions;
2454 typedef struct CaliperOptions_struct CaliperOptions;
2455 typedef struct CaliperReport_struct CaliperReport;
2457 typedef struct CircleReport_struct CircleReport;
2458 typedef struct ClosedContour_struct ClosedContour;
2461 typedef struct Complex_struct Complex;
2464 typedef struct ContourInfo_struct ContourInfo;
2465 typedef union ContourUnion_union ContourUnion;
2466 typedef struct ContourInfo2_struct ContourInfo2;
2467 typedef struct ContourPoint_struct ContourPoint;
2470 typedef struct CannyOptions_struct CannyOptions;
2471 typedef struct Range_struct Range;
2473 typedef struct View3DOptions_struct View3DOptions;
2476 typedef union Color_union Color;
2477 typedef union PixelValue_union PixelValue;
2478 typedef struct OpenContour_struct OpenContour;
2481 typedef struct ParticleReport_struct ParticleReport;
2482 typedef struct PatternMatch_struct PatternMatch;
2483 typedef struct QuantifyData_struct QuantifyData;
2484 typedef struct QuantifyReport_struct QuantifyReport;
2485 typedef struct RakeOptions_struct RakeOptions;
2486 typedef struct RakeReport_struct RakeReport;
2488 typedef struct ShapeReport_struct ShapeReport;
2489 typedef struct MeterArc_struct MeterArc;
2490 typedef struct ThresholdData_struct ThresholdData;
2492 typedef struct SpokeReport_struct SpokeReport;
2495 typedef struct SegmentInfo_struct SegmentInfo;
2497 typedef struct RotatedRect_struct RotatedRect;
2498 typedef struct ROIProfile_struct ROIProfile;
2500 typedef struct SpokeOptions_struct SpokeOptions;
2501 
2502 //============================================================================
2503 // Data Structures
2504 //============================================================================
2505 #if !defined __GNUC__ && !defined _M_X64
2506 #pragma pack(push,1)
2507 #endif
2508 typedef struct DivisionModel_struct {
2509  float kappa; //The learned kappa coefficient of division model.
2510 } DivisionModel;
2511 
2512 typedef struct FocalLength_struct {
2513  float fx; //Focal length in X direction.
2514  float fy; //Focal length in Y direction.
2515 } FocalLength;
2516 
2517 typedef 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 
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.
2529 
2530 typedef struct PointFloat_struct {
2531  float x; //The x-coordinate of the point.
2532  float y; //The y-coordinate of the point.
2533 } PointFloat;
2534 
2536  char isInsufficientData;
2537  FocalLength focalLength;
2538  PointFloat opticalCenter;
2540 
2541 typedef 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 
2546 typedef struct ImageSize_struct {
2547  unsigned int xRes; //X resolution of the image.
2548  unsigned int yRes; //Y resolution of the image.
2549 } ImageSize;
2550 
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.
2559 
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.
2567 
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.
2573 
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.
2581 
2582 typedef 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 
2588 typedef 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 
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.
2606 
2607 typedef struct EdgePolarity_struct {
2608  EdgePolaritySearchMode start;
2609  EdgePolaritySearchMode end;
2610 } EdgePolarity;
2611 
2612 typedef struct ClampSettings_struct {
2613  double angleRange; //Specifies the angle range.
2614  EdgePolarity edgePolarity; //Specifies the edge polarity.
2615 } ClampSettings;
2616 
2617 typedef struct PointDouble_struct {
2618  double x; //The x-coordinate of the point.
2619  double y; //The y-coordinate of the point.
2620 } PointDouble;
2621 
2622 typedef 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 
2627 typedef 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 
2634 typedef 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 
2639 typedef 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 
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.
2657 
2658 typedef 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 
2665  PointDouble* points; //It returns the points of the best-fit B-spline curve.
2666  int numberOfPoints; //Number of Best fit points returned.
2668 
2669 typedef 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 
2674 typedef 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 
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.
2684 
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.
2691 
2692 typedef 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 
2699 typedef 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 
2709  unsigned char* matchSetupData; //String containing the match setup data.
2710  int numMatchSetupData; //Number of match setup data.
2712 
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.
2718 
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.
2723 
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.
2737 
2738 typedef 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 
2744  ROILabel* labelOut; //The Roi labels array.
2745  unsigned int numLabelOut; //The number of elements in labelOut array.
2747 
2748 typedef 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.
2756 
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.
2765 
2766 typedef 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 
2776 typedef struct RangeDouble_struct {
2777  double minValue; //The minimum value of the range.
2778  double maxValue; //The maximum value of the range.
2779 } RangeDouble;
2780 
2781 typedef 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 
2787  ClassifiedCurve* curves;
2788  unsigned int numCurves;
2790 
2791 typedef 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 
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.
2803 
2804 typedef 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 
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.
2821 
2823  ClassifiedDisparity* classifiedDistances; //Disparity array containing the classified distances.
2824  unsigned int numClassifiedDistances; //Number of elements in the disparity array.
2826 
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.
2833 
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.
2840 
2841 typedef 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 
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.
2857 
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.
2862 
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.
2870 
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.
2883 
2884 typedef 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.
2889 
2890 typedef 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 
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.
2912 
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.
2926 
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.
2932 
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.
2945 
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.
2956 
2957 typedef 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 
2964  int x; //length on X direction.
2965  int y; //length on Y direction.
2967 
2968 typedef 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 
2974  int level; //Level/size of matrix.
2975  DisplacementVector displacement; //Displacemnet between pixels to accumulate the matrix.
2977 
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.
2985 
2986 typedef struct RangeFloat_struct {
2987  float minValue; //The minimum value of the range.
2988  float maxValue; //The maximum value of the range.
2989 } RangeFloat;
2990 
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.
2996 
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.
3005 
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.
3012 
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.
3028 
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.
3046 
3047 typedef 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 
3053 typedef 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 
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.
3068 
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.
3076 
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.
3083 
3084 typedef 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.
3097 
3098 typedef 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 
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.
3116 
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.
3131 
3132 typedef 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 
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.
3146 
3147 typedef 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 
3157 typedef 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 
3164 typedef 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 
3172 typedef 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 
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.
3185 
3186 typedef 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 
3195 typedef 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 
3205 typedef 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 
3210 typedef 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 
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.
3225 
3226 typedef 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 
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.
3238 
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.
3245 
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.
3259 
3260 typedef 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 
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.
3282 
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.
3287 
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.
3294 
3295 typedef 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 
3320 typedef 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 
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.
3338 
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.
3350 
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.
3362 
3363 typedef 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.
3385 
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.
3392 
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.
3409 
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.
3415 
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.
3424 
3425 typedef 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 
3435 typedef 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 
3442 typedef 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 
3448 typedef 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 
3455 typedef 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 
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.
3466 
3467 typedef 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.
3474 
3475 typedef 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 
3483 typedef 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 
3490 typedef 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 
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.
3505 
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.
3512 
3513 typedef 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.
3525 
3526 typedef 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 
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.
3551 
3553  PointFloat position; //The center of the closed curve feature.
3554  double arcLength; //The arc length of the closed curve feature.
3556 
3557 typedef 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 
3565 typedef 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 
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.
3576 
3577 typedef 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 
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.
3591 
3592 typedef 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 
3600 typedef 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 
3606 typedef 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.
3610 
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;
3618 
3619 typedef 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 
3629 typedef 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 
3641 typedef 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 
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.
3660 
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.
3669 
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.
3675 
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.
3681 
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.
3691 
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.
3698 
3699 typedef 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 
3704 typedef 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.
3711 
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.
3717 
3719  float scaleDependence; //The relative importance of scale when classifying particles.
3720  float mirrorDependence; //The relative importance of mirror symmetry when classifying particles.
3722 
3723 typedef 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 
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.
3742 
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.
3757 
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.
3768 
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.
3778 
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.
3785 
3786 typedef 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.
3792 
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.
3801 
3802 typedef 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 
3809 typedef 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 
3816 typedef 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 
3823 typedef 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 
3830 typedef 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 
3837 typedef 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 
3847 typedef 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 
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.
3865 
3866 typedef 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 
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.
3886 
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.
3899 
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.
3909 
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.
3917 
3918 typedef 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 
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.
3941 
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.
3953 
3954 typedef 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 
3964 typedef 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)
3971 typedef 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 
3980 typedef 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 
3988 typedef 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)
3995 typedef 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 
4002 typedef 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 
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.
4014 
4015 typedef 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 
4023 typedef 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 
4031 typedef 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 
4037 typedef 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 
4043 typedef 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 
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.
4054 
4055 typedef 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 
4071 typedef 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 
4078 typedef 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 
4085 typedef 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 
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.
4103 
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.
4112 
4113 typedef 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 
4118 typedef 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 
4129 typedef 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 
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.
4152 
4153 typedef 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 
4165 typedef 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 
4171 typedef 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 
4177 typedef 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 
4186 typedef 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 
4192 typedef 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 
4200 typedef 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 
4210 typedef 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 
4220 typedef 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 
4231 typedef 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.
4236 
4237 typedef 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 
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.
4255 
4256 typedef 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 
4262 typedef 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 
4271 typedef 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 
4282 typedef 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 
4288 typedef 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 
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.
4298 
4299 typedef 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.
4304 
4305 typedef struct Complex_struct {
4306  float r; //The real part of the value.
4307  float i; //The imaginary part of the value.
4308 } Complex;
4309 
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.
4321 
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.
4329 
4330 typedef 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 
4337 typedef 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 
4348 typedef 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 
4354 typedef 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 
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.
4368 
4370  CoordinateSystem referenceSystem; //Defines the coordinate system for input coordinates.
4371  CoordinateSystem measurementSystem; //Defines the coordinate system in which the function should perform measurements.
4373 
4374 typedef 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 
4381 typedef struct Range_struct {
4382  int minValue; //The minimum value of the range.
4383  int maxValue; //The maximum value of the range.
4384 } Range;
4385 
4386 typedef 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 
4392 typedef 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 
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.
4413 
4414 typedef 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 
4420 typedef 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 
4428 typedef 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 
4436 typedef 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 
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.
4453 
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.
4460 
4461 typedef 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 
4481 typedef 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 
4489 typedef 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 
4499 typedef 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 
4505 typedef 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 
4514 typedef 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 
4526 typedef 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 
4532 typedef 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 
4539 typedef 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 
4546 typedef 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 
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.
4559 
4560 typedef 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 
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.
4579 
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.
4585 
4586 typedef 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 
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.
4597 
4598 typedef 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 
4606 typedef 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 
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.
4630 
4631 typedef 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__
4648 typedef 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
4657 static const RGBValue IMAQ_RGB_TRANSPARENT = { 0, 0, 0, 1 };
4658 static const RGBValue IMAQ_RGB_RED = { 0, 0, 255, 0 };
4659 static const RGBValue IMAQ_RGB_BLUE = { 255, 0, 0, 0 };
4660 static const RGBValue IMAQ_RGB_GREEN = { 0, 255, 0, 0 };
4661 static const RGBValue IMAQ_RGB_YELLOW = { 0, 255, 255, 0 };
4662 static const RGBValue IMAQ_RGB_WHITE = { 255, 255, 255, 0 };
4663 static const RGBValue IMAQ_RGB_BLACK = { 0, 0, 0, 0 };
4664 #ifndef __GNUC__
4665 #pragma const_seg()
4666 #endif
4667 
4668 //============================================================================
4669 // Backwards Compatibility
4670 //============================================================================
4671 typedef 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 //============================================================================
4680 IMAQ_FUNC int IMAQ_STDCALL imaqAnd(Image* dest, const Image* sourceA, const Image* sourceB);
4681 IMAQ_FUNC int IMAQ_STDCALL imaqAndConstant(Image* dest, const Image* source, PixelValue value);
4682 IMAQ_FUNC int IMAQ_STDCALL imaqCompare(Image* dest, const Image* source, const Image* compareImage, ComparisonFunction compare);
4683 IMAQ_FUNC int IMAQ_STDCALL imaqCompareConstant(Image* dest, const Image* source, PixelValue value, ComparisonFunction compare);
4684 IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifference(Image* dest, const Image* sourceA, const Image* sourceB);
4685 IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifferenceConstant(Image* dest, const Image* source, PixelValue value);
4686 IMAQ_FUNC int IMAQ_STDCALL imaqNand(Image* dest, const Image* sourceA, const Image* sourceB);
4687 IMAQ_FUNC int IMAQ_STDCALL imaqNandConstant(Image* dest, const Image* source, PixelValue value);
4688 IMAQ_FUNC int IMAQ_STDCALL imaqNor(Image* dest, const Image* sourceA, const Image* sourceB);
4689 IMAQ_FUNC int IMAQ_STDCALL imaqNorConstant(Image* dest, const Image* source, PixelValue value);
4690 IMAQ_FUNC int IMAQ_STDCALL imaqOr(Image* dest, const Image* sourceA, const Image* sourceB);
4691 IMAQ_FUNC int IMAQ_STDCALL imaqOrConstant(Image* dest, const Image* source, PixelValue value);
4692 IMAQ_FUNC int IMAQ_STDCALL imaqXnor(Image* dest, const Image* sourceA, const Image* sourceB);
4693 IMAQ_FUNC int IMAQ_STDCALL imaqXnorConstant(Image* dest, const Image* source, PixelValue value);
4694 IMAQ_FUNC int IMAQ_STDCALL imaqXor(Image* dest, const Image* sourceA, const Image* sourceB);
4695 IMAQ_FUNC int IMAQ_STDCALL imaqXorConstant(Image* dest, const Image* source, PixelValue value);
4696 
4697 //============================================================================
4698 // Particle Analysis functions
4699 //============================================================================
4700 IMAQ_FUNC int IMAQ_STDCALL imaqCountParticles(Image* image, int connectivity8, int* numParticles);
4701 IMAQ_FUNC int IMAQ_STDCALL imaqMeasureParticle(Image* image, int particleNumber, int calibrated, MeasurementType measurement, double* value);
4702 IMAQ_FUNC MeasureParticlesReport* IMAQ_STDCALL imaqMeasureParticles(Image* image, MeasureParticlesCalibrationMode calibrationMode, const MeasurementType* measurements, size_t numMeasurements);
4703 IMAQ_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 //============================================================================
4708 IMAQ_FUNC int IMAQ_STDCALL imaqConvexHull(Image* dest, Image* source, int connectivity8);
4709 IMAQ_FUNC int IMAQ_STDCALL imaqDanielssonDistance(Image* dest, Image* source);
4710 IMAQ_FUNC int IMAQ_STDCALL imaqFillHoles(Image* dest, const Image* source, int connectivity8);
4711 IMAQ_FUNC CircleReport* IMAQ_STDCALL imaqFindCircles(Image* dest, Image* source, float minRadius, float maxRadius, int* numCircles);
4712 IMAQ_FUNC int IMAQ_STDCALL imaqLabel2(Image* dest, Image* source, int connectivity8, int* particleCount);
4713 IMAQ_FUNC int IMAQ_STDCALL imaqMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
4714 IMAQ_FUNC int IMAQ_STDCALL imaqRejectBorder(Image* dest, Image* source, int connectivity8);
4715 IMAQ_FUNC int IMAQ_STDCALL imaqSegmentation(Image* dest, Image* source);
4716 IMAQ_FUNC int IMAQ_STDCALL imaqSeparation(Image* dest, Image* source, int erosions, const StructuringElement* structuringElement);
4717 IMAQ_FUNC int IMAQ_STDCALL imaqSimpleDistance(Image* dest, Image* source, const StructuringElement* structuringElement);
4718 IMAQ_FUNC int IMAQ_STDCALL imaqSizeFilter(Image* dest, Image* source, int connectivity8, int erosions, SizeType keepSize, const StructuringElement* structuringElement);
4719 IMAQ_FUNC int IMAQ_STDCALL imaqSkeleton(Image* dest, Image* source, SkeletonMethod method);
4720 
4721 
4722 //============================================================================
4723 // Acquisition functions
4724 //============================================================================
4725 IMAQ_FUNC Image* IMAQ_STDCALL imaqCopyFromRing(SESSION_ID sessionID, Image* image, int imageToCopy, int* imageNumber, Rect rect);
4726 IMAQ_FUNC Image* IMAQ_STDCALL imaqEasyAcquire(const char* interfaceName);
4727 IMAQ_FUNC Image* IMAQ_STDCALL imaqExtractFromRing(SESSION_ID sessionID, int imageToExtract, int* imageNumber);
4728 IMAQ_FUNC Image* IMAQ_STDCALL imaqGrab(SESSION_ID sessionID, Image* image, int immediate);
4729 IMAQ_FUNC int IMAQ_STDCALL imaqReleaseImage(SESSION_ID sessionID);
4730 IMAQ_FUNC int IMAQ_STDCALL imaqSetupGrab(SESSION_ID sessionID, Rect rect);
4731 IMAQ_FUNC int IMAQ_STDCALL imaqSetupRing(SESSION_ID sessionID, Image** images, int numImages, int skipCount, Rect rect);
4732 IMAQ_FUNC int IMAQ_STDCALL imaqSetupSequence(SESSION_ID sessionID, Image** images, int numImages, int skipCount, Rect rect);
4733 IMAQ_FUNC Image* IMAQ_STDCALL imaqSnap(SESSION_ID sessionID, Image* image, Rect rect);
4734 IMAQ_FUNC int IMAQ_STDCALL imaqStartAcquisition(SESSION_ID sessionID);
4735 IMAQ_FUNC int IMAQ_STDCALL imaqStopAcquisition(SESSION_ID sessionID);
4736 
4737 //============================================================================
4738 // Arithmetic functions
4739 //============================================================================
4740 IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifference(Image* dest, const Image* sourceA, const Image* sourceB);
4741 IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifferenceConstant(Image* dest, const Image* source, PixelValue value);
4742 IMAQ_FUNC int IMAQ_STDCALL imaqAdd(Image* dest, const Image* sourceA, const Image* sourceB);
4743 IMAQ_FUNC int IMAQ_STDCALL imaqAddConstant(Image* dest, const Image* source, PixelValue value);
4744 IMAQ_FUNC int IMAQ_STDCALL imaqAverage(Image* dest, const Image* sourceA, const Image* sourceB);
4745 IMAQ_FUNC int IMAQ_STDCALL imaqAverageConstant(Image* dest, const Image* source, PixelValue value);
4746 IMAQ_FUNC int IMAQ_STDCALL imaqDivide2(Image* dest, const Image* sourceA, const Image* sourceB, RoundingMode roundingMode);
4747 IMAQ_FUNC int IMAQ_STDCALL imaqDivideConstant2(Image* dest, const Image* source, PixelValue value, RoundingMode roundingMode);
4748 IMAQ_FUNC int IMAQ_STDCALL imaqMax(Image* dest, const Image* sourceA, const Image* sourceB);
4749 IMAQ_FUNC int IMAQ_STDCALL imaqMaxConstant(Image* dest, const Image* source, PixelValue value);
4750 IMAQ_FUNC int IMAQ_STDCALL imaqMin(Image* dest, const Image* sourceA, const Image* sourceB);
4751 IMAQ_FUNC int IMAQ_STDCALL imaqMinConstant(Image* dest, const Image* source, PixelValue value);
4752 IMAQ_FUNC int IMAQ_STDCALL imaqModulo(Image* dest, const Image* sourceA, const Image* sourceB);
4753 IMAQ_FUNC int IMAQ_STDCALL imaqModuloConstant(Image* dest, const Image* source, PixelValue value);
4754 IMAQ_FUNC int IMAQ_STDCALL imaqMulDiv(Image* dest, const Image* sourceA, const Image* sourceB, float value);
4755 IMAQ_FUNC int IMAQ_STDCALL imaqMultiply(Image* dest, const Image* sourceA, const Image* sourceB);
4756 IMAQ_FUNC int IMAQ_STDCALL imaqMultiplyConstant(Image* dest, const Image* source, PixelValue value);
4757 IMAQ_FUNC int IMAQ_STDCALL imaqSubtract(Image* dest, const Image* sourceA, const Image* sourceB);
4758 IMAQ_FUNC int IMAQ_STDCALL imaqSubtractConstant(Image* dest, const Image* source, PixelValue value);
4759 
4760 //============================================================================
4761 // Caliper functions
4762 //============================================================================
4763 IMAQ_FUNC CaliperReport* IMAQ_STDCALL imaqCaliperTool(const Image* image, const Point* points, int numPoints, const EdgeOptions* edgeOptions, const CaliperOptions* caliperOptions, int* numEdgePairs);
4764 IMAQ_FUNC ConcentricRakeReport2* IMAQ_STDCALL imaqConcentricRake2(Image* image, ROI* roi, ConcentricRakeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
4765 IMAQ_FUNC ExtremeReport* IMAQ_STDCALL imaqDetectExtremes(const double* pixels, int numPixels, DetectionMode mode, const DetectExtremesOptions* options, int* numExtremes);
4766 IMAQ_FUNC int IMAQ_STDCALL imaqDetectRotation(const Image* referenceImage, const Image* testImage, PointFloat referenceCenter, PointFloat testCenter, int radius, float precision, double* angle);
4767 IMAQ_FUNC EdgeReport2* IMAQ_STDCALL imaqEdgeTool4(Image* image, ROI* roi, EdgeProcess processType, EdgeOptions2* edgeOptions, const unsigned int reverseDirection);
4768 IMAQ_FUNC FindEdgeReport* IMAQ_STDCALL imaqFindEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindEdgeOptions2* findEdgeOptions, const StraightEdgeOptions* straightEdgeOptions);
4769 IMAQ_FUNC int IMAQ_STDCALL imaqFindTransformRect2(Image* image, const ROI* roi, FindTransformMode mode, CoordinateSystem* baseSystem, CoordinateSystem* newSystem, const FindTransformRectOptions2* findTransformOptions, const StraightEdgeOptions* straightEdgeOptions, AxisReport* axisReport);
4770 IMAQ_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);
4771 IMAQ_FUNC int IMAQ_STDCALL imaqLineGaugeTool2(const Image* image, Point start, Point end, LineGaugeMethod method, const EdgeOptions* edgeOptions, const CoordinateTransform2* transform, float* distance);
4772 IMAQ_FUNC RakeReport2* IMAQ_STDCALL imaqRake2(Image* image, ROI* roi, RakeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
4773 IMAQ_FUNC PointFloat* IMAQ_STDCALL imaqSimpleEdge(const Image* image, const Point* points, int numPoints, const SimpleEdgeOptions* options, int* numEdges);
4774 IMAQ_FUNC SpokeReport2* IMAQ_STDCALL imaqSpoke2(Image* image, ROI* roi, SpokeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
4775 IMAQ_FUNC StraightEdgeReport2* IMAQ_STDCALL imaqStraightEdge(const Image* image, const ROI* roi, SearchDirection searchDirection, const EdgeOptions2* edgeOptions, const StraightEdgeOptions* straightEdgeOptions);
4776 IMAQ_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 //============================================================================
4781 IMAQ_FUNC int IMAQ_STDCALL imaqCannyEdgeFilter(Image* dest, const Image* source, const CannyOptions* options);
4782 IMAQ_FUNC int IMAQ_STDCALL imaqConvolve2(Image* dest, Image* source, float* kernel, int matrixRows, int matrixCols, float normalize, Image* mask, RoundingMode roundingMode);
4783 IMAQ_FUNC int IMAQ_STDCALL imaqCorrelate(Image* dest, Image* source, const Image* templateImage, Rect rect);
4784 IMAQ_FUNC int IMAQ_STDCALL imaqEdgeFilter(Image* dest, Image* source, OutlineMethod method, const Image* mask);
4785 IMAQ_FUNC int IMAQ_STDCALL imaqLowPass(Image* dest, Image* source, int width, int height, float tolerance, const Image* mask);
4786 IMAQ_FUNC int IMAQ_STDCALL imaqMedianFilter(Image* dest, Image* source, int width, int height, const Image* mask);
4787 IMAQ_FUNC int IMAQ_STDCALL imaqNthOrderFilter(Image* dest, Image* source, int width, int height, int n, const Image* mask);
4788 
4789 //============================================================================
4790 // Drawing functions
4791 //============================================================================
4792 IMAQ_FUNC int IMAQ_STDCALL imaqDrawLineOnImage(Image* dest, const Image* source, DrawMode mode, Point start, Point end, float newPixelValue);
4793 IMAQ_FUNC int IMAQ_STDCALL imaqDrawShapeOnImage(Image* dest, const Image* source, Rect rect, DrawMode mode, ShapeMode shape, float newPixelValue);
4794 IMAQ_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 //============================================================================
4799 IMAQ_FUNC int IMAQ_STDCALL imaqInterlaceCombine(Image* frame, const Image* odd, const Image* even);
4800 IMAQ_FUNC int IMAQ_STDCALL imaqInterlaceSeparate(const Image* frame, Image* odd, Image* even);
4801 
4802 //============================================================================
4803 // Image Information functions
4804 //============================================================================
4805 IMAQ_FUNC char** IMAQ_STDCALL imaqEnumerateCustomKeys(const Image* image, unsigned int* size);
4806 IMAQ_FUNC int IMAQ_STDCALL imaqGetBitDepth(const Image* image, unsigned int* bitDepth);
4807 IMAQ_FUNC int IMAQ_STDCALL imaqGetBytesPerPixel(const Image* image, int* byteCount);
4808 IMAQ_FUNC int IMAQ_STDCALL imaqGetImageInfo(const Image* image, ImageInfo* info);
4809 IMAQ_FUNC int IMAQ_STDCALL imaqGetImageSize(const Image* image, int* width, int* height);
4810 IMAQ_FUNC int IMAQ_STDCALL imaqGetImageType(const Image* image, ImageType* type);
4811 IMAQ_FUNC int IMAQ_STDCALL imaqGetMaskOffset(const Image* image, Point* offset);
4812 IMAQ_FUNC void* IMAQ_STDCALL imaqGetPixelAddress(const Image* image, Point pixel);
4813 IMAQ_FUNC int IMAQ_STDCALL imaqGetVisionInfoTypes(const Image* image, unsigned int* present);
4814 IMAQ_FUNC int IMAQ_STDCALL imaqIsImageEmpty(const Image* image, int* empty);
4815 IMAQ_FUNC void* IMAQ_STDCALL imaqReadCustomData(const Image* image, const char* key, unsigned int* size);
4816 IMAQ_FUNC int IMAQ_STDCALL imaqRemoveCustomData(Image* image, const char* key);
4817 IMAQ_FUNC int IMAQ_STDCALL imaqRemoveVisionInfo2(const Image* image, unsigned int info);
4818 IMAQ_FUNC int IMAQ_STDCALL imaqSetBitDepth(Image* image, unsigned int bitDepth);
4819 IMAQ_FUNC int IMAQ_STDCALL imaqSetImageSize(Image* image, int width, int height);
4820 IMAQ_FUNC int IMAQ_STDCALL imaqSetMaskOffset(Image* image, Point offset);
4821 IMAQ_FUNC int IMAQ_STDCALL imaqWriteCustomData(Image* image, const char* key, const void* data, unsigned int size);
4822 
4823 //============================================================================
4824 // Display functions
4825 //============================================================================
4826 IMAQ_FUNC int IMAQ_STDCALL imaqAreToolsContextSensitive(int* sensitive);
4827 IMAQ_FUNC int IMAQ_STDCALL imaqCloseWindow(int windowNumber);
4828 IMAQ_FUNC int IMAQ_STDCALL imaqDisplayImage(const Image* image, int windowNumber, int resize);
4829 IMAQ_FUNC int IMAQ_STDCALL imaqGetLastKey(char* keyPressed, int* windowNumber, int* modifiers);
4830 IMAQ_FUNC void* IMAQ_STDCALL imaqGetSystemWindowHandle(int windowNumber);
4831 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowCenterPos(int windowNumber, Point* centerPosition);
4832 IMAQ_FUNC int IMAQ_STDCALL imaqSetToolContextSensitivity(int sensitive);
4833 IMAQ_FUNC int IMAQ_STDCALL imaqShowWindow(int windowNumber, int visible);
4834 
4835 //============================================================================
4836 // Image Manipulation functions
4837 //============================================================================
4838 IMAQ_FUNC int IMAQ_STDCALL imaqCast(Image* dest, const Image* source, ImageType type, const float* lookup, int shift);
4839 IMAQ_FUNC int IMAQ_STDCALL imaqCopyRect(Image* dest, const Image* source, Rect rect, Point destLoc);
4840 IMAQ_FUNC int IMAQ_STDCALL imaqDuplicate(Image* dest, const Image* source);
4841 IMAQ_FUNC void* IMAQ_STDCALL imaqFlatten(const Image* image, FlattenType type, CompressionType compression, int quality, unsigned int* size);
4842 IMAQ_FUNC int IMAQ_STDCALL imaqFlip(Image* dest, const Image* source, FlipAxis axis);
4843 IMAQ_FUNC int IMAQ_STDCALL imaqMask(Image* dest, const Image* source, const Image* mask);
4844 IMAQ_FUNC int IMAQ_STDCALL imaqResample(Image* dest, const Image* source, int newWidth, int newHeight, InterpolationMethod method, Rect rect);
4845 IMAQ_FUNC int IMAQ_STDCALL imaqRotate2(Image* dest, const Image* source, float angle, PixelValue fill, InterpolationMethod method, int maintainSize);
4846 IMAQ_FUNC int IMAQ_STDCALL imaqScale(Image* dest, const Image* source, int xScale, int yScale, ScalingMode scaleMode, Rect rect);
4847 IMAQ_FUNC int IMAQ_STDCALL imaqShift(Image* dest, const Image* source, int shiftX, int shiftY, PixelValue fill);
4848 IMAQ_FUNC int IMAQ_STDCALL imaqTranspose(Image* dest, const Image* source);
4849 IMAQ_FUNC int IMAQ_STDCALL imaqUnflatten(Image* image, const void* data, unsigned int size);
4850 IMAQ_FUNC int IMAQ_STDCALL imaqUnwrapImage(Image* dest, const Image* source, Annulus annulus, RectOrientation orientation, InterpolationMethod method);
4851 IMAQ_FUNC int IMAQ_STDCALL imaqView3D(Image* dest, Image* source, const View3DOptions* options);
4852 
4853 //============================================================================
4854 // File I/O functions
4855 //============================================================================
4856 IMAQ_FUNC int IMAQ_STDCALL imaqCloseAVI(AVISession session);
4857 IMAQ_FUNC AVISession IMAQ_STDCALL imaqCreateAVI(const char* fileName, const char* compressionFilter, int quality, unsigned int framesPerSecond, unsigned int maxDataSize);
4858 IMAQ_FUNC int IMAQ_STDCALL imaqGetAVIInfo(AVISession session, AVIInfo* info);
4859 IMAQ_FUNC int IMAQ_STDCALL imaqGetFileInfo(const char* fileName, CalibrationUnit* calibrationUnit, float* calibrationX, float* calibrationY, int* width, int* height, ImageType* imageType);
4860 IMAQ_FUNC FilterName* IMAQ_STDCALL imaqGetFilterNames(int* numFilters);
4861 IMAQ_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);
4862 IMAQ_FUNC AVISession IMAQ_STDCALL imaqOpenAVI(const char* fileName);
4863 IMAQ_FUNC int IMAQ_STDCALL imaqReadAVIFrame(Image* image, AVISession session, unsigned int frameNum, void* data, unsigned int* dataSize);
4864 IMAQ_FUNC int IMAQ_STDCALL imaqReadFile(Image* image, const char* fileName, RGBValue* colorTable, int* numColors);
4865 IMAQ_FUNC int IMAQ_STDCALL imaqReadVisionFile(Image* image, const char* fileName, RGBValue* colorTable, int* numColors);
4866 IMAQ_FUNC int IMAQ_STDCALL imaqWriteAVIFrame(Image* image, AVISession session, const void* data, unsigned int dataLength);
4867 IMAQ_FUNC int IMAQ_STDCALL imaqWriteBMPFile(const Image* image, const char* fileName, int compress, const RGBValue* colorTable);
4868 IMAQ_FUNC int IMAQ_STDCALL imaqWriteFile(const Image* image, const char* fileName, const RGBValue* colorTable);
4869 IMAQ_FUNC int IMAQ_STDCALL imaqWriteJPEGFile(const Image* image, const char* fileName, unsigned int quality, void* colorTable);
4870 IMAQ_FUNC int IMAQ_STDCALL imaqWriteJPEG2000File(const Image* image, const char* fileName, int lossless, float compressionRatio, const JPEG2000FileAdvancedOptions* advancedOptions, const RGBValue* colorTable);
4871 IMAQ_FUNC int IMAQ_STDCALL imaqWritePNGFile2(const Image* image, const char* fileName, unsigned int compressionSpeed, const RGBValue* colorTable, int useBitDepth);
4872 IMAQ_FUNC int IMAQ_STDCALL imaqWriteTIFFFile(const Image* image, const char* fileName, const TIFFFileOptions* options, const RGBValue* colorTable);
4873 IMAQ_FUNC int IMAQ_STDCALL imaqWriteVisionFile(const Image* image, const char* fileName, const RGBValue* colorTable);
4874 
4875 
4876 //============================================================================
4877 // Analytic Geometry functions
4878 //============================================================================
4879 IMAQ_FUNC int IMAQ_STDCALL imaqBuildCoordinateSystem(const Point* points, ReferenceMode mode, AxisOrientation orientation, CoordinateSystem* system);
4880 IMAQ_FUNC BestCircle2* IMAQ_STDCALL imaqFitCircle2(const PointFloat* points, int numPoints, const FitCircleOptions* options);
4881 IMAQ_FUNC BestEllipse2* IMAQ_STDCALL imaqFitEllipse2(const PointFloat* points, int numPoints, const FitEllipseOptions* options);
4882 IMAQ_FUNC BestLine* IMAQ_STDCALL imaqFitLine(const PointFloat* points, int numPoints, const FitLineOptions* options);
4883 IMAQ_FUNC int IMAQ_STDCALL imaqGetAngle(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, float* angle);
4884 IMAQ_FUNC int IMAQ_STDCALL imaqGetBisectingLine(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, PointFloat* bisectStart, PointFloat* bisectEnd);
4885 IMAQ_FUNC int IMAQ_STDCALL imaqGetDistance(PointFloat point1, PointFloat point2, float* distance);
4886 IMAQ_FUNC int IMAQ_STDCALL imaqGetIntersection(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, PointFloat* intersection);
4887 IMAQ_FUNC int IMAQ_STDCALL imaqGetMidLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point, PointFloat* midLineStart, PointFloat* midLineEnd);
4888 IMAQ_FUNC int IMAQ_STDCALL imaqGetPerpendicularLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point, PointFloat* perpLineStart, PointFloat* perpLineEnd, double* distance);
4889 IMAQ_FUNC SegmentInfo* IMAQ_STDCALL imaqGetPointsOnContour(const Image* image, int* numSegments);
4890 IMAQ_FUNC Point* IMAQ_STDCALL imaqGetPointsOnLine(Point start, Point end, int* numPoints);
4891 IMAQ_FUNC int IMAQ_STDCALL imaqGetPolygonArea(const PointFloat* points, int numPoints, float* area);
4892 IMAQ_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 //============================================================================
4897 IMAQ_FUNC int IMAQ_STDCALL imaqClipboardToImage(Image* dest, RGBValue* palette);
4898 IMAQ_FUNC int IMAQ_STDCALL imaqImageToClipboard(const Image* image, const RGBValue* palette);
4899 
4900 //============================================================================
4901 // Border functions
4902 //============================================================================
4903 IMAQ_FUNC int IMAQ_STDCALL imaqFillBorder(Image* image, BorderMethod method);
4904 IMAQ_FUNC int IMAQ_STDCALL imaqGetBorderSize(const Image* image, int* borderSize);
4905 IMAQ_FUNC int IMAQ_STDCALL imaqSetBorderSize(Image* image, int size);
4906 
4907 //============================================================================
4908 // Image Management functions
4909 //============================================================================
4910 IMAQ_FUNC int IMAQ_STDCALL imaqArrayToImage(Image* image, const void* array, int numCols, int numRows);
4911 IMAQ_FUNC Image* IMAQ_STDCALL imaqCreateImage(ImageType type, int borderSize);
4912 IMAQ_FUNC void* IMAQ_STDCALL imaqImageToArray(const Image* image, Rect rect, int* columns, int* rows);
4913 
4914 //============================================================================
4915 // Color Processing functions
4916 //============================================================================
4917 IMAQ_FUNC Color2 IMAQ_STDCALL imaqChangeColorSpace2(const Color2* sourceColor, ColorMode sourceSpace, ColorMode destSpace, double offset, const CIEXYZValue* whiteReference);
4918 IMAQ_FUNC int IMAQ_STDCALL imaqColorBCGTransform(Image* dest, const Image* source, const BCGOptions* redOptions, const BCGOptions* greenOptions, const BCGOptions* blueOptions, const Image* mask);
4919 IMAQ_FUNC int IMAQ_STDCALL imaqColorEqualize(Image* dest, const Image* source, int colorEqualization);
4920 IMAQ_FUNC ColorHistogramReport* IMAQ_STDCALL imaqColorHistogram2(Image* image, int numClasses, ColorMode mode, const CIEXYZValue* whiteReference, Image* mask);
4921 IMAQ_FUNC int IMAQ_STDCALL imaqColorLookup(Image* dest, const Image* source, ColorMode mode, const Image* mask, const short* plane1, const short* plane2, const short* plane3);
4922 IMAQ_FUNC int IMAQ_STDCALL imaqColorThreshold(Image* dest, const Image* source, int replaceValue, ColorMode mode, const Range* plane1Range, const Range* plane2Range, const Range* plane3Range);
4923 IMAQ_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);
4924 IMAQ_FUNC int IMAQ_STDCALL imaqGetColorSegmentationMaxDistance(ClassifierSession* session, const ColorSegmenationOptions* segmentOptions, SegmentationDistanceLevel distLevel, int* maxDistance);
4925 
4926 //============================================================================
4927 // Transform functions
4928 //============================================================================
4929 IMAQ_FUNC int IMAQ_STDCALL imaqBCGTransform(Image* dest, const Image* source, const BCGOptions* options, const Image* mask);
4930 IMAQ_FUNC int IMAQ_STDCALL imaqEqualize(Image* dest, const Image* source, float min, float max, const Image* mask);
4931 IMAQ_FUNC int IMAQ_STDCALL imaqInverse(Image* dest, const Image* source, const Image* mask);
4932 IMAQ_FUNC int IMAQ_STDCALL imaqMathTransform(Image* dest, const Image* source, MathTransformMethod method, float rangeMin, float rangeMax, float power, const Image* mask);
4933 IMAQ_FUNC int IMAQ_STDCALL imaqWatershedTransform(Image* dest, const Image* source, int connectivity8, int* zoneCount);
4934 IMAQ_FUNC int IMAQ_STDCALL imaqLookup2(Image* dest, const Image* source, const int* table, const Image* mask);
4935 
4936 
4937 //============================================================================
4938 // Window Management functions
4939 //============================================================================
4940 IMAQ_FUNC int IMAQ_STDCALL imaqAreScrollbarsVisible(int windowNumber, int* visible);
4941 IMAQ_FUNC int IMAQ_STDCALL imaqBringWindowToTop(int windowNumber);
4942 IMAQ_FUNC int IMAQ_STDCALL imaqGetMousePos(Point* position, int* windowNumber);
4943 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowBackground(int windowNumber, WindowBackgroundFillStyle* fillStyle, WindowBackgroundHatchStyle* hatchStyle, RGBValue* fillColor, RGBValue* backgroundColor);
4944 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowDisplayMapping(int windowNum, DisplayMapping* mapping);
4945 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowGrid(int windowNumber, int* xResolution, int* yResolution);
4946 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowHandle(int* handle);
4947 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowPos(int windowNumber, Point* position);
4948 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowSize(int windowNumber, int* width, int* height);
4949 IMAQ_FUNC char* IMAQ_STDCALL imaqGetWindowTitle(int windowNumber);
4950 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowZoom2(int windowNumber, float* xZoom, float* yZoom);
4951 IMAQ_FUNC int IMAQ_STDCALL imaqIsWindowNonTearing(int windowNumber, int* nonTearing);
4952 IMAQ_FUNC int IMAQ_STDCALL imaqIsWindowVisible(int windowNumber, int* visible);
4953 IMAQ_FUNC int IMAQ_STDCALL imaqMoveWindow(int windowNumber, Point position);
4954 IMAQ_FUNC int IMAQ_STDCALL imaqSetupWindow(int windowNumber, int configuration);
4955 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowBackground(int windowNumber, WindowBackgroundFillStyle fillStyle, WindowBackgroundHatchStyle hatchStyle, const RGBValue* fillColor, const RGBValue* backgroundColor);
4956 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowDisplayMapping(int windowNumber, const DisplayMapping* mapping);
4957 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowGrid(int windowNumber, int xResolution, int yResolution);
4958 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowMaxContourCount(int windowNumber, unsigned int maxContourCount);
4959 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowNonTearing(int windowNumber, int nonTearing);
4960 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowPalette(int windowNumber, PaletteType type, const RGBValue* palette, int numColors);
4961 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowSize(int windowNumber, int width, int height);
4962 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowThreadPolicy(WindowThreadPolicy policy);
4963 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowTitle(int windowNumber, const char* title);
4964 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowZoomToFit(int windowNumber, int zoomToFit);
4965 IMAQ_FUNC int IMAQ_STDCALL imaqShowScrollbars(int windowNumber, int visible);
4966 IMAQ_FUNC int IMAQ_STDCALL imaqZoomWindow2(int windowNumber, float xZoom, float yZoom, Point center);
4967 
4968 //============================================================================
4969 // Utilities functions
4970 //============================================================================
4971 IMAQ_FUNC const float* IMAQ_STDCALL imaqGetKernel(KernelFamily family, int size, int number);
4972 IMAQ_FUNC Annulus IMAQ_STDCALL imaqMakeAnnulus(Point center, int innerRadius, int outerRadius, double startAngle, double endAngle);
4973 IMAQ_FUNC Point IMAQ_STDCALL imaqMakePoint(int xCoordinate, int yCoordinate);
4974 IMAQ_FUNC PointFloat IMAQ_STDCALL imaqMakePointFloat(float xCoordinate, float yCoordinate);
4975 IMAQ_FUNC Rect IMAQ_STDCALL imaqMakeRect(int top, int left, int height, int width);
4976 IMAQ_FUNC Rect IMAQ_STDCALL imaqMakeRectFromRotatedRect(RotatedRect rotatedRect);
4977 IMAQ_FUNC RotatedRect IMAQ_STDCALL imaqMakeRotatedRect(int top, int left, int height, int width, double angle);
4978 IMAQ_FUNC RotatedRect IMAQ_STDCALL imaqMakeRotatedRectFromRect(Rect rect);
4979 IMAQ_FUNC int IMAQ_STDCALL imaqMulticoreOptions(MulticoreOperation operation, unsigned int* customNumCores);
4980 
4981 //============================================================================
4982 // Tool Window functions
4983 //============================================================================
4984 IMAQ_FUNC int IMAQ_STDCALL imaqCloseToolWindow(void);
4985 IMAQ_FUNC int IMAQ_STDCALL imaqGetCurrentTool(Tool* currentTool);
4986 IMAQ_FUNC int IMAQ_STDCALL imaqGetLastEvent(WindowEventType* type, int* windowNumber, Tool* tool, Rect* rect);
4987 IMAQ_FUNC void* IMAQ_STDCALL imaqGetToolWindowHandle(void);
4988 IMAQ_FUNC int IMAQ_STDCALL imaqGetToolWindowPos(Point* position);
4989 IMAQ_FUNC int IMAQ_STDCALL imaqIsToolWindowVisible(int* visible);
4990 IMAQ_FUNC int IMAQ_STDCALL imaqMoveToolWindow(Point position);
4991 IMAQ_FUNC int IMAQ_STDCALL imaqSetCurrentTool(Tool currentTool);
4992 #ifndef __GNUC__
4993 IMAQ_FUNC int IMAQ_STDCALL imaqSetEventCallback(EventCallback callback, int synchronous);
4994 #endif
4995 IMAQ_FUNC int IMAQ_STDCALL imaqSetToolColor(const RGBValue* color);
4996 IMAQ_FUNC int IMAQ_STDCALL imaqSetupToolWindow(int showCoordinates, int maxIconsPerLine, const ToolWindowOptions* options);
4997 IMAQ_FUNC int IMAQ_STDCALL imaqShowToolWindow(int visible);
4998 
4999 //============================================================================
5000 // Meter functions
5001 //============================================================================
5002 IMAQ_FUNC MeterArc* IMAQ_STDCALL imaqGetMeterArc(int lightNeedle, MeterArcMode mode, const ROI* roi, PointFloat base, PointFloat start, PointFloat end);
5003 IMAQ_FUNC int IMAQ_STDCALL imaqReadMeter(const Image* image, const MeterArc* arcInfo, double* percentage, PointFloat* endOfNeedle);
5004 
5005 //============================================================================
5006 // Calibration functions
5007 //============================================================================
5008 IMAQ_FUNC int IMAQ_STDCALL imaqCopyCalibrationInfo2(Image* dest, Image* source, Point offset);
5009 IMAQ_FUNC int IMAQ_STDCALL imaqCorrectCalibratedImage(Image* dest, const Image* source, PixelValue fill, InterpolationMethod method, const ROI* roi);
5010 IMAQ_FUNC CalibrationInfo* IMAQ_STDCALL imaqGetCalibrationInfo2(const Image* image);
5011 IMAQ_FUNC CalibrationInfo* IMAQ_STDCALL imaqGetCalibrationInfo3(Image* image, unsigned int isGetErrorMap);
5012 IMAQ_FUNC int IMAQ_STDCALL imaqLearnCalibrationGrid(Image* image, const ROI* roi, const LearnCalibrationOptions* options, const GridDescriptor* grid, const CoordinateSystem* system, const RangeFloat* range, float* quality);
5013 IMAQ_FUNC int IMAQ_STDCALL imaqLearnCalibrationPoints(Image* image, const CalibrationPoints* points, const ROI* roi, const LearnCalibrationOptions* options, const GridDescriptor* grid, const CoordinateSystem* system, float* quality);
5014 IMAQ_FUNC int IMAQ_STDCALL imaqSetCoordinateSystem(Image* image, const CoordinateSystem* system);
5015 IMAQ_FUNC int IMAQ_STDCALL imaqSetSimpleCalibration(Image* image, ScalingMethod method, int learnTable, const GridDescriptor* grid, const CoordinateSystem* system);
5016 IMAQ_FUNC TransformReport* IMAQ_STDCALL imaqTransformPixelToRealWorld(const Image* image, const PointFloat* pixelCoordinates, int numCoordinates);
5017 IMAQ_FUNC TransformReport* IMAQ_STDCALL imaqTransformRealWorldToPixel(const Image* image, const PointFloat* realWorldCoordinates, int numCoordinates);
5018 IMAQ_FUNC int IMAQ_STDCALL imaqSetSimpleCalibration2(Image* image, const GridDescriptor* gridDescriptor);
5019 IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationSetAxisInfo(Image* image, CoordinateSystem* axisInfo);
5020 IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationGetThumbnailImage(Image* templateImage, Image* image, CalibrationThumbnailType type, unsigned int index);
5021 IMAQ_FUNC GetCalibrationInfoReport* IMAQ_STDCALL imaqCalibrationGetCalibrationInfo(Image* image, unsigned int isGetErrorMap);
5022 IMAQ_FUNC GetCameraParametersReport* IMAQ_STDCALL imaqCalibrationGetCameraParameters(Image* templateImage);
5023 IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationCompactInformation(Image* image);
5024 
5025 //============================================================================
5026 // Pixel Manipulation functions
5027 //============================================================================
5028 IMAQ_FUNC int IMAQ_STDCALL imaqArrayToComplexPlane(Image* dest, const Image* source, const float* newPixels, ComplexPlane plane);
5029 IMAQ_FUNC float* IMAQ_STDCALL imaqComplexPlaneToArray(const Image* image, ComplexPlane plane, Rect rect, int* rows, int* columns);
5030 IMAQ_FUNC int IMAQ_STDCALL imaqExtractColorPlanes(const Image* image, ColorMode mode, Image* plane1, Image* plane2, Image* plane3);
5031 IMAQ_FUNC int IMAQ_STDCALL imaqExtractComplexPlane(Image* dest, const Image* source, ComplexPlane plane);
5032 IMAQ_FUNC int IMAQ_STDCALL imaqFillImage(Image* image, PixelValue value, const Image* mask);
5033 IMAQ_FUNC void* IMAQ_STDCALL imaqGetLine(const Image* image, Point start, Point end, int* numPoints);
5034 IMAQ_FUNC int IMAQ_STDCALL imaqGetPixel(const Image* image, Point pixel, PixelValue* value);
5035 IMAQ_FUNC int IMAQ_STDCALL imaqReplaceColorPlanes(Image* dest, const Image* source, ColorMode mode, const Image* plane1, const Image* plane2, const Image* plane3);
5036 IMAQ_FUNC int IMAQ_STDCALL imaqReplaceComplexPlane(Image* dest, const Image* source, const Image* newValues, ComplexPlane plane);
5037 IMAQ_FUNC int IMAQ_STDCALL imaqSetLine(Image* image, const void* array, int arraySize, Point start, Point end);
5038 IMAQ_FUNC int IMAQ_STDCALL imaqSetPixel(Image* image, Point coord, PixelValue value);
5039 
5040 //============================================================================
5041 // Color Matching functions
5042 //============================================================================
5043 IMAQ_FUNC ColorInformation* IMAQ_STDCALL imaqLearnColor(const Image* image, const ROI* roi, ColorSensitivity sensitivity, int saturation);
5044 IMAQ_FUNC int* IMAQ_STDCALL imaqMatchColor(const Image* image, const ColorInformation* info, const ROI* roi, int* numScores);
5045 
5046 //============================================================================
5047 // Frequency Domain Analysis functions
5048 //============================================================================
5049 IMAQ_FUNC int IMAQ_STDCALL imaqAttenuate(Image* dest, const Image* source, AttenuateMode highlow);
5050 IMAQ_FUNC int IMAQ_STDCALL imaqConjugate(Image* dest, const Image* source);
5051 IMAQ_FUNC int IMAQ_STDCALL imaqFFT(Image* dest, const Image* source);
5052 IMAQ_FUNC int IMAQ_STDCALL imaqFlipFrequencies(Image* dest, const Image* source);
5053 IMAQ_FUNC int IMAQ_STDCALL imaqInverseFFT(Image* dest, const Image* source);
5054 IMAQ_FUNC int IMAQ_STDCALL imaqTruncate(Image* dest, const Image* source, TruncateMode highlow, float ratioToKeep);
5055 
5056 //============================================================================
5057 // Barcode I/O functions
5058 //============================================================================
5059 IMAQ_FUNC int IMAQ_STDCALL imaqGradeDataMatrixBarcodeAIM(const Image* image, AIMGradeReport* report);
5060 IMAQ_FUNC BarcodeInfo* IMAQ_STDCALL imaqReadBarcode(const Image* image, BarcodeType type, const ROI* roi, int validate);
5061 IMAQ_FUNC DataMatrixReport* IMAQ_STDCALL imaqReadDataMatrixBarcode2(Image* image, const ROI* roi, DataMatrixGradingMode prepareForGrading, const DataMatrixDescriptionOptions* descriptionOptions, const DataMatrixSizeOptions* sizeOptions, const DataMatrixSearchOptions* searchOptions);
5062 IMAQ_FUNC Barcode2DInfo* IMAQ_STDCALL imaqReadPDF417Barcode(const Image* image, const ROI* roi, Barcode2DSearchMode searchMode, unsigned int* numBarcodes);
5063 IMAQ_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 //============================================================================
5068 IMAQ_FUNC int IMAQ_STDCALL imaqFindLCDSegments(ROI* roi, const Image* image, const LCDOptions* options);
5069 IMAQ_FUNC LCDReport* IMAQ_STDCALL imaqReadLCD(const Image* image, const ROI* roi, const LCDOptions* options);
5070 
5071 //============================================================================
5072 // Shape Matching functions
5073 //============================================================================
5074 IMAQ_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 //============================================================================
5079 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddAnnulusContour(ROI* roi, Annulus annulus);
5080 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddClosedContour(ROI* roi, const Point* points, int numPoints);
5081 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddLineContour(ROI* roi, Point start, Point end);
5082 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddOpenContour(ROI* roi, const Point* points, int numPoints);
5083 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddOvalContour(ROI* roi, Rect boundingBox);
5084 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddPointContour(ROI* roi, Point point);
5085 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRectContour(ROI* roi, Rect rect);
5086 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRotatedRectContour2(ROI* roi, RotatedRect rect);
5087 IMAQ_FUNC ContourID IMAQ_STDCALL imaqCopyContour(ROI* destRoi, const ROI* sourceRoi, ContourID id);
5088 IMAQ_FUNC ContourID IMAQ_STDCALL imaqGetContour(const ROI* roi, unsigned int index);
5089 IMAQ_FUNC int IMAQ_STDCALL imaqGetContourColor(const ROI* roi, ContourID id, RGBValue* contourColor);
5090 IMAQ_FUNC int IMAQ_STDCALL imaqGetContourCount(const ROI* roi);
5091 IMAQ_FUNC ContourInfo2* IMAQ_STDCALL imaqGetContourInfo2(const ROI* roi, ContourID id);
5092 IMAQ_FUNC int IMAQ_STDCALL imaqMoveContour(ROI* roi, ContourID id, int deltaX, int deltaY);
5093 IMAQ_FUNC int IMAQ_STDCALL imaqRemoveContour(ROI* roi, ContourID id);
5094 IMAQ_FUNC int IMAQ_STDCALL imaqSetContourColor(ROI* roi, ContourID id, const RGBValue* color);
5095 
5096 //============================================================================
5097 // Regions of Interest functions
5098 //============================================================================
5099 IMAQ_FUNC int IMAQ_STDCALL imaqConstructROI2(const Image* image, ROI* roi, Tool initialTool, const ToolWindowOptions* tools, const ConstructROIOptions2* options, int* okay);
5100 IMAQ_FUNC ROI* IMAQ_STDCALL imaqCreateROI(void);
5101 IMAQ_FUNC int IMAQ_STDCALL imaqGetROIBoundingBox(const ROI* roi, Rect* boundingBox);
5102 IMAQ_FUNC int IMAQ_STDCALL imaqGetROIColor(const ROI* roi, RGBValue* roiColor);
5103 IMAQ_FUNC ROI* IMAQ_STDCALL imaqGetWindowROI(int windowNumber);
5104 IMAQ_FUNC int IMAQ_STDCALL imaqSetROIColor(ROI* roi, const RGBValue* color);
5105 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowROI(int windowNumber, const ROI* roi);
5106 
5107 //============================================================================
5108 // Image Analysis functions
5109 //============================================================================
5110 IMAQ_FUNC int IMAQ_STDCALL imaqCentroid(const Image* image, PointFloat* centroid, const Image* mask);
5111 IMAQ_FUNC Curve* IMAQ_STDCALL imaqExtractCurves(const Image* image, const ROI* roi, const CurveOptions* curveOptions, unsigned int* numCurves);
5112 IMAQ_FUNC HistogramReport* IMAQ_STDCALL imaqHistogram(const Image* image, int numClasses, float min, float max, const Image* mask);
5113 IMAQ_FUNC LinearAverages* IMAQ_STDCALL imaqLinearAverages2(Image* image, LinearAveragesMode mode, Rect rect);
5114 IMAQ_FUNC LineProfile* IMAQ_STDCALL imaqLineProfile(const Image* image, Point start, Point end);
5115 IMAQ_FUNC QuantifyReport* IMAQ_STDCALL imaqQuantify(const Image* image, const Image* mask);
5116 
5117 //============================================================================
5118 // Error Management functions
5119 //============================================================================
5120 IMAQ_FUNC int IMAQ_STDCALL imaqClearError(void);
5121 IMAQ_FUNC char* IMAQ_STDCALL imaqGetErrorText(int errorCode);
5122 IMAQ_FUNC int IMAQ_STDCALL imaqGetLastError(void);
5123 IMAQ_FUNC const char* IMAQ_STDCALL imaqGetLastErrorFunc(void);
5124 IMAQ_FUNC int IMAQ_STDCALL imaqSetError(int errorCode, const char* function);
5125 
5126 //============================================================================
5127 // Threshold functions
5128 //============================================================================
5129 IMAQ_FUNC ThresholdData* IMAQ_STDCALL imaqAutoThreshold2(Image* dest, const Image* source, int numClasses, ThresholdMethod method, const Image* mask);
5130 IMAQ_FUNC int IMAQ_STDCALL imaqLocalThreshold(Image* dest, const Image* source, unsigned int windowWidth, unsigned int windowHeight, LocalThresholdMethod method, double deviationWeight, ObjectType type, float replaceValue);
5131 IMAQ_FUNC int IMAQ_STDCALL imaqMagicWand(Image* dest, const Image* source, Point coord, float tolerance, int connectivity8, float replaceValue);
5132 IMAQ_FUNC int IMAQ_STDCALL imaqMultithreshold(Image* dest, const Image* source, const ThresholdData* ranges, int numRanges);
5133 IMAQ_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 //============================================================================
5138 IMAQ_FUNC int IMAQ_STDCALL imaqDispose(void* object);
5139 
5140 //============================================================================
5141 // Pattern Matching functions
5142 //============================================================================
5143 IMAQ_FUNC CircleMatch* IMAQ_STDCALL imaqDetectCircles(const Image* image, const CircleDescriptor* circleDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5144 IMAQ_FUNC EllipseMatch* IMAQ_STDCALL imaqDetectEllipses(const Image* image, const EllipseDescriptor* ellipseDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5145 IMAQ_FUNC LineMatch* IMAQ_STDCALL imaqDetectLines(const Image* image, const LineDescriptor* lineDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5146 IMAQ_FUNC RectangleMatch* IMAQ_STDCALL imaqDetectRectangles(const Image* image, const RectangleDescriptor* rectangleDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
5147 IMAQ_FUNC FeatureData* IMAQ_STDCALL imaqGetGeometricFeaturesFromCurves(const Curve* curves, unsigned int numCurves, const FeatureType* featureTypes, unsigned int numFeatureTypes, unsigned int* numFeatures);
5148 IMAQ_FUNC FeatureData* IMAQ_STDCALL imaqGetGeometricTemplateFeatureInfo(const Image* pattern, unsigned int* numFeatures);
5149 IMAQ_FUNC int IMAQ_STDCALL imaqLearnColorPattern(Image* image, const LearnColorPatternOptions* options);
5150 IMAQ_FUNC int IMAQ_STDCALL imaqLearnGeometricPattern(Image* image, PointFloat originOffset, const CurveOptions* curveOptions, const LearnGeometricPatternAdvancedOptions* advancedLearnOptions, const Image* mask);
5151 IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL imaqLearnMultipleGeometricPatterns(const Image** patterns, unsigned int numberOfPatterns, const String255* labels);
5152 IMAQ_FUNC int IMAQ_STDCALL imaqLearnPattern3(Image* image, LearningMode learningMode, LearnPatternAdvancedOptions* advancedOptions, const Image* mask);
5153 IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchColorPattern(const Image* image, Image* pattern, const MatchColorPatternOptions* options, Rect searchRect, int* numMatches);
5154 IMAQ_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);
5155 IMAQ_FUNC GeometricPatternMatch2* IMAQ_STDCALL imaqMatchMultipleGeometricPatterns(const Image* image, const MultipleGeometricPattern* multiplePattern, const ROI* roi, int* numMatches);
5156 IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL imaqReadMultipleGeometricPatternFile(const char* fileName, String255 description);
5157 IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqRefineMatches(const Image* image, const Image* pattern, const PatternMatch* candidatesIn, int numCandidatesIn, MatchPatternOptions* options, MatchPatternAdvancedOptions* advancedOptions, int* numCandidatesOut);
5158 IMAQ_FUNC int IMAQ_STDCALL imaqSetMultipleGeometricPatternsOptions(MultipleGeometricPattern* multiplePattern, const char* label, const CurveOptions* curveOptions, const MatchGeometricPatternOptions* matchOptions, const MatchGeometricPatternAdvancedOptions2* advancedMatchOptions);
5159 IMAQ_FUNC int IMAQ_STDCALL imaqWriteMultipleGeometricPatternFile(const MultipleGeometricPattern* multiplePattern, const char* fileName, const char* description);
5160 IMAQ_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);
5161 IMAQ_FUNC int IMAQ_STDCALL imaqLearnGeometricPattern2(Image* image, PointFloat originOffset, double angleOffset, const CurveOptions* curveOptions, const LearnGeometricPatternAdvancedOptions2* advancedLearnOptions, const Image* mask);
5162 IMAQ_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 //============================================================================
5167 IMAQ_FUNC int IMAQ_STDCALL imaqClearOverlay(Image* image, const char* group);
5168 IMAQ_FUNC int IMAQ_STDCALL imaqCopyOverlay(Image* dest, const Image* source, const char* group);
5169 IMAQ_FUNC int IMAQ_STDCALL imaqGetOverlayProperties(const Image* image, const char* group, TransformBehaviors* transformBehaviors);
5170 IMAQ_FUNC int IMAQ_STDCALL imaqMergeOverlay(Image* dest, const Image* source, const RGBValue* palette, unsigned int numColors, const char* group);
5171 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayArc(Image* image, const ArcInfo* arc, const RGBValue* color, DrawMode drawMode, const char* group);
5172 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayBitmap(Image* image, Point destLoc, const RGBValue* bitmap, unsigned int numCols, unsigned int numRows, const char* group);
5173 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayClosedContour(Image* image, const Point* points, int numPoints, const RGBValue* color, DrawMode drawMode, const char* group);
5174 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayLine(Image* image, Point start, Point end, const RGBValue* color, const char* group);
5175 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayMetafile(Image* image, const void* metafile, Rect rect, const char* group);
5176 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOpenContour(Image* image, const Point* points, int numPoints, const RGBValue* color, const char* group);
5177 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOval(Image* image, Rect boundingBox, const RGBValue* color, DrawMode drawMode, char* group);
5178 IMAQ_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);
5179 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayRect(Image* image, Rect rect, const RGBValue* color, DrawMode drawMode, const char* group);
5180 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayROI(Image* image, const ROI* roi, PointSymbol symbol, const UserPointSymbol* userSymbol, const char* group);
5181 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayText(Image* image, Point origin, const char* text, const RGBValue* color, const OverlayTextOptions* options, const char* group);
5182 IMAQ_FUNC int IMAQ_STDCALL imaqSetOverlayProperties(Image* image, const char* group, TransformBehaviors* transformBehaviors);
5183 
5184 //============================================================================
5185 // OCR functions
5186 //============================================================================
5187 IMAQ_FUNC CharSet* IMAQ_STDCALL imaqCreateCharSet(void);
5188 IMAQ_FUNC int IMAQ_STDCALL imaqDeleteChar(CharSet* set, int index);
5189 IMAQ_FUNC int IMAQ_STDCALL imaqGetCharCount(const CharSet* set);
5190 IMAQ_FUNC CharInfo2* IMAQ_STDCALL imaqGetCharInfo2(const CharSet* set, int index);
5191 IMAQ_FUNC int IMAQ_STDCALL imaqReadOCRFile(const char* fileName, CharSet* set, String255 setDescription, ReadTextOptions* readOptions, OCRProcessingOptions* processingOptions, OCRSpacingOptions* spacingOptions);
5192 IMAQ_FUNC ReadTextReport3* IMAQ_STDCALL imaqReadText3(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5193 IMAQ_FUNC int IMAQ_STDCALL imaqRenameChar(CharSet* set, int index, const char* newCharValue);
5194 IMAQ_FUNC int IMAQ_STDCALL imaqSetReferenceChar(const CharSet* set, int index, int isReferenceChar);
5195 IMAQ_FUNC int IMAQ_STDCALL imaqTrainChars(const Image* image, CharSet* set, int index, const char* charValue, const ROI* roi, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5196 IMAQ_FUNC int* IMAQ_STDCALL imaqVerifyPatterns(const Image* image, const CharSet* set, const String255* expectedPatterns, int patternCount, const ROI* roi, int* numScores);
5197 IMAQ_FUNC int* IMAQ_STDCALL imaqVerifyText(const Image* image, const CharSet* set, const char* expectedString, const ROI* roi, int* numScores);
5198 IMAQ_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 //============================================================================
5203 IMAQ_FUNC ExtractContourReport* IMAQ_STDCALL imaqExtractContour(Image* image, const ROI* roi, ExtractContourDirection direction, CurveParameters* curveParams, const ConnectionConstraint* connectionConstraintParams, unsigned int numOfConstraints, ExtractContourSelection selection, Image* contourImage);
5204 IMAQ_FUNC int IMAQ_STDCALL imaqContourOverlay(Image* image, const Image* contourImage, const ContourOverlaySettings* pointsSettings, const ContourOverlaySettings* eqnSettings, const char* groupName);
5205 IMAQ_FUNC ContourComputeCurvatureReport* IMAQ_STDCALL imaqContourComputeCurvature(const Image* contourImage, unsigned int kernel);
5206 IMAQ_FUNC CurvatureAnalysisReport* IMAQ_STDCALL imaqContourClassifyCurvature(const Image* contourImage, unsigned int kernel, RangeLabel* curvatureClasses, unsigned int numCurvatureClasses);
5207 IMAQ_FUNC ComputeDistancesReport* IMAQ_STDCALL imaqContourComputeDistances(const Image* targetImage, const Image* templateImage, const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel);
5208 IMAQ_FUNC ClassifyDistancesReport* IMAQ_STDCALL imaqContourClassifyDistances(const Image* targetImage, const Image* templateImage, const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel, const RangeLabel* distanceRanges, unsigned int numDistanceRanges);
5209 IMAQ_FUNC ContourInfoReport* IMAQ_STDCALL imaqContourInfo(const Image* contourImage);
5210 IMAQ_FUNC SetupMatchPatternData* IMAQ_STDCALL imaqContourSetupMatchPattern(MatchMode* matchMode, unsigned int enableSubPixelAccuracy, CurveParameters* curveParams, unsigned int useLearnCurveParameters, const RangeSettingDouble* rangeSettings, unsigned int numRangeSettings);
5211 IMAQ_FUNC int IMAQ_STDCALL imaqContourAdvancedSetupMatchPattern(SetupMatchPatternData* matchSetupData, GeometricAdvancedSetupDataOption* geometricOptions, unsigned int numGeometricOptions);
5212 IMAQ_FUNC ContourFitLineReport* IMAQ_STDCALL imaqContourFitLine(Image* image, double pixelRadius);
5213 IMAQ_FUNC PartialCircle* IMAQ_STDCALL imaqContourFitCircle(Image* image, double pixelRadius, int rejectOutliers);
5214 IMAQ_FUNC PartialEllipse* IMAQ_STDCALL imaqContourFitEllipse(Image* image, double pixelRadius, int rejectOutliers);
5215 IMAQ_FUNC ContourFitSplineReport* IMAQ_STDCALL imaqContourFitSpline(Image* image, int degree, int numberOfControlPoints);
5216 IMAQ_FUNC ContourFitPolynomialReport* IMAQ_STDCALL imaqContourFitPolynomial(Image* image, int order);
5217 
5218 //============================================================================
5219 // Edge Detection functions
5220 //============================================================================
5221 IMAQ_FUNC FindCircularEdgeReport* IMAQ_STDCALL imaqFindCircularEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindCircularEdgeOptions* edgeOptions, const CircleFitOptions* circleFitOptions);
5222 IMAQ_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 //============================================================================
5227 IMAQ_FUNC int IMAQ_STDCALL imaqGrayMorphologyReconstruct(Image* dstImage, Image* srcImage, const Image* markerImage, PointFloat* points, int numOfPoints, MorphologyReconstructOperation operation, const StructuringElement* structuringElement, const ROI* roi);
5228 IMAQ_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 //============================================================================
5233 IMAQ_FUNC int IMAQ_STDCALL imaqDetectTextureDefect(ClassifierSession* session, Image* destImage, const Image* srcImage, const ROI* roi, int initialStepSize, int finalStepSize, unsigned char defectPixelValue, double minClassificationScore);
5234 IMAQ_FUNC int IMAQ_STDCALL imaqClassificationTextureDefectOptions(ClassifierSession* session, WindowSize* windowOptions, WaveletOptions* waveletOptions, void** bandsUsed, int* numBandsUsed, CooccurrenceOptions* cooccurrenceOptions, unsigned char setOperation);
5235 IMAQ_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);
5236 IMAQ_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);
5237 IMAQ_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 //============================================================================
5242 IMAQ_FUNC ROI* IMAQ_STDCALL imaqMaskToROI(const Image* mask, int* withinLimit);
5243 IMAQ_FUNC ROIProfile* IMAQ_STDCALL imaqROIProfile(const Image* image, const ROI* roi);
5244 IMAQ_FUNC int IMAQ_STDCALL imaqROIToMask(Image* mask, const ROI* roi, int fillValue, const Image* imageModel, int* inSpace);
5245 IMAQ_FUNC int IMAQ_STDCALL imaqTransformROI2(ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem);
5246 IMAQ_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 //============================================================================
5251 IMAQ_FUNC int IMAQ_STDCALL imaqGrayMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
5252 
5253 //============================================================================
5254 // Classification functions
5255 //============================================================================
5256 IMAQ_FUNC int IMAQ_STDCALL imaqAddClassifierSample(Image* image, ClassifierSession* session, const ROI* roi, const char* sampleClass, double* featureVector, unsigned int vectorSize);
5257 IMAQ_FUNC ClassifierReportAdvanced* IMAQ_STDCALL imaqAdvanceClassify(Image* image, const ClassifierSession* session, const ROI* roi, double* featureVector, unsigned int vectorSize);
5258 IMAQ_FUNC ClassifierReport* IMAQ_STDCALL imaqClassify(Image* image, const ClassifierSession* session, const ROI* roi, double* featureVector, unsigned int vectorSize);
5259 IMAQ_FUNC ClassifierSession* IMAQ_STDCALL imaqCreateClassifier(ClassifierType type);
5260 IMAQ_FUNC int IMAQ_STDCALL imaqDeleteClassifierSample(ClassifierSession* session, int index);
5261 IMAQ_FUNC ClassifierAccuracyReport* IMAQ_STDCALL imaqGetClassifierAccuracy(const ClassifierSession* session);
5262 IMAQ_FUNC ClassifierSampleInfo* IMAQ_STDCALL imaqGetClassifierSampleInfo(const ClassifierSession* session, int index, int* numSamples);
5263 IMAQ_FUNC int IMAQ_STDCALL imaqGetColorClassifierOptions(const ClassifierSession* session, ColorOptions* options);
5264 IMAQ_FUNC int IMAQ_STDCALL imaqGetNearestNeighborOptions(const ClassifierSession* session, NearestNeighborOptions* options);
5265 IMAQ_FUNC int IMAQ_STDCALL imaqGetParticleClassifierOptions2(const ClassifierSession* session, ParticleClassifierPreprocessingOptions2* preprocessingOptions, ParticleClassifierOptions* options);
5266 IMAQ_FUNC ClassifierSession* IMAQ_STDCALL imaqReadClassifierFile(ClassifierSession* session, const char* fileName, ReadClassifierFileMode mode, ClassifierType* type, ClassifierEngineType* engine, String255 description);
5267 IMAQ_FUNC int IMAQ_STDCALL imaqRelabelClassifierSample(ClassifierSession* session, int index, const char* newClass);
5268 IMAQ_FUNC int IMAQ_STDCALL imaqSetParticleClassifierOptions2(ClassifierSession* session, const ParticleClassifierPreprocessingOptions2* preprocessingOptions, const ParticleClassifierOptions* options);
5269 IMAQ_FUNC int IMAQ_STDCALL imaqSetColorClassifierOptions(ClassifierSession* session, const ColorOptions* options);
5270 IMAQ_FUNC NearestNeighborTrainingReport* IMAQ_STDCALL imaqTrainNearestNeighborClassifier(ClassifierSession* session, const NearestNeighborOptions* options);
5271 IMAQ_FUNC int IMAQ_STDCALL imaqWriteClassifierFile(const ClassifierSession* session, const char* fileName, WriteClassifierFileMode mode, const String255 description);
5272 
5273 //============================================================================
5274 // Measure Distances functions
5275 //============================================================================
5276 IMAQ_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 //============================================================================
5281 IMAQ_FUNC int IMAQ_STDCALL imaqCompareGoldenTemplate(const Image* image, const Image* goldenTemplate, Image* brightDefects, Image* darkDefects, const InspectionAlignment* alignment, const InspectionOptions* options);
5282 IMAQ_FUNC int IMAQ_STDCALL imaqLearnGoldenTemplate(Image* goldenTemplate, PointFloat originOffset, const Image* mask);
5283 //============================================================================
5284 // Obsolete functions
5285 //============================================================================
5286 IMAQ_FUNC int IMAQ_STDCALL imaqRotate(Image* dest, const Image* source, float angle, PixelValue fill, InterpolationMethod method);
5287 IMAQ_FUNC int IMAQ_STDCALL imaqWritePNGFile(const Image* image, const char* fileName, unsigned int compressionSpeed, const RGBValue* colorTable);
5288 IMAQ_FUNC ParticleReport* IMAQ_STDCALL imaqSelectParticles(const Image* image, const ParticleReport* reports, int reportCount, int rejectBorder, const SelectParticleCriteria* criteria, int criteriaCount, int* selectedCount);
5289 IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter(Image* dest, Image* source, const ParticleFilterCriteria* criteria, int criteriaCount, int rejectMatches, int connectivity8);
5290 IMAQ_FUNC ParticleReport* IMAQ_STDCALL imaqGetParticleInfo(Image* image, int connectivity8, ParticleInfoMode mode, int* reportCount);
5291 IMAQ_FUNC int IMAQ_STDCALL imaqCalcCoeff(const Image* image, const ParticleReport* report, MeasurementValue parameter, float* coefficient);
5292 IMAQ_FUNC EdgeReport* IMAQ_STDCALL imaqEdgeTool(const Image* image, const Point* points, int numPoints, const EdgeOptions* options, int* numEdges);
5293 IMAQ_FUNC CircleReport* IMAQ_STDCALL imaqCircles(Image* dest, const Image* source, float minRadius, float maxRadius, int* numCircles);
5294 IMAQ_FUNC int IMAQ_STDCALL imaqLabel(Image* dest, Image* source, int connectivity8, int* particleCount);
5295 IMAQ_FUNC int IMAQ_STDCALL imaqFitEllipse(const PointFloat* points, int numPoints, BestEllipse* ellipse);
5296 IMAQ_FUNC int IMAQ_STDCALL imaqFitCircle(const PointFloat* points, int numPoints, BestCircle* circle);
5297 IMAQ_FUNC Color IMAQ_STDCALL imaqChangeColorSpace(const Color* sourceColor, ColorMode sourceSpace, ColorMode destSpace);
5298 IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchPattern(const Image* image, Image* pattern, const MatchPatternOptions* options, Rect searchRect, int* numMatches);
5299 IMAQ_FUNC int IMAQ_STDCALL imaqConvex(Image* dest, const Image* source);
5300 IMAQ_FUNC int IMAQ_STDCALL imaqIsVisionInfoPresent(const Image* image, VisionInfoType type, int* present);
5301 IMAQ_FUNC int IMAQ_STDCALL imaqLineGaugeTool(const Image* image, Point start, Point end, LineGaugeMethod method, const EdgeOptions* edgeOptions, const CoordinateTransform* reference, float* distance);
5302 IMAQ_FUNC int IMAQ_STDCALL imaqBestCircle(const PointFloat* points, int numPoints, PointFloat* center, double* radius);
5303 IMAQ_FUNC int IMAQ_STDCALL imaqSavePattern(const Image* pattern, const char* fileName);
5304 IMAQ_FUNC int IMAQ_STDCALL imaqLoadPattern(Image* pattern, const char* fileName);
5305 IMAQ_FUNC int IMAQ_STDCALL imaqTransformROI(ROI* roi, Point originStart, float angleStart, Point originFinal, float angleFinal);
5306 IMAQ_FUNC int IMAQ_STDCALL imaqCoordinateReference(const Point* points, ReferenceMode mode, Point* origin, float* angle);
5307 IMAQ_FUNC ContourInfo* IMAQ_STDCALL imaqGetContourInfo(const ROI* roi, ContourID id);
5308 IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowOverlay(int windowNumber, const Overlay* overlay);
5309 IMAQ_FUNC Overlay* IMAQ_STDCALL imaqCreateOverlayFromROI(const ROI* roi);
5310 IMAQ_FUNC Overlay* IMAQ_STDCALL imaqCreateOverlayFromMetafile(const void* metafile);
5311 IMAQ_FUNC int IMAQ_STDCALL imaqSetCalibrationInfo(Image* image, CalibrationUnit unit, float xDistance, float yDistance);
5312 IMAQ_FUNC int IMAQ_STDCALL imaqGetCalibrationInfo(const Image* image, CalibrationUnit* unit, float* xDistance, float* yDistance);
5313 IMAQ_FUNC int IMAQ_STDCALL imaqConstructROI(const Image* image, ROI* roi, Tool initialTool, const ToolWindowOptions* tools, const ConstructROIOptions* options, int* okay);
5314 IMAQ_FUNC int IMAQ_STDCALL imaqGetParticleClassifierOptions(const ClassifierSession* session, ParticleClassifierPreprocessingOptions* preprocessingOptions, ParticleClassifierOptions* options);
5315 IMAQ_FUNC int IMAQ_STDCALL imaqZoomWindow(int windowNumber, int xZoom, int yZoom, Point center);
5316 IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowZoom(int windowNumber, int* xZoom, int* yZoom);
5317 IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter3(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, const ParticleFilterOptions* options, const ROI* roi, int* numParticles);
5318 IMAQ_FUNC ReadTextReport2* IMAQ_STDCALL imaqReadText2(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5319 IMAQ_FUNC int IMAQ_STDCALL imaqLearnPattern2(Image* image, LearningMode learningMode, LearnPatternAdvancedOptions* advancedOptions);
5320 IMAQ_FUNC int IMAQ_STDCALL imaqConvolve(Image* dest, Image* source, const float* kernel, int matrixRows, int matrixCols, float normalize, const Image* mask);
5321 IMAQ_FUNC int IMAQ_STDCALL imaqDivideConstant(Image* dest, const Image* source, PixelValue value);
5322 IMAQ_FUNC int IMAQ_STDCALL imaqDivide(Image* dest, const Image* sourceA, const Image* sourceB);
5323 IMAQ_FUNC EdgeReport2* IMAQ_STDCALL imaqEdgeTool3(const Image* image, const ROI* roi, EdgeProcess processType, const EdgeOptions2* edgeOptions);
5324 IMAQ_FUNC ConcentricRakeReport* IMAQ_STDCALL imaqConcentricRake(const Image* image, const ROI* roi, ConcentricRakeDirection direction, EdgeProcess process, const RakeOptions* options);
5325 IMAQ_FUNC SpokeReport* IMAQ_STDCALL imaqSpoke(const Image* image, const ROI* roi, SpokeDirection direction, EdgeProcess process, const SpokeOptions* options);
5326 IMAQ_FUNC int IMAQ_STDCALL imaqLearnPattern(Image* image, LearningMode learningMode);
5327 IMAQ_FUNC int IMAQ_STDCALL imaqLookup(Image* dest, const Image* source, const short* table, const Image* mask);
5328 IMAQ_FUNC PatternMatch* IMAQ_STDCALL imaqMatchPattern2(const Image* image, const Image* pattern, const MatchPatternOptions* options, const MatchPatternAdvancedOptions* advancedOptions, Rect searchRect, int* numMatches);
5329 IMAQ_FUNC int IMAQ_STDCALL imaqSetParticleClassifierOptions(ClassifierSession* session, const ParticleClassifierPreprocessingOptions* preprocessingOptions, const ParticleClassifierOptions* options);
5330 IMAQ_FUNC int IMAQ_STDCALL imaqCopyCalibrationInfo(Image* dest, const Image* source);
5331 IMAQ_FUNC int IMAQ_STDCALL imaqParticleFilter2(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, int rejectMatches, int connectivity8, int* numParticles);
5332 IMAQ_FUNC EdgeReport* IMAQ_STDCALL imaqEdgeTool2(const Image* image, const Point* points, int numPoints, EdgeProcess process, const EdgeOptions* options, int* numEdges);
5333 IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRotatedRectContour(ROI* roi, RotatedRect rect);
5334 IMAQ_FUNC Barcode2DInfo* IMAQ_STDCALL imaqReadDataMatrixBarcode(const Image* image, const ROI* roi, const DataMatrixOptions* options, unsigned int* numBarcodes);
5335 IMAQ_FUNC LinearAverages* IMAQ_STDCALL imaqLinearAverages(const Image* image, Rect rect);
5336 IMAQ_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);
5337 IMAQ_FUNC CharInfo* IMAQ_STDCALL imaqGetCharInfo(const CharSet* set, int index);
5338 IMAQ_FUNC ReadTextReport* IMAQ_STDCALL imaqReadText(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
5339 IMAQ_FUNC ThresholdData* IMAQ_STDCALL imaqAutoThreshold(Image* dest, Image* source, int numClasses, ThresholdMethod method);
5340 IMAQ_FUNC ColorHistogramReport* IMAQ_STDCALL imaqColorHistogram(Image* image, int numClasses, ColorMode mode, const Image* mask);
5341 IMAQ_FUNC RakeReport* IMAQ_STDCALL imaqRake(const Image* image, const ROI* roi, RakeDirection direction, EdgeProcess process, const RakeOptions* options);
5342 #endif
5343 

Generated on Sat Apr 26 2014 12:26:45 for WPILibC++ by doxygen 1.8.6