WPILib 2012
WPILibRoboticsLibraryforFRC
nivision.h
00001 /*============================================================================*/
00002 /*                        IMAQ Vision                                         */
00003 /*----------------------------------------------------------------------------*/
00004 /*    Copyright (c) National Instruments 2001.  All Rights Reserved.          */
00005 /*----------------------------------------------------------------------------*/
00006 /*                                                                            */
00007 /* Title:       NIVision.h                                                    */
00008 /*                                                                            */
00009 /*============================================================================*/
00010 #if !defined(NiVision_h)
00011 #define NiVision_h
00012 
00013 //============================================================================
00014 //  Includes
00015 //============================================================================
00016 #include <stddef.h>
00017 
00018 
00019 //============================================================================
00020 //  Control Defines
00021 //============================================================================
00022 #if !defined(IMAQ_IMPORT)
00023         #ifndef __GNUC__
00024                 #define IMAQ_IMPORT __declspec(dllimport)
00025         #else
00026                 #define IMAQ_IMPORT
00027         #endif
00028 #endif
00029 
00030 #if !defined(IMAQ_FUNC)
00031     #if !defined(__cplusplus)
00032         #define IMAQ_FUNC IMAQ_IMPORT
00033     #else
00034         #define IMAQ_FUNC extern "C" IMAQ_IMPORT
00035     #endif
00036 #endif
00037 
00038 #if !defined(IMAQ_STDCALL)
00039         #ifndef __GNUC__
00040                 #define IMAQ_STDCALL __stdcall
00041         #else
00042                 #define IMAQ_STDCALL 
00043         #endif
00044 #endif
00045 
00046 #ifdef _CVI_
00047 #pragma EnableLibraryRuntimeChecking
00048 #include <ansi_c.h>
00049 #endif
00050 
00051 #define IMAQ_CALLBACK __cdecl
00052 
00053 //============================================================================
00054 //  Manifest Constants
00055 //============================================================================
00056 #ifndef NULL
00057     #ifdef __cplusplus
00058         #define NULL    0
00059     #else
00060         #define NULL    ((void *)0)
00061     #endif
00062 #endif
00063 
00064 #ifndef FALSE
00065     #define FALSE               0
00066 #endif
00067 
00068 #ifndef TRUE
00069     #define TRUE                1
00070 #endif
00071 
00072 #define IMAQ_DEFAULT_SHOW_COORDINATES TRUE
00073 #define IMAQ_DEFAULT_MAX_ICONS_PER_LINE 4
00074 #define IMAQ_DEFAULT_LEARNING_MODE IMAQ_LEARN_SHIFT_INFORMATION
00075 #define IMAQ_DEFAULT_BMP_COMPRESS FALSE
00076 #define IMAQ_DEFAULT_PNG_QUALITY 750
00077 #define IMAQ_DEFAULT_JPEG_QUALITY 750
00078 #define IMAQ_ALL_CONTOURS -1
00079 #define IMAQ_ALL_WINDOWS -1
00080 #define IMAQ_SHIFT      1
00081 #define IMAQ_ALT        2
00082 #define IMAQ_CTRL       4
00083 #define IMAQ_CAPS_LOCK  8
00084 #define IMAQ_MODAL_DIALOG -1
00085 #define IMAQ_INIT_RGB_TRANSPARENT {   0,   0,   0, 1 }
00086 #define IMAQ_INIT_RGB_RED         {   0,   0, 255, 0 }
00087 #define IMAQ_INIT_RGB_BLUE        { 255,   0,   0, 0 }
00088 #define IMAQ_INIT_RGB_GREEN       {   0, 255,   0, 0 }
00089 #define IMAQ_INIT_RGB_YELLOW      {   0, 255, 255, 0 }
00090 #define IMAQ_INIT_RGB_WHITE       { 255, 255, 255, 0 }
00091 #define IMAQ_INIT_RGB_BLACK       {   0,   0,   0, 0 }
00092 #define IMAQ_USE_DEFAULT_QUALITY  -1
00093 #define IMAQ_ALL_SAMPLES          -1
00094 #define IMAQ_ALL_OBJECTS          -1
00095 #define IMAQ_ALL_CHARACTERS       -1
00096 
00097 //============================================================================
00098 //  Predefined Valid Characters
00099 //============================================================================
00100 #define IMAQ_ANY_CHARACTER          ""                                                                  //Any Character
00101 #define IMAQ_ALPHABETIC             "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"              //Alphabetic
00102 #define IMAQ_ALPHANUMERIC           "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"    //Alphanumeric
00103 #define IMAQ_UPPERCASE_LETTERS      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"                                        //Uppercase Letters
00104 #define IMAQ_LOWERCASE_LETTERS      "abcdefghijklmnopqrstuvwxyz"                                        //Lowercase Letters
00105 #define IMAQ_DECIMAL_DIGITS         "0123456789"                                                        //Decimal Digits
00106 #define IMAQ_HEXADECIMAL_DIGITS     "0123456789ABCDEFabcdef"                                            //Hexadecimal Digits
00107 #define IMAQ_PATTERN                "\xFF"                                                              //Pattern (A single character string with the character value set to 255)
00108 #define IMAQ_FORCE_SPACE            " "                                                                 //Force Space
00109 
00110 //============================================================================
00111 //  Macros
00112 //============================================================================
00113 #define IMAQ_NO_RECT imaqMakeRect( 0, 0, 0x7FFFFFFF, 0x7FFFFFFF)
00114 #define IMAQ_NO_ROTATED_RECT imaqMakeRotatedRect( 0, 0, 0x7FFFFFFF, 0x7FFFFFFF, 0)
00115 #define IMAQ_NO_POINT imaqMakePoint( -1, -1)
00116 #define IMAQ_NO_POINT_FLOAT imaqMakePointFloat( -1.0, -1.0 )
00117 #define IMAQ_NO_OFFSET imaqMakePointFloat( 0.0, 0.0 )
00118 
00119 
00120 
00121 //============================================================================
00122 //  When in Borland, some functions must be mapped to different names.
00123 //  This accomplishes said task.
00124 //============================================================================
00125 #if defined(__BORLANDC__) || (defined(_CVI_) && defined(_NI_BC_))
00126     #define imaqMakePoint imaqMakePoint_BC
00127     #define imaqMakePointFloat imaqMakePointFloat_BC
00128 #endif
00129 
00130 
00131 //============================================================================
00132 //  When in Watcom, some functions must be mapped to different names.
00133 //  This accomplishes said task.
00134 //============================================================================
00135 #if defined(__WATCOMC__) || (defined(_CVI_) && defined(_NI_WC_))
00136     #define imaqMakePoint imaqMakePoint_BC
00137     #define imaqMakePointFloat imaqMakePointFloat_BC
00138 #endif
00139 
00140 //============================================================================
00141 //  If using Visual C++, force startup & shutdown code to run.
00142 //============================================================================
00143 #if defined(_MSC_VER) && !defined(_CVI_) && !defined(__BORLANDC__)
00144     #pragma comment(linker, "/INCLUDE:_nivision_startup_shutdown")
00145     #pragma comment(linker, "/DEFAULTLIB:nivision.lib")
00146 #endif
00147 
00148 //============================================================================
00149 //  Error Codes
00150 //============================================================================
00151 #define ERR_SUCCESS                                                  0 // No error.
00152 #define ERR_SYSTEM_ERROR                                             -1074396160 // System error.
00153 #define ERR_OUT_OF_MEMORY                                            -1074396159 // Not enough memory for requested operation.
00154 #define ERR_MEMORY_ERROR                                             -1074396158 // Memory error.
00155 #define ERR_UNREGISTERED                                             -1074396157 // Unlicensed copy of NI Vision.
00156 #define ERR_NEED_FULL_VERSION                                        -1074396156 // The function requires an NI Vision 5.0 Advanced license.
00157 #define ERR_UNINIT                                                   -1074396155 // NI Vision did not initialize properly.
00158 #define ERR_IMAGE_TOO_SMALL                                          -1074396154 // The image is not large enough for the operation.
00159 #define ERR_BARCODE_CODABAR                                          -1074396153 // The barcode is not a valid Codabar barcode.
00160 #define ERR_BARCODE_CODE39                                           -1074396152 // The barcode is not a valid Code 3 of 9 barcode.
00161 #define ERR_BARCODE_CODE93                                           -1074396151 // The barcode is not a valid Code93 barcode.
00162 #define ERR_BARCODE_CODE128                                          -1074396150 // The barcode is not a valid Code128 barcode.
00163 #define ERR_BARCODE_EAN8                                             -1074396149 // The barcode is not a valid EAN8 barcode.
00164 #define ERR_BARCODE_EAN13                                            -1074396148 // The barcode is not a valid EAN13 barcode.
00165 #define ERR_BARCODE_I25                                              -1074396147 // The barcode is not a valid Interleaved 2 of 5 barcode.
00166 #define ERR_BARCODE_MSI                                              -1074396146 // The barcode is not a valid MSI barcode.
00167 #define ERR_BARCODE_UPCA                                             -1074396145 // The barcode is not a valid UPCA barcode.
00168 #define ERR_BARCODE_CODE93_SHIFT                                     -1074396144 // The Code93 barcode contains invalid shift encoding.
00169 #define ERR_BARCODE_TYPE                                             -1074396143 // The barcode type is invalid.
00170 #define ERR_BARCODE_INVALID                                          -1074396142 // The image does not represent a valid linear barcode.
00171 #define ERR_BARCODE_CODE128_FNC                                      -1074396141 // The FNC value in the Code128 barcode is not located before the first data value.
00172 #define ERR_BARCODE_CODE128_SET                                      -1074396140 // The starting code set in the Code128 barcode is not valid.
00173 #define ERR_ROLLBACK_RESOURCE_OUT_OF_MEMORY                          -1074396139 // Not enough reserved memory in the timed environment for the requested operation.
00174 #define ERR_ROLLBACK_NOT_SUPPORTED                                   -1074396138 // The function is not supported when a time limit is active.
00175 #define ERR_DIRECTX_DLL_NOT_FOUND                                    -1074396137 // Quartz.dll not found.  Install DirectX 8.1 or later.
00176 #define ERR_DIRECTX_INVALID_FILTER_QUALITY                           -1074396136 // The filter quality you provided is invalid. Valid quality values range from -1 to 1000.
00177 #define ERR_INVALID_BUTTON_LABEL                                     -1074396135 // Invalid button label.
00178 #define ERR_THREAD_INITIALIZING                                      -1074396134 // Could not execute the function in the separate thread because the thread has not completed initialization.
00179 #define ERR_THREAD_COULD_NOT_INITIALIZE                              -1074396133 // Could not execute the function in the separate thread because the thread could not initialize.
00180 #define ERR_MASK_NOT_TEMPLATE_SIZE                                   -1074396132 // The mask must be the same size as the template.
00181 #define ERR_NOT_RECT_OR_ROTATED_RECT                                 -1074396130 // The ROI must only have either a single Rectangle contour or a single Rotated Rectangle contour.
00182 #define ERR_ROLLBACK_UNBOUNDED_INTERFACE                             -1074396129 // During timed execution, you must use the preallocated version of this operation.
00183 #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.
00184 #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.
00185 #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.
00186 #define ERR_INVALID_CONTRAST_THRESHOLD                               -1074396125 // Invalid contrast threshold. The threshold value must be greater than 0. 
00187 #define ERR_INVALID_CALIBRATION_ROI_MODE                             -1074396124 // NI Vision does not support the calibration ROI mode you supplied.
00188 #define ERR_INVALID_CALIBRATION_MODE                                 -1074396123 // NI Vision does not support the calibration mode you supplied.
00189 #define ERR_DRAWTEXT_COLOR_MUST_BE_GRAYSCALE                         -1074396122 // Set the foreground and background text colors to grayscale to draw on a U8 image.
00190 #define ERR_SATURATION_THRESHOLD_OUT_OF_RANGE                        -1074396121 // The value of the saturation threshold must be from 0 to 255.
00191 #define ERR_NOT_IMAGE                                                -1074396120 // Not an image.
00192 #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.
00193 #define ERR_INVALID_STEP_SIZE                                        -1074396118 // Step size must be greater than zero and less than Image size
00194 #define ERR_MATRIX_SIZE                                              -1074396117 // Invalid matrix size in the structuring element.
00195 #define ERR_CALIBRATION_INSF_POINTS                                  -1074396116 // Insufficient number of calibration feature points.
00196 #define ERR_CALIBRATION_IMAGE_CORRECTED                              -1074396115 // The operation is invalid in a corrected image.
00197 #define ERR_CALIBRATION_INVALID_ROI                                  -1074396114 // The ROI contains an invalid contour type or is not contained in the ROI learned for calibration.
00198 #define ERR_CALIBRATION_IMAGE_UNCALIBRATED                           -1074396113 // The source/input image has not been calibrated.
00199 #define ERR_INCOMP_MATRIX_SIZE                                       -1074396112 // The number of pixel and real-world coordinates must be equal.
00200 #define ERR_CALIBRATION_FAILED_TO_FIND_GRID                          -1074396111 // Unable to automatically detect grid because the image is too distorted.
00201 #define ERR_CALIBRATION_INFO_VERSION                                 -1074396110 // Invalid calibration information version.
00202 #define ERR_CALIBRATION_INVALID_SCALING_FACTOR                       -1074396109 // Invalid calibration scaling factor.
00203 #define ERR_CALIBRATION_ERRORMAP                                     -1074396108 // The calibration error map cannot be computed.
00204 #define ERR_CALIBRATION_INFO_1                                       -1074396107 // Invalid calibration template image.
00205 #define ERR_CALIBRATION_INFO_2                                       -1074396106 // Invalid calibration template image.
00206 #define ERR_CALIBRATION_INFO_3                                       -1074396105 // Invalid calibration template image.
00207 #define ERR_CALIBRATION_INFO_4                                       -1074396104 // Invalid calibration template image.
00208 #define ERR_CALIBRATION_INFO_5                                       -1074396103 // Invalid calibration template image.
00209 #define ERR_CALIBRATION_INFO_6                                       -1074396102 // Invalid calibration template image.
00210 #define ERR_CALIBRATION_INFO_MICRO_PLANE                             -1074396101 // Invalid calibration template image.
00211 #define ERR_CALIBRATION_INFO_PERSPECTIVE_PROJECTION                  -1074396100 // Invalid calibration template image.
00212 #define ERR_CALIBRATION_INFO_SIMPLE_TRANSFORM                        -1074396099 // Invalid calibration template image.
00213 #define ERR_RESERVED_MUST_BE_NULL                                    -1074396098 // You must pass NULL for the reserved parameter.
00214 #define ERR_INVALID_PARTICLE_PARAMETER_VALUE                         -1074396097 // You entered an invalid selection in the particle parameter.
00215 #define ERR_NOT_AN_OBJECT                                            -1074396096 // Not an object.
00216 #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.
00217 #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.
00218 #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.
00219 #define ERR_ROLLBACK_RESOURCE_NON_EMPTY_INITIALIZE                   -1074396092 // Multiple timed environments are not supported.
00220 #define ERR_ROLLBACK_RESOURCE_UNINITIALIZED_ENABLE                   -1074396091 // A time limit cannot be started until the timed environment is initialized.
00221 #define ERR_ROLLBACK_RESOURCE_ENABLED                                -1074396090 // Multiple timed environments are not supported.
00222 #define ERR_ROLLBACK_RESOURCE_REINITIALIZE                           -1074396089 // The timed environment is already initialized.
00223 #define ERR_ROLLBACK_RESIZE                                          -1074396088 // The results of the operation exceeded the size limits on the output data arrays.
00224 #define ERR_ROLLBACK_STOP_TIMER                                      -1074396087 // No time limit is available to stop.
00225 #define ERR_ROLLBACK_START_TIMER                                     -1074396086 // A time limit could not be set.
00226 #define ERR_ROLLBACK_INIT_TIMER                                      -1074396085 // The timed environment could not be initialized.
00227 #define ERR_ROLLBACK_DELETE_TIMER                                    -1074396084 // No initialized timed environment is available to close.
00228 #define ERR_ROLLBACK_TIMEOUT                                         -1074396083 // The time limit has expired.
00229 #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.
00230 #define ERR_BAD_PASSWORD                                             -1074396081 // Incorrect password.
00231 #define ERR_INVALID_IMAGE_TYPE                                       -1074396080 // Invalid image type.
00232 #define ERR_INVALID_METAFILE_HANDLE                                  -1074396079 // Invalid metafile handle.
00233 #define ERR_INCOMP_TYPE                                              -1074396077 // Incompatible image type.
00234 #define ERR_COORD_SYS_FIRST_AXIS                                     -1074396076 // Unable to fit a line for the primary axis.
00235 #define ERR_COORD_SYS_SECOND_AXIS                                    -1074396075 // Unable to fit a line for the secondary axis.
00236 #define ERR_INCOMP_SIZE                                              -1074396074 // Incompatible image size.
00237 #define ERR_MASK_OUTSIDE_IMAGE                                       -1074396073 // When the mask's offset was applied, the mask was entirely outside of the image.
00238 #define ERR_INVALID_BORDER                                           -1074396072 // Invalid image border.
00239 #define ERR_INVALID_SCAN_DIRECTION                                   -1074396071 // Invalid scan direction.
00240 #define ERR_INVALID_FUNCTION                                         -1074396070 // Unsupported function.
00241 #define ERR_INVALID_COLOR_MODE                                       -1074396069 // NI Vision does not support the color mode you specified.
00242 #define ERR_INVALID_ACTION                                           -1074396068 // The function does not support the requested action.
00243 #define ERR_IMAGES_NOT_DIFF                                          -1074396067 // The source image and destination image must be different.
00244 #define ERR_INVALID_POINTSYMBOL                                      -1074396066 // Invalid point symbol.
00245 #define ERR_CANT_RESIZE_EXTERNAL                                     -1074396065 // Cannot resize an image in an acquisition buffer.
00246 #define ERR_EXTERNAL_NOT_SUPPORTED                                   -1074396064 // This operation is not supported for images in an acquisition buffer.
00247 #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.
00248 #define ERR_INVALID_TOLERANCE                                        -1074396062 // The tolerance parameter must be greater than or equal to 0.
00249 #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.
00250 #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.
00251 #define ERR_INVALID_MAX_ITERATIONS                                   -1074396059 // Invalid maximum number of iterations. Maximum number of iterations must be greater than zero.
00252 #define ERR_INVALID_ROTATION_MODE                                    -1074396058 // Invalid rotation mode.
00253 #define ERR_INVALID_SEARCH_VECTOR_WIDTH                              -1074396057 // Invalid search vector width. The width must be an odd number greater than zero.
00254 #define ERR_INVALID_MATRIX_MIRROR_MODE                               -1074396056 // Invalid matrix mirror mode.
00255 #define ERR_INVALID_ASPECT_RATIO                                     -1074396055 // Invalid aspect ratio. Valid aspect ratios must be greater than or equal to zero.
00256 #define ERR_INVALID_CELL_FILL_TYPE                                   -1074396054 // Invalid cell fill type.
00257 #define ERR_INVALID_BORDER_INTEGRITY                                 -1074396053 // Invalid border integrity. Valid values range from 0 to 100.
00258 #define ERR_INVALID_DEMODULATION_MODE                                -1074396052 // Invalid demodulation mode.
00259 #define ERR_INVALID_CELL_FILTER_MODE                                 -1074396051 // Invalid cell filter mode.
00260 #define ERR_INVALID_ECC_TYPE                                         -1074396050 // Invalid ECC type.
00261 #define ERR_INVALID_MATRIX_POLARITY                                  -1074396049 // Invalid matrix polarity.
00262 #define ERR_INVALID_CELL_SAMPLE_SIZE                                 -1074396048 // Invalid cell sample size.
00263 #define ERR_INVALID_LINEAR_AVERAGE_MODE                              -1074396047 // Invalid linear average mode.
00264 #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.
00265 #define ERR_INVALID_2D_BARCODE_SUBTYPE                               -1074396045 // Invalid 2-D barcode Data Matrix subtype.
00266 #define ERR_INVALID_2D_BARCODE_SHAPE                                 -1074396044 // Invalid 2-D barcode shape.
00267 #define ERR_INVALID_2D_BARCODE_CELL_SHAPE                            -1074396043 // Invalid 2-D barcode cell shape.
00268 #define ERR_INVALID_2D_BARCODE_CONTRAST                              -1074396042 // Invalid 2-D barcode contrast.
00269 #define ERR_INVALID_2D_BARCODE_TYPE                                  -1074396041 // Invalid 2-D barcode type.
00270 #define ERR_DRIVER                                                   -1074396040 // Cannot access NI-IMAQ driver.
00271 #define ERR_IO_ERROR                                                 -1074396039 // I/O error.
00272 #define ERR_FIND_COORDSYS_MORE_THAN_ONE_EDGE                         -1074396038 // When searching for a coordinate system, the number of lines to fit must be 1.
00273 #define ERR_TIMEOUT                                                  -1074396037 // Trigger timeout.
00274 #define ERR_INVALID_SKELETONMODE                                     -1074396036 // The Skeleton mode you specified is invalid.
00275 #define ERR_TEMPLATEIMAGE_NOCIRCLE                                   -1074396035 // The template image does not contain enough information for learning the aggressive search strategy.
00276 #define ERR_TEMPLATEIMAGE_EDGEINFO                                   -1074396034 // The template image does not contain enough edge information for the sample size(s) requested.
00277 #define ERR_TEMPLATEDESCRIPTOR_LEARNSETUPDATA                        -1074396033 // Invalid template descriptor.
00278 #define ERR_TEMPLATEDESCRIPTOR_ROTATION_SEARCHSTRATEGY               -1074396032 // The template descriptor does not contain data required for the requested search strategy in rotation-invariant matching.
00279 #define ERR_INVALID_TETRAGON                                         -1074396031 // The input tetragon must have four points. The points are specified clockwise starting with the top left point. 
00280 #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.
00281 #define ERR_TIME_BOUNDED_EXECUTION_NOT_SUPPORTED                     -1074396028 // NI Vision no longer supports time-bounded execution.
00282 #define ERR_INVALID_COLOR_RESOLUTION                                 -1074396027 // Invalid Color Resolution for the Color Classifier
00283 #define ERR_INVALID_PROCESS_TYPE_FOR_EDGE_DETECTION                  -1074396026 // Invalid process type for edge detection.
00284 #define ERR_INVALID_ANGLE_RANGE_FOR_STRAIGHT_EDGE                    -1074396025 // Angle range value should be equal to or greater than zero.
00285 #define ERR_INVALID_MIN_COVERAGE_FOR_STRAIGHT_EDGE                   -1074396024 // Minimum coverage value should be greater than zero.
00286 #define ERR_INVALID_ANGLE_TOL_FOR_STRAIGHT_EDGE                      -1074396023 // The angle tolerance should be equal to or greater than 0.001.
00287 #define ERR_INVALID_SEARCH_MODE_FOR_STRAIGHT_EDGE                    -1074396022 // Invalid search mode for detecting straight edges
00288 #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.
00289 #define ERR_INVALID_GRADING_MODE                                     -1074396020 // Invalid grading mode.
00290 #define ERR_INVALID_THRESHOLD_PERCENTAGE                             -1074396019 // Invalid threshold percentage. Valid values range from 0 to 100.
00291 #define ERR_INVALID_EDGE_POLARITY_SEARCH_MODE                        -1074396018 // Invalid edge polarity search mode.
00292 #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.
00293 #define ERR_NO_VIDEO_DRIVER                                          -1074396016 // No video driver is installed.
00294 #define ERR_RPC_EXECUTE_IVB                                          -1074396015 // Unable to establish network connection with remote system.
00295 #define ERR_INVALID_VIDEO_BLIT                                       -1074396014 // RT Video Out does not support displaying the supplied image type at the selected color depth.
00296 #define ERR_INVALID_VIDEO_MODE                                       -1074396013 // Invalid video mode.
00297 #define ERR_RPC_EXECUTE                                              -1074396012 // Unable to display remote image on network connection.
00298 #define ERR_RPC_BIND                                                 -1074396011 // Unable to establish network connection.
00299 #define ERR_INVALID_FRAME_NUMBER                                     -1074396010 // Invalid frame number.
00300 #define ERR_DIRECTX                                                  -1074396009 // An internal DirectX error has occurred.  Try upgrading to the latest version of DirectX.
00301 #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.
00302 #define ERR_DIRECTX_INCOMPATIBLE_COMPRESSION_FILTER                  -1074396007 // Incompatible compression filter.
00303 #define ERR_DIRECTX_UNKNOWN_COMPRESSION_FILTER                       -1074396006 // Unknown compression filter.
00304 #define ERR_INVALID_AVI_SESSION                                      -1074396005 // Invalid AVI session.
00305 #define ERR_DIRECTX_CERTIFICATION_FAILURE                            -1074396004 // A software key is restricting the use of this compression filter.
00306 #define ERR_AVI_DATA_EXCEEDS_BUFFER_SIZE                             -1074396003 // The data for this frame exceeds the data buffer size specified when creating the AVI file.
00307 #define ERR_INVALID_LINEGAUGEMETHOD                                  -1074396002 // Invalid line gauge method.
00308 #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.
00309 #define ERR_FILE_FILE_HEADER                                         -1074396000 // Invalid file header.
00310 #define ERR_FILE_FILE_TYPE                                           -1074395999 // Invalid file type.
00311 #define ERR_FILE_COLOR_TABLE                                         -1074395998 // Invalid color table.
00312 #define ERR_FILE_ARGERR                                              -1074395997 // Invalid parameter.
00313 #define ERR_FILE_OPEN                                                -1074395996 // File is already open for writing.
00314 #define ERR_FILE_NOT_FOUND                                           -1074395995 // File not found.
00315 #define ERR_FILE_TOO_MANY_OPEN                                       -1074395994 // Too many files open.
00316 #define ERR_FILE_IO_ERR                                              -1074395993 // File I/O error.
00317 #define ERR_FILE_PERMISSION                                          -1074395992 // File access denied.
00318 #define ERR_FILE_INVALID_TYPE                                        -1074395991 // NI Vision does not support the file type you specified.
00319 #define ERR_FILE_GET_INFO                                            -1074395990 // Could not read Vision info from file.
00320 #define ERR_FILE_READ                                                -1074395989 // Unable to read data.
00321 #define ERR_FILE_WRITE                                               -1074395988 // Unable to write data.
00322 #define ERR_FILE_EOF                                                 -1074395987 // Premature end of file.
00323 #define ERR_FILE_FORMAT                                              -1074395986 // Invalid file format.
00324 #define ERR_FILE_OPERATION                                           -1074395985 // Invalid file operation.
00325 #define ERR_FILE_INVALID_DATA_TYPE                                   -1074395984 // NI Vision does not support the file data type you specified.
00326 #define ERR_FILE_NO_SPACE                                            -1074395983 // Disk full.
00327 #define ERR_INVALID_FRAMES_PER_SECOND                                -1074395982 // The frames per second in an AVI must be greater than zero.
00328 #define ERR_INSUFFICIENT_BUFFER_SIZE                                 -1074395981 // The buffer that was passed in is not big enough to hold all of the data.
00329 #define ERR_COM_INITIALIZE                                           -1074395980 // Error initializing COM.
00330 #define ERR_INVALID_PARTICLE_INFO                                    -1074395979 // The image has invalid particle information.  Call imaqCountParticles on the image to create particle information.
00331 #define ERR_INVALID_PARTICLE_NUMBER                                  -1074395978 // Invalid particle number.
00332 #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.
00333 #define ERR_NUMBER_OF_PALETTE_COLORS                                 -1074395976 // The color palette must have exactly 0 or 256 entries.
00334 #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.
00335 #define ERR_UNSUPPORTED_JPEG2000_COLORSPACE_METHOD                   -1074395974 // NI Vision does not support reading JPEG2000 files with this colorspace method.
00336 #define ERR_JPEG2000_UNSUPPORTED_MULTIPLE_LAYERS                     -1074395973 // NI Vision does not support reading JPEG2000 files with more than one layer.
00337 #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.
00338 #define ERR_INVALID_OFFSET                                           -1074395971 // The offset you specified must be size 2.
00339 #define ERR_INIT                                                     -1074395960 // Initialization error.
00340 #define ERR_CREATE_WINDOW                                            -1074395959 // Unable to create window.
00341 #define ERR_WINDOW_ID                                                -1074395958 // Invalid window ID.
00342 #define ERR_ARRAY_SIZE_MISMATCH                                      -1074395957 // The array sizes are not compatible.
00343 #define ERR_INVALID_QUALITY                                          -1074395956 // The quality you provided is invalid. Valid quality values range from -1 to 1000.
00344 #define ERR_INVALID_MAX_WAVELET_TRANSFORM_LEVEL                      -1074395955 // Invalid maximum wavelet transform level.  Valid values range from 0 to 255.
00345 #define ERR_INVALID_QUANTIZATION_STEP_SIZE                           -1074395954 // The quantization step size must be greater than or equal to 0.
00346 #define ERR_INVALID_WAVELET_TRANSFORM_MODE                           -1074395953 // Invalid wavelet transform mode.
00347 #define ERR_ROI_NOT_POINT                                            -1074395952 // The ROI must only have a single Point contour.
00348 #define ERR_ROI_NOT_POINTS                                           -1074395951 // The ROI must only have Point contours.
00349 #define ERR_ROI_NOT_LINE                                             -1074395950 // The ROI must only have a single Line contour.
00350 #define ERR_ROI_NOT_ANNULUS                                          -1074395949 // The ROI must only have a single Annulus contour.
00351 #define ERR_INVALID_MEASURE_PARTICLES_CALIBRATION_MODE               -1074395948 // Invalid measure particles calibration mode.
00352 #define ERR_INVALID_PARTICLE_CLASSIFIER_THRESHOLD_TYPE               -1074395947 // Invalid particle classifier threshold type.
00353 #define ERR_INVALID_DISTANCE                                         -1074395946 // Invalid Color Segmentation Distance
00354 #define ERR_INVALID_PARTICLE_AREA                                    -1074395945 // Invalid Color Segmenation Particle Area
00355 #define ERR_CLASS_NAME_NOT_FOUND                                     -1074395944 // Required Class name is not found in trained labels/Class names
00356 #define ERR_NUMBER_LABEL_LIMIT_EXCEEDED                              -1074395943 // Number of Labels exceeded limit of label Image type
00357 #define ERR_INVALID_DISTANCE_LEVEL                                   -1074395942 // Invalid Color Segmentation distance level
00358 #define ERR_INVALID_SVM_TYPE                                         -1074395941 // Invalid SVM model type
00359 #define ERR_INVALID_SVM_KERNEL                                       -1074395940 // Invalid SVM kernel type
00360 #define ERR_NO_SUPPORT_VECTOR_FOUND                                  -1074395939 // No Support Vector is found at SVM training
00361 #define ERR_COST_LABEL_NOT_FOUND                                     -1074395938 // Label name is not found in added samples
00362 #define ERR_EXCEEDED_SVM_MAX_ITERATION                               -1074395937 // SVM training exceeded maximim Iteration limit
00363 #define ERR_INVALID_SVM_PARAMETER                                    -1074395936 // Invalid SVM Parameter
00364 #define ERR_INVALID_IDENTIFICATION_SCORE                             -1074395935 // Invalid Identification score. Must be between 0-1000.
00365 #define ERR_INVALID_TEXTURE_FEATURE                                  -1074395934 // Requested for invalid texture feature
00366 #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)
00367 #define ERR_INVALID_WAVELET_SUBBAND                                  -1074395932 // Request for invalid wavelet subBand
00368 #define ERR_INVALID_FINAL_STEP_SIZE                                  -1074395931 // The final step size must be lesser than the initial step size
00369 #define ERR_INVALID_ENERGY                                           -1074395930 // Minimum Energy should lie between 0 and 100
00370 #define ERR_INVALID_TEXTURE_LABEL                                    -1074395929 // The classification label must be texture or defect for texture defect classifier
00371 #define ERR_INVALID_WAVELET_TYPE                                     -1074395928 // The wavelet type is invalid
00372 #define ERR_SAME_WAVELET_BANDS_SELECTED                              -1074395927 // Same Wavelet band is selected multiple times
00373 #define ERR_IMAGE_SIZE_MISMATCH                                      -1074395926 // The two input image sizes are different 
00374 #define ERR_NUMBER_CLASS                                             -1074395920 // Invalid number of classes.
00375 #define ERR_INVALID_LUCAS_KANADE_WINDOW_SIZE                         -1074395888 // Both dimensions of the window size should be odd, greater than 2 and less than 16.
00376 #define ERR_INVALID_MATRIX_TYPE                                      -1074395887 // The type of matrix supplied to the function is not supported.
00377 #define ERR_INVALID_OPTICAL_FLOW_TERMINATION_CRITERIA_TYPE           -1074395886 // An invalid termination criteria was specified for the optical flow computation.
00378 #define ERR_LKP_NULL_PYRAMID                                         -1074395885 // The pyramid levels where not properly allocated.
00379 #define ERR_INVALID_PYRAMID_LEVEL                                    -1074395884 // The pyramid level specified cannot be negative
00380 #define ERR_INVALID_LKP_KERNEL                                       -1074395883 // The kernel must be symmetric  with non-zero coefficients and of odd size
00381 #define ERR_INVALID_HORN_SCHUNCK_LAMBDA                              -1074395882 // Invalid smoothing parameter in Horn Schunck operation.
00382 #define ERR_INVALID_HORN_SCHUNCK_TYPE                                -1074395881 // Invalid stopping criteria type for Horn Schunck optical flow.
00383 #define ERR_PARTICLE                                                 -1074395880 // Invalid particle.
00384 #define ERR_BAD_MEASURE                                              -1074395879 // Invalid measure number.
00385 #define ERR_PROP_NODE_WRITE_NOT_SUPPORTED                            -1074395878 // The Image Display control does not support writing this property node.
00386 #define ERR_COLORMODE_REQUIRES_CHANGECOLORSPACE2                     -1074395877 // The specified color mode requires the use of imaqChangeColorSpace2.
00387 #define ERR_UNSUPPORTED_COLOR_MODE                                   -1074395876 // This function does not currently support the color mode you specified.
00388 #define ERR_BARCODE_PHARMACODE                                       -1074395875 // The barcode is not a valid Pharmacode symbol
00389 #define ERR_BAD_INDEX                                                -1074395840 // Invalid handle table index.
00390 #define ERR_INVALID_COMPRESSION_RATIO                                -1074395837 // The compression ratio must be greater than or equal to 1.
00391 #define ERR_TOO_MANY_CONTOURS                                        -1074395801 // The ROI contains too many contours.
00392 #define ERR_PROTECTION                                               -1074395800 // Protection error.
00393 #define ERR_INTERNAL                                                 -1074395799 // Internal error.
00394 #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.
00395 #define ERR_INVALID_CLASSIFIER_SESSION                               -1074395797 // Not a valid classifier session.
00396 #define ERR_INVALID_KNN_METHOD                                       -1074395796 // You requested an invalid Nearest Neighbor classifier method.
00397 #define ERR_K_TOO_LOW                                                -1074395795 // The k parameter must be greater than two.
00398 #define ERR_K_TOO_HIGH                                               -1074395794 // The k parameter must be <= the number of samples in each class.
00399 #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.
00400 #define ERR_CLASSIFIER_SESSION_NOT_TRAINED                           -1074395792 // This classifier session is not trained. You may only call this function on a trained classifier session.
00401 #define ERR_CLASSIFIER_INVALID_SESSION_TYPE                          -1074395791 // This classifier function cannot be called on this type of classifier session.
00402 #define ERR_INVALID_DISTANCE_METRIC                                  -1074395790 // You requested an invalid distance metric.
00403 #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.
00404 #define ERR_NO_SAMPLES                                               -1074395788 // This operation cannot be performed because you have not added any samples.
00405 #define ERR_INVALID_CLASSIFIER_TYPE                                  -1074395787 // You requested an invalid classifier type.
00406 #define ERR_INVALID_PARTICLE_OPTIONS                                 -1074395786 // The sum of Scale Dependence and Symmetry Dependence must be less than 1000.
00407 #define ERR_NO_PARTICLE                                              -1074395785 // The image yielded no particles.
00408 #define ERR_INVALID_LIMITS                                           -1074395784 // The limits you supplied are not valid.
00409 #define ERR_BAD_SAMPLE_INDEX                                         -1074395783 // The Sample Index fell outside the range of Samples.
00410 #define ERR_DESCRIPTION_TOO_LONG                                     -1074395782 // The description must be <= 255 characters.
00411 #define ERR_CLASSIFIER_INVALID_ENGINE_TYPE                           -1074395781 // The engine for this classifier session does not support this operation.
00412 #define ERR_INVALID_PARTICLE_TYPE                                    -1074395780 // You requested an invalid particle type.
00413 #define ERR_CANNOT_COMPACT_UNTRAINED                                 -1074395779 // You may only save a session in compact form if it is trained.
00414 #define ERR_INVALID_KERNEL_SIZE                                      -1074395778 // The Kernel size must be smaller than the image size.
00415 #define ERR_INCOMPATIBLE_CLASSIFIER_TYPES                            -1074395777 // The session you read from file must be the same type as the session you passed in.
00416 #define ERR_INVALID_USE_OF_COMPACT_SESSION_FILE                      -1074395776 // You can not use a compact classification file with read options other than Read All.
00417 #define ERR_ROI_HAS_OPEN_CONTOURS                                    -1074395775 // The ROI you passed in may only contain closed contours.
00418 #define ERR_NO_LABEL                                                 -1074395774 // You must pass in a label.
00419 #define ERR_NO_DEST_IMAGE                                            -1074395773 // You must provide a destination image.
00420 #define ERR_INVALID_REGISTRATION_METHOD                              -1074395772 // You provided an invalid registration method.
00421 #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.
00422 #define ERR_INVALID_INSPECTION_TEMPLATE                              -1074395770 // Invalid golden template.
00423 #define ERR_INVALID_EDGE_THICKNESS                                   -1074395769 // Edge Thickness to Ignore must be greater than zero.
00424 #define ERR_INVALID_SCALE                                            -1074395768 // Scale must be greater than zero.
00425 #define ERR_INVALID_ALIGNMENT                                        -1074395767 // The supplied scale is invalid for your template.
00426 #define ERR_DEPRECATED_FUNCTION                                      -1074395766 // This backwards-compatibility function can not be used with this session. Use newer, supported functions instead.
00427 #define ERR_INVALID_NORMALIZATION_METHOD                             -1074395763 // You must provide a valid normalization method.
00428 #define ERR_INVALID_NIBLACK_DEVIATION_FACTOR                         -1074395762 // The deviation factor for Niblack local threshold must be between 0 and 1.
00429 #define ERR_BOARD_NOT_FOUND                                          -1074395760 // Board not found.
00430 #define ERR_BOARD_NOT_OPEN                                           -1074395758 // Board not opened.
00431 #define ERR_DLL_NOT_FOUND                                            -1074395757 // DLL not found.
00432 #define ERR_DLL_FUNCTION_NOT_FOUND                                   -1074395756 // DLL function not found.
00433 #define ERR_TRIG_TIMEOUT                                             -1074395754 // Trigger timeout.
00434 #define ERR_CONTOUR_INVALID_REFINEMENTS                              -1074395746 // Invalid number specified for maximum contour refinements.
00435 #define ERR_TOO_MANY_CURVES                                          -1074395745 // Too many curves extracted from image. Raise the edge threshold or reduce the ROI.
00436 #define ERR_CONTOUR_INVALID_KERNEL_FOR_SMOOTHING                     -1074395744 // Invalid kernel for contour smoothing. Zero indicates no smoothing, otherwise value must be odd. 
00437 #define ERR_CONTOUR_LINE_INVALID                                     -1074395743 // The contour line fit is invalid. Line segment start and stop must differ.
00438 #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.
00439 #define ERR_CONTOUR_GPM_FAIL                                         -1074395741 // Matching failed to align the template and target contours.
00440 #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. 
00441 #define ERR_CONTOUR_CONNECT_DUPLICATE                                -1074395739 // Only one range is allowed per curve connection constraint type. 
00442 #define ERR_CONTOUR_CONNECT_TYPE                                     -1074395738 // Invalid contour connection constraint type. 
00443 #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
00444 #define ERR_CONTOUR_CURVATURE_KERNEL                                 -1074395736 // Invalid kernel width for curvature calculation. Must be an odd value greater than 1. 
00445 #define ERR_CONTOUR_EXTRACT_SELECTION                                -1074395735 // Invalid Contour Selection method for contour extraction. 
00446 #define ERR_CONTOUR_EXTRACT_DIRECTION                                -1074395734 // Invalid Search Direction for contour extraction. 
00447 #define ERR_CONTOUR_EXTRACT_ROI                                      -1074395733 // Invalid ROI for contour extraction. The ROI must contain an annulus, rectangle or rotated rectangle. 
00448 #define ERR_CONTOUR_NO_CURVES                                        -1074395732 // No curves were found in the image.
00449 #define ERR_CONTOUR_COMPARE_KERNEL                                   -1074395731 // Invalid Smoothing Kernel width for contour comparison. Must be zero or an odd positive integer. 
00450 #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.
00451 #define ERR_CONTOUR_INVALID                                          -1074395729 // Invalid contour image.
00452 #define ERR_INVALID_2D_BARCODE_SEARCH_MODE                           -1074395728 // NI Vision does not support the search mode you provided.
00453 #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.
00454 #define ERR_MATCHFACTOR_OBSOLETE                                     -1074395726 // matchFactor has been obsoleted. Instead, set the initialMatchListLength and matchListReductionFactor in the MatchPatternAdvancedOptions structure.
00455 #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.
00456 #define ERR_CUSTOMDATA_INVALID_SIZE                                  -1074395724 // The size you specified is out of the valid range.
00457 #define ERR_CUSTOMDATA_KEY_NOT_FOUND                                 -1074395723 // The key you specified cannot be found in the image.
00458 #define ERR_CLASSIFIER_CLASSIFY_IMAGE_WITH_CUSTOM_SESSION            -1074395722 // Custom classifier sessions only classify feature vectors. They do not support classifying images.
00459 #define ERR_INVALID_BIT_DEPTH                                        -1074395721 // NI Vision does not support the bit depth you supplied for the image you supplied.
00460 #define ERR_BAD_ROI                                                  -1074395720 // Invalid ROI.
00461 #define ERR_BAD_ROI_BOX                                              -1074395719 // Invalid ROI global rectangle.
00462 #define ERR_LAB_VERSION                                              -1074395718 // The version of LabVIEW or BridgeVIEW you are running does not support this operation.
00463 #define ERR_INVALID_RANGE                                            -1074395717 // The range you supplied is invalid.
00464 #define ERR_INVALID_SCALING_METHOD                                   -1074395716 // NI Vision does not support the scaling method you provided.
00465 #define ERR_INVALID_CALIBRATION_UNIT                                 -1074395715 // NI Vision does not support the calibration unit you supplied.
00466 #define ERR_INVALID_AXIS_ORIENTATION                                 -1074395714 // NI Vision does not support the axis orientation you supplied.
00467 #define ERR_VALUE_NOT_IN_ENUM                                        -1074395713 // Value not in enumeration.
00468 #define ERR_WRONG_REGION_TYPE                                        -1074395712 // You selected a region that is not of the right type.
00469 #define ERR_NOT_ENOUGH_REGIONS                                       -1074395711 // You specified a viewer that does not contain enough regions.
00470 #define ERR_TOO_MANY_PARTICLES                                       -1074395710 // The image has too many particles for this process.
00471 #define ERR_AVI_UNOPENED_SESSION                                     -1074395709 // The AVI session has not been opened.
00472 #define ERR_AVI_READ_SESSION_REQUIRED                                -1074395708 // The AVI session is a write session, but this operation requires a read session.
00473 #define ERR_AVI_WRITE_SESSION_REQUIRED                               -1074395707 // The AVI session is a read session, but this operation requires a write session.
00474 #define ERR_AVI_SESSION_ALREADY_OPEN                                 -1074395706 // This AVI session is already open. You must close it before calling the Create or Open functions.
00475 #define ERR_DATA_CORRUPTED                                           -1074395705 // The data is corrupted and cannot be read.
00476 #define ERR_INVALID_COMPRESSION_TYPE                                 -1074395704 // Invalid compression type.
00477 #define ERR_INVALID_TYPE_OF_FLATTEN                                  -1074395703 // Invalid type of flatten.
00478 #define ERR_INVALID_LENGTH                                           -1074395702 // The length of the edge detection line must be greater than zero.
00479 #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.
00480 #define ERR_REQUIRES_WIN2000_OR_NEWER                                -1074395700 // The function requires the operating system to be Microsoft Windows 2000 or newer.
00481 #define ERR_INVALID_CALIBRATION_METHOD                               -1074395662 // Invalid calibration method requested
00482 #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
00483 #define ERR_INVALID_POLYNOMIAL_MODEL_K_COUNT                         -1074395660 // Invalid number of K values 
00484 #define ERR_INVALID_DISTORTION_MODEL                                 -1074395659 // Invalid distortion model type
00485 #define ERR_CAMERA_MODEL_NOT_AVAILABLE                               -1074395658 // Camera Model is not learned
00486 #define ERR_INVALID_THUMBNAIL_INDEX                                  -1074395657 // Supplied thumbnail index is invalid
00487 #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.
00488 #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.
00489 #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.
00490 #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.
00491 #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.
00492 #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.
00493 #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.
00494 #define ERR_INVALID_GEOMETRIC_FEATURE_TYPE                           -1074395649 // The geometric feature type specified is invalid.
00495 #define ERR_TEMPLATE_NOT_LEARNED                                     -1074395648 // You supplied a template that was not learned.
00496 #define ERR_INVALID_MULTIPLE_GEOMETRIC_TEMPLATE                      -1074395647 // Invalid multiple geometric template.
00497 #define ERR_NO_TEMPLATE_TO_LEARN                                     -1074395646 // Need at least one template to learn.
00498 #define ERR_INVALID_NUMBER_OF_LABELS                                 -1074395645 // You supplied an invalid number of labels.
00499 #define ERR_LABEL_TOO_LONG                                           -1074395644 // Labels must be <= 255 characters.
00500 #define ERR_INVALID_NUMBER_OF_MATCH_OPTIONS                          -1074395643 // You supplied an invalid number of match options.
00501 #define ERR_LABEL_NOT_FOUND                                          -1074395642 // Cannot find a label that matches the one you specified.
00502 #define ERR_DUPLICATE_LABEL                                          -1074395641 // Duplicate labels are not allowed.
00503 #define ERR_TOO_MANY_ZONES                                           -1074395640 // The number of zones found exceeded the capacity of the algorithm.
00504 #define ERR_INVALID_HATCH_STYLE                                      -1074395639 // The hatch style for the window background is invalid.
00505 #define ERR_INVALID_FILL_STYLE                                       -1074395638 // The fill style for the window background is invalid.
00506 #define ERR_HARDWARE_DOESNT_SUPPORT_NONTEARING                       -1074395637 // Your hardware is not supported by DirectX and cannot be put into NonTearing mode.
00507 #define ERR_DIRECTX_NOT_FOUND                                        -1074395636 // DirectX is required for this feature.  Please install the latest version..
00508 #define ERR_INVALID_SHAPE_DESCRIPTOR                                 -1074395635 // The passed shape descriptor is invalid.
00509 #define ERR_INVALID_MAX_MATCH_OVERLAP                                -1074395634 // Invalid max match overlap.  Values must be between -1 and 100.
00510 #define ERR_INVALID_MIN_MATCH_SEPARATION_SCALE                       -1074395633 // Invalid minimum match separation scale.  Values must be greater than or equal to -1.
00511 #define ERR_INVALID_MIN_MATCH_SEPARATION_ANGLE                       -1074395632 // Invalid minimum match separation angle.  Values must be between -1 and 360.
00512 #define ERR_INVALID_MIN_MATCH_SEPARATION_DISTANCE                    -1074395631 // Invalid minimum match separation distance.  Values must be greater than or equal to -1.
00513 #define ERR_INVALID_MAXIMUM_FEATURES_LEARNED                         -1074395630 // Invalid maximum number of features learn. Values must be integers greater than zero.
00514 #define ERR_INVALID_MAXIMUM_PIXEL_DISTANCE_FROM_LINE                 -1074395629 // Invalid maximum pixel distance from line. Values must be positive real numbers.
00515 #define ERR_INVALID_GEOMETRIC_MATCHING_TEMPLATE                      -1074395628 // Invalid geometric matching template image.
00516 #define ERR_NOT_ENOUGH_TEMPLATE_FEATURES_1                           -1074395627 // The template does not contain enough features for geometric matching.
00517 #define ERR_NOT_ENOUGH_TEMPLATE_FEATURES                             -1074395626 // The template does not contain enough features for geometric matching.
00518 #define ERR_INVALID_MATCH_CONSTRAINT_TYPE                            -1074395625 // You specified an invalid value for the match constraint value of the  range settings.
00519 #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.
00520 #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.
00521 #define ERR_INVALID_MATCH_GEOMETRIC_PATTERN_SETUP_DATA               -1074395622 // Invalid match geometric pattern setup data.
00522 #define ERR_INVALID_LEARN_GEOMETRIC_PATTERN_SETUP_DATA               -1074395621 // Invalid learn geometric pattern setup data.
00523 #define ERR_INVALID_CURVE_EXTRACTION_MODE                            -1074395620 // Invalid curve extraction mode.
00524 #define ERR_TOO_MANY_OCCLUSION_RANGES                                -1074395619 // You can specify only one occlusion range.
00525 #define ERR_TOO_MANY_SCALE_RANGES                                    -1074395618 // You can specify only one scale range.
00526 #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.
00527 #define ERR_INVALID_EDGE_FILTER_SIZE                                 -1074395616 // Invalid edge filter size.
00528 #define ERR_INVALID_MINIMUM_FEATURE_STRENGTH                         -1074395615 // Invalid minimum strength for features. Values must be positive real numbers.
00529 #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.
00530 #define ERR_INVALID_MINIMUM_FEATURE_LENGTH                           -1074395613 // Invalid minimum length for linear features. Values must be integers greater than 0.
00531 #define ERR_INVALID_MINIMUM_FEATURE_RADIUS                           -1074395612 // Invalid minimum radius for circular features. Values must be integers greater than 0.
00532 #define ERR_INVALID_MINIMUM_RECTANGLE_DIMENSION                      -1074395611 // Invalid minimum rectangle dimension. Values must be integers greater than 0.
00533 #define ERR_INVALID_INITIAL_MATCH_LIST_LENGTH                        -1074395610 // Invalid initial match list length. Values must be integers greater than 5.
00534 #define ERR_INVALID_SUBPIXEL_TOLERANCE                               -1074395609 // Invalid subpixel tolerance. Values must be positive real numbers.
00535 #define ERR_INVALID_SUBPIXEL_ITERATIONS                              -1074395608 // Invalid number of subpixel iterations. Values must be integers greater 10.
00536 #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.
00537 #define ERR_INVALID_MINIMUM_FEATURES_TO_MATCH                        -1074395606 // Invalid minimum number of features used for matching. Values must be integers greater than zero.
00538 #define ERR_INVALID_MAXIMUM_END_POINT_GAP                            -1074395605 // Invalid maximum end point gap. Valid values range from 0 to 32767.
00539 #define ERR_INVALID_COLUMN_STEP                                      -1074395604 // Invalid column step. Valid range is 1 to 255.
00540 #define ERR_INVALID_ROW_STEP                                         -1074395603 // Invalid row step. Valid range is 1 to 255.
00541 #define ERR_INVALID_MINIMUM_CURVE_LENGTH                             -1074395602 // Invalid minimum length. Valid values must be greater than or equal to zero.
00542 #define ERR_INVALID_EDGE_THRESHOLD                                   -1074395601 // Invalid edge threshold. Valid values range from 1 to 360.
00543 #define ERR_INFO_NOT_FOUND                                           -1074395600 // You must provide information about the subimage within the browser.
00544 #define ERR_NIOCR_INVALID_ACCEPTANCE_LEVEL                           -1074395598 // The acceptance level is outside the valid range of  0 to 1000.
00545 #define ERR_NIOCR_NOT_A_VALID_SESSION                                -1074395597 // Not a valid OCR session.
00546 #define ERR_NIOCR_INVALID_CHARACTER_SIZE                             -1074395596 // Invalid character size. Character size must be >= 1.
00547 #define ERR_NIOCR_INVALID_THRESHOLD_MODE                             -1074395595 // Invalid threshold mode value.
00548 #define ERR_NIOCR_INVALID_SUBSTITUTION_CHARACTER                     -1074395594 // Invalid substitution character. Valid substitution characters are ASCII values that range from 1 to 254.
00549 #define ERR_NIOCR_INVALID_NUMBER_OF_BLOCKS                           -1074395593 // Invalid number of blocks. Number of blocks must be >= 4 and <= 50.
00550 #define ERR_NIOCR_INVALID_READ_STRATEGY                              -1074395592 // Invalid read strategy.
00551 #define ERR_NIOCR_INVALID_CHARACTER_INDEX                            -1074395591 // Invalid character index.
00552 #define ERR_NIOCR_INVALID_NUMBER_OF_VALID_CHARACTER_POSITIONS        -1074395590 // Invalid number of character positions. Valid values range from 0 to 255.
00553 #define ERR_NIOCR_INVALID_LOW_THRESHOLD_VALUE                        -1074395589 // Invalid low threshold value. Valid threshold values range from 0 to 255.
00554 #define ERR_NIOCR_INVALID_HIGH_THRESHOLD_VALUE                       -1074395588 // Invalid high threshold value. Valid threshold values range from 0 to 255.
00555 #define ERR_NIOCR_INVALID_THRESHOLD_RANGE                            -1074395587 // The low threshold must be less than the high threshold.
00556 #define ERR_NIOCR_INVALID_LOWER_THRESHOLD_LIMIT                      -1074395586 // Invalid lower threshold limit. Valid lower threshold limits range from 0 to 255.
00557 #define ERR_NIOCR_INVALID_UPPER_THRESHOLD_LIMIT                      -1074395585 // Invalid upper threshold limit. Valid upper threshold limits range from 0 to 255.
00558 #define ERR_NIOCR_INVALID_THRESHOLD_LIMITS                           -1074395584 // The lower threshold limit must be less than the upper threshold limit.
00559 #define ERR_NIOCR_INVALID_MIN_CHAR_SPACING                           -1074395583 // Invalid minimum character spacing value. Character spacing must be >= 1 pixel.
00560 #define ERR_NIOCR_INVALID_MAX_HORIZ_ELEMENT_SPACING                  -1074395582 // Invalid maximum horizontal element spacing value. Maximum horizontal element spacing must be >= 0.
00561 #define ERR_NIOCR_INVALID_MAX_VERT_ELEMENT_SPACING                   -1074395581 // Invalid maximum vertical element spacing value. Maximum vertical element spacing must be >= 0.
00562 #define ERR_NIOCR_INVALID_MIN_BOUNDING_RECT_WIDTH                    -1074395580 // Invalid minimum bounding rectangle width. Minimum bounding rectangle width must be >= 1.
00563 #define ERR_NIOCR_INVALID_ASPECT_RATIO                               -1074395579 // Invalid aspect ratio value. The aspect ratio must be zero or >= 100.
00564 #define ERR_NIOCR_INVALID_CHARACTER_SET_FILE                         -1074395578 // Invalid or corrupt character set file.
00565 #define ERR_NIOCR_CHARACTER_VALUE_CANNOT_BE_EMPTYSTRING              -1074395577 // The character value must not be an empty string.
00566 #define ERR_NIOCR_CHARACTER_VALUE_TOO_LONG                           -1074395576 // Character values must be <=255 characters.
00567 #define ERR_NIOCR_INVALID_NUMBER_OF_EROSIONS                         -1074395575 // Invalid number of erosions. The number of erosions must be >= 0.
00568 #define ERR_NIOCR_CHARACTER_SET_DESCRIPTION_TOO_LONG                 -1074395574 // The character set description must be <=255 characters.
00569 #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.
00570 #define ERR_NIOCR_INTEGER_VALUE_FOR_STRING_ATTRIBUTE                 -1074395572 // You must specify characters for a string. A string cannot contain integers.
00571 #define ERR_NIOCR_GET_ONLY_ATTRIBUTE                                 -1074395571 // This attribute is read-only.
00572 #define ERR_NIOCR_INTEGER_VALUE_FOR_BOOLEAN_ATTRIBUTE                -1074395570 // This attribute requires a Boolean value.
00573 #define ERR_NIOCR_INVALID_ATTRIBUTE                                  -1074395569 // Invalid attribute.
00574 #define ERR_NIOCR_STRING_VALUE_FOR_INTEGER_ATTRIBUTE                 -1074395568 // This attribute requires integer values.
00575 #define ERR_NIOCR_STRING_VALUE_FOR_BOOLEAN_ATTRIBUTE                 -1074395567 // String values are invalid for this attribute. Enter a boolean value.
00576 #define ERR_NIOCR_BOOLEAN_VALUE_FOR_INTEGER_ATTRIBUTE                -1074395566 // Boolean values are not valid for this attribute. Enter an integer value.
00577 #define ERR_NIOCR_MUST_BE_SINGLE_CHARACTER                           -1074395565 // Requires a single-character string.
00578 #define ERR_NIOCR_INVALID_PREDEFINED_CHARACTER                       -1074395564 // Invalid predefined character value.
00579 #define ERR_NIOCR_UNLICENSED                                         -1074395563 // This copy of NI OCR is unlicensed.
00580 #define ERR_NIOCR_BOOLEAN_VALUE_FOR_STRING_ATTRIBUTE                 -1074395562 // String values are not valid for this attribute. Enter a Boolean value.
00581 #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.
00582 #define ERR_NIOCR_INVALID_OBJECT_INDEX                               -1074395560 // Invalid object index.
00583 #define ERR_NIOCR_INVALID_READ_OPTION                                -1074395559 // Invalid read option.
00584 #define ERR_NIOCR_INVALID_CHARACTER_SIZE_RANGE                       -1074395558 // The minimum character size must be less than the maximum character size.
00585 #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.
00586 #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.
00587 #define ERR_NIOCR_INVALID_SPACING_RANGE                              -1074395555 // The maximum horizontal element spacing value must not exceed the minimum character spacing value.
00588 #define ERR_NIOCR_INVALID_READ_RESOLUTION                            -1074395554 // Invalid read resolution.
00589 #define ERR_NIOCR_INVALID_MIN_BOUNDING_RECT_HEIGHT                   -1074395553 // Invalid minimum bounding rectangle height. The minimum bounding rectangle height must be >= 1.
00590 #define ERR_NIOCR_NOT_A_VALID_CHARACTER_SET                          -1074395552 // Not a valid character set.
00591 #define ERR_NIOCR_RENAME_REFCHAR                                     -1074395551 // A trained OCR character cannot be renamed while it is a reference character.
00592 #define ERR_NIOCR_INVALID_CHARACTER_VALUE                            -1074395550 // A character cannot have an ASCII value of 255.
00593 #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.
00594 #define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_CAP               -1074395421 // The specified value for the filter cap for block matching is invalid.
00595 #define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_SIZE              -1074395420 // The specified prefilter size for block matching is invalid.
00596 #define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_TYPE              -1074395419 // The specified prefilter type for block matching is invalid.
00597 #define ERR_INVALID_STEREO_BLOCKMATCHING_NUMDISPARITIES              -1074395418 // The specifed value for number of disparities is invalid.
00598 #define ERR_INVALID_STEREO_BLOCKMATCHING_WINDOW_SIZE                 -1074395417 // The specified window size for block matching is invalid.
00599 #define ERR_3DVISION_INVALID_SESSION_TYPE                            -1074395416 // This 3D vision function cannot be called on this type of 3d vision session.
00600 #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.
00601 #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.
00602 #define ERR_INVALID_STEREO_BLOCKMATCHING_FILTERTYPE                  -1074395413 // You have specified an invalid filter type for block matching.
00603 #define ERR_INVALID_STEREO_CAMERA_POSITION                           -1074395412 // You have requested results at an invalid camera position in the stereo setup.
00604 #define ERR_INVALID_3DVISION_SESSION                                 -1074395411 // Not a valid 3D Vision session.
00605 #define ERR_INVALID_ICONS_PER_LINE                                   -1074395410 // NI Vision does not support less than one icon per line.
00606 #define ERR_INVALID_SUBPIXEL_DIVISIONS                               -1074395409 // Invalid subpixel divisions.
00607 #define ERR_INVALID_DETECTION_MODE                                   -1074395408 // Invalid detection mode.
00608 #define ERR_INVALID_CONTRAST                                         -1074395407 // Invalid contrast value. Valid contrast values range from 0 to 255.
00609 #define ERR_COORDSYS_NOT_FOUND                                       -1074395406 // The coordinate system could not be found on this image.
00610 #define ERR_INVALID_TEXTORIENTATION                                  -1074395405 // NI Vision does not support the text orientation value you supplied.
00611 #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. 
00612 #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.
00613 #define ERR_INVALID_MAXPOINTS                                        -1074395402 // The function does not support the maximum number of points that you specified.
00614 #define ERR_INVALID_MATCHFACTOR                                      -1074395401 // The function does not support the matchFactor that you specified.
00615 #define ERR_MULTICORE_OPERATION                                      -1074395400 // The operation you have given Multicore Options is invalid. Please see the available enumeration values for Multicore Operation.
00616 #define ERR_MULTICORE_INVALID_ARGUMENT                               -1074395399 // You have given Multicore Options an invalid argument.
00617 #define ERR_COMPLEX_IMAGE_REQUIRED                                   -1074395397 // A complex image is required.
00618 #define ERR_COLOR_IMAGE_REQUIRED                                     -1074395395 // The input image must be a color image.
00619 #define ERR_COLOR_SPECTRUM_MASK                                      -1074395394 // The color mask removes too much color information.
00620 #define ERR_COLOR_TEMPLATE_IMAGE_TOO_SMALL                           -1074395393 // The color template image is too small.
00621 #define ERR_COLOR_TEMPLATE_IMAGE_TOO_LARGE                           -1074395392 // The color template image is too large.
00622 #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.
00623 #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.
00624 #define ERR_COLOR_LEARN_SETUP_DATA                                   -1074395389 // Invalid color learn setup data.
00625 #define ERR_COLOR_LEARN_SETUP_DATA_SHAPE                             -1074395388 // Invalid color learn setup data.
00626 #define ERR_COLOR_MATCH_SETUP_DATA                                   -1074395387 // Invalid color match setup data.
00627 #define ERR_COLOR_MATCH_SETUP_DATA_SHAPE                             -1074395386 // Invalid color match setup data.
00628 #define ERR_COLOR_ROTATION_REQUIRES_SHAPE_FEATURE                    -1074395385 // Rotation-invariant color pattern matching requires a feature mode including shape.
00629 #define ERR_COLOR_TEMPLATE_DESCRIPTOR                                -1074395384 // Invalid color template image.
00630 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_1                              -1074395383 // Invalid color template image.
00631 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_2                              -1074395382 // Invalid color template image.
00632 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_3                              -1074395381 // Invalid color template image.
00633 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_4                              -1074395380 // Invalid color template image.
00634 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_5                              -1074395379 // Invalid color template image.
00635 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_6                              -1074395378 // Invalid color template image.
00636 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT                          -1074395377 // Invalid color template image.
00637 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSHIFT                        -1074395376 // The color template image does not contain data required for shift-invariant color matching.
00638 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT_1                        -1074395375 // Invalid color template image.
00639 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT_2                        -1074395374 // Invalid color template image.
00640 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION                       -1074395373 // Invalid color template image.
00641 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOROTATION                     -1074395372 // The color template image does not contain data required for rotation-invariant color matching.
00642 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_1                     -1074395371 // Invalid color template image.
00643 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_2                     -1074395370 // Invalid color template image.
00644 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_3                     -1074395369 // Invalid color template image.
00645 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_4                     -1074395368 // Invalid color template image.
00646 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_5                     -1074395367 // Invalid color template image.
00647 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSHAPE                        -1074395366 // The color template image does not contain data required for color matching in shape feature mode.
00648 #define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSPECTRUM                     -1074395365 // The color template image does not contain data required for color matching in color feature mode.
00649 #define ERR_IGNORE_COLOR_SPECTRUM_SET                                -1074395364 // The ignore color spectra array is invalid.
00650 #define ERR_INVALID_SUBSAMPLING_RATIO                                -1074395363 // Invalid subsampling ratio.
00651 #define ERR_INVALID_WIDTH                                            -1074395362 // Invalid pixel width.
00652 #define ERR_INVALID_STEEPNESS                                        -1074395361 // Invalid steepness.
00653 #define ERR_COMPLEX_PLANE                                            -1074395360 // Invalid complex plane.
00654 #define ERR_INVALID_COLOR_IGNORE_MODE                                -1074395357 // Invalid color ignore mode.
00655 #define ERR_INVALID_MIN_MATCH_SCORE                                  -1074395356 // Invalid minimum match score. Acceptable values range from 0 to 1000.
00656 #define ERR_INVALID_NUM_MATCHES_REQUESTED                            -1074395355 // Invalid number of matches requested. You must request a minimum of one match.
00657 #define ERR_INVALID_COLOR_WEIGHT                                     -1074395354 // Invalid color weight. Acceptable values range from 0 to 1000.
00658 #define ERR_INVALID_SEARCH_STRATEGY                                  -1074395353 // Invalid search strategy.
00659 #define ERR_INVALID_FEATURE_MODE                                     -1074395352 // Invalid feature mode.
00660 #define ERR_INVALID_RECT                                             -1074395351 // NI Vision does not support rectangles with negative widths or negative heights.
00661 #define ERR_INVALID_VISION_INFO                                      -1074395350 // NI Vision does not support the vision information type you supplied.
00662 #define ERR_INVALID_SKELETONMETHOD                                   -1074395349 // NI Vision does not support the SkeletonMethod value you supplied.
00663 #define ERR_INVALID_3DPLANE                                          -1074395348 // NI Vision does not support the 3DPlane value you supplied.
00664 #define ERR_INVALID_3DDIRECTION                                      -1074395347 // NI Vision does not support the 3DDirection value you supplied.
00665 #define ERR_INVALID_INTERPOLATIONMETHOD_FOR_ROTATE                   -1074395346 // imaqRotate does not support the InterpolationMethod value you supplied.
00666 #define ERR_INVALID_FLIPAXIS                                         -1074395345 // NI Vision does not support the axis of symmetry you supplied.
00667 #define ERR_FILE_FILENAME_NULL                                       -1074395343 // You must pass a valid file name. Do not pass in NULL.
00668 #define ERR_INVALID_SIZETYPE                                         -1074395340 // NI Vision does not support the SizeType value you supplied.
00669 #define ERR_UNKNOWN_ALGORITHM                                        -1074395336 // You specified the dispatch status of an unknown algorithm.
00670 #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.
00671 #define ERR_INVALID_CONVERSIONSTYLE                                  -1074395334 // NI Vision does not support the Conversion Method value you supplied.
00672 #define ERR_INVALID_VERTICAL_TEXT_ALIGNMENT                          -1074395333 // NI Vision does not support the VerticalTextAlignment value you supplied.
00673 #define ERR_INVALID_COMPAREFUNCTION                                  -1074395332 // NI Vision does not support the CompareFunction value you supplied.
00674 #define ERR_INVALID_BORDERMETHOD                                     -1074395331 // NI Vision does not support the BorderMethod value you supplied.
00675 #define ERR_INVALID_BORDER_SIZE                                      -1074395330 // Invalid border size. Acceptable values range from 0 to 50.
00676 #define ERR_INVALID_OUTLINEMETHOD                                    -1074395329 // NI Vision does not support the OutlineMethod value you supplied.
00677 #define ERR_INVALID_INTERPOLATIONMETHOD                              -1074395328 // NI Vision does not support the InterpolationMethod value you supplied.
00678 #define ERR_INVALID_SCALINGMODE                                      -1074395327 // NI Vision does not support the ScalingMode value you supplied.
00679 #define ERR_INVALID_DRAWMODE_FOR_LINE                                -1074395326 // imaqDrawLineOnImage does not support the DrawMode value you supplied.
00680 #define ERR_INVALID_DRAWMODE                                         -1074395325 // NI Vision does not support the DrawMode value you supplied.
00681 #define ERR_INVALID_SHAPEMODE                                        -1074395324 // NI Vision does not support the ShapeMode value you supplied.
00682 #define ERR_INVALID_FONTCOLOR                                        -1074395323 // NI Vision does not support the FontColor value you supplied.
00683 #define ERR_INVALID_TEXTALIGNMENT                                    -1074395322 // NI Vision does not support the TextAlignment value you supplied.
00684 #define ERR_INVALID_MORPHOLOGYMETHOD                                 -1074395321 // NI Vision does not support the MorphologyMethod value you supplied.
00685 #define ERR_TEMPLATE_EMPTY                                           -1074395320 // The template image is empty.
00686 #define ERR_INVALID_SUBPIX_TYPE                                      -1074395319 // NI Vision does not support the interpolation type you supplied.
00687 #define ERR_INSF_POINTS                                              -1074395318 // You supplied an insufficient number of points to perform this operation.
00688 #define ERR_UNDEF_POINT                                              -1074395317 // You specified a point that lies outside the image.
00689 #define ERR_INVALID_KERNEL_CODE                                      -1074395316 // Invalid kernel code.
00690 #define ERR_INEFFICIENT_POINTS                                       -1074395315 // You supplied an inefficient set of points to match the minimum score.
00691 #define ERR_WRITE_FILE_NOT_SUPPORTED                                 -1074395313 // Writing files is not supported on this device.
00692 #define ERR_LCD_CALIBRATE                                            -1074395312 // The input image does not seem to be a valid LCD or LED calibration image.
00693 #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).
00694 #define ERR_INVALID_PALETTE_TYPE                                     -1074395310 // NI Vision does not support the PaletteType value you supplied.
00695 #define ERR_INVALID_WINDOW_THREAD_POLICY                             -1074395309 // NI Vision does not support the WindowThreadPolicy value you supplied.
00696 #define ERR_INVALID_COLORSENSITIVITY                                 -1074395308 // NI Vision does not support the ColorSensitivity value you supplied.
00697 #define ERR_PRECISION_NOT_GTR_THAN_0                                 -1074395307 // The precision parameter must be greater than 0.
00698 #define ERR_INVALID_TOOL                                             -1074395306 // NI Vision does not support the Tool value you supplied.
00699 #define ERR_INVALID_REFERENCEMODE                                    -1074395305 // NI Vision does not support the ReferenceMode value you supplied.
00700 #define ERR_INVALID_MATHTRANSFORMMETHOD                              -1074395304 // NI Vision does not support the MathTransformMethod value you supplied.
00701 #define ERR_INVALID_NUM_OF_CLASSES                                   -1074395303 // Invalid number of classes for auto threshold. Acceptable values range from 2 to 256.
00702 #define ERR_INVALID_THRESHOLDMETHOD                                  -1074395302 // NI Vision does not support the threshold method value you supplied.
00703 #define ERR_ROI_NOT_2_LINES                                          -1074395301 // The ROI you passed into imaqGetMeterArc must consist of two lines.
00704 #define ERR_INVALID_METERARCMODE                                     -1074395300 // NI Vision does not support the MeterArcMode value you supplied.
00705 #define ERR_INVALID_COMPLEXPLANE                                     -1074395299 // NI Vision does not support the ComplexPlane value you supplied.
00706 #define ERR_COMPLEXPLANE_NOT_REAL_OR_IMAGINARY                       -1074395298 // You can perform this operation on a real or an imaginary ComplexPlane only.
00707 #define ERR_INVALID_PARTICLEINFOMODE                                 -1074395297 // NI Vision does not support the ParticleInfoMode value you supplied.
00708 #define ERR_INVALID_BARCODETYPE                                      -1074395296 // NI Vision does not support the BarcodeType value you supplied.
00709 #define ERR_INVALID_INTERPOLATIONMETHOD_INTERPOLATEPOINTS            -1074395295 // imaqInterpolatePoints does not support the InterpolationMethod value you supplied.
00710 #define ERR_CONTOUR_INDEX_OUT_OF_RANGE                               -1074395294 // The contour index you supplied is larger than the number of contours in the ROI.
00711 #define ERR_CONTOURID_NOT_FOUND                                      -1074395293 // The supplied ContourID did not correlate to a contour inside the ROI.
00712 #define ERR_POINTS_ARE_COLLINEAR                                     -1074395292 // Do not supply collinear points for this operation.
00713 #define ERR_SHAPEMATCH_BADIMAGEDATA                                  -1074395291 // Shape Match requires the image to contain only pixel values of 0 or 1.
00714 #define ERR_SHAPEMATCH_BADTEMPLATE                                   -1074395290 // The template you supplied for ShapeMatch contains no shape information.
00715 #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.
00716 #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.
00717 #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).
00718 #define ERR_INVALID_CONCENTRIC_RAKE_DIRECTION                        -1074395286 // Invalid concentric rake direction.
00719 #define ERR_INVALID_SPOKE_DIRECTION                                  -1074395285 // Invalid spoke direction.
00720 #define ERR_INVALID_EDGE_PROCESS                                     -1074395284 // Invalid edge process.
00721 #define ERR_INVALID_RAKE_DIRECTION                                   -1074395283 // Invalid rake direction.
00722 #define ERR_CANT_DRAW_INTO_VIEWER                                    -1074395282 // Unable to draw to viewer. You must have the latest version of the control.
00723 #define ERR_IMAGE_SMALLER_THAN_BORDER                                -1074395281 // Your image must be larger than its border size for this operation.
00724 #define ERR_ROI_NOT_RECT                                             -1074395280 // The ROI must only have a single Rectangle contour.
00725 #define ERR_ROI_NOT_POLYGON                                          -1074395279 // ROI is not a polygon.
00726 #define ERR_LCD_NOT_NUMERIC                                          -1074395278 // LCD image is not a number.
00727 #define ERR_BARCODE_CHECKSUM                                         -1074395277 // The decoded barcode information did not pass the checksum test.
00728 #define ERR_LINES_PARALLEL                                           -1074395276 // You specified parallel lines for the meter ROI.
00729 #define ERR_INVALID_BROWSER_IMAGE                                    -1074395275 // Invalid browser image.
00730 #define ERR_DIV_BY_ZERO                                              -1074395270 // Cannot divide by zero.
00731 #define ERR_NULL_POINTER                                             -1074395269 // Null pointer.
00732 #define ERR_LINEAR_COEFF                                             -1074395268 // The linear equations are not independent.
00733 #define ERR_COMPLEX_ROOT                                             -1074395267 // The roots of the equation are complex.
00734 #define ERR_BARCODE                                                  -1074395265 // The barcode does not match the type you specified.
00735 #define ERR_LCD_NO_SEGMENTS                                          -1074395263 // No lit segment.
00736 #define ERR_LCD_BAD_MATCH                                            -1074395262 // The LCD does not form a known digit.
00737 #define ERR_GIP_RANGE                                                -1074395261 // An internal error occurred while attempting to access an invalid coordinate on an image.
00738 #define ERR_HEAP_TRASHED                                             -1074395260 // An internal memory error occurred.
00739 #define ERR_BAD_FILTER_WIDTH                                         -1074395258 // The filter width must be odd for the Canny operator.
00740 #define ERR_INVALID_EDGE_DIR                                         -1074395257 // You supplied an invalid edge direction in the Canny operator.
00741 #define ERR_EVEN_WINDOW_SIZE                                         -1074395256 // The window size must be odd for the Canny operator.
00742 #define ERR_INVALID_LEARN_MODE                                       -1074395253 // Invalid learn mode.
00743 #define ERR_LEARN_SETUP_DATA                                         -1074395252 // Invalid learn setup data.
00744 #define ERR_INVALID_MATCH_MODE                                       -1074395251 // Invalid match mode.
00745 #define ERR_MATCH_SETUP_DATA                                         -1074395250 // Invalid match setup data.
00746 #define ERR_ROTATION_ANGLE_RANGE_TOO_LARGE                           -1074395249 // At least one range in the array of rotation angle ranges exceeds 360 degrees.
00747 #define ERR_TOO_MANY_ROTATION_ANGLE_RANGES                           -1074395248 // The array of rotation angle ranges contains too many ranges.
00748 #define ERR_TEMPLATE_DESCRIPTOR                                      -1074395247 // Invalid template descriptor.
00749 #define ERR_TEMPLATE_DESCRIPTOR_1                                    -1074395246 // Invalid template descriptor.
00750 #define ERR_TEMPLATE_DESCRIPTOR_2                                    -1074395245 // Invalid template descriptor.
00751 #define ERR_TEMPLATE_DESCRIPTOR_3                                    -1074395244 // Invalid template descriptor.
00752 #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.
00753 #define ERR_TEMPLATE_DESCRIPTOR_ROTATION                             -1074395242 // Invalid template descriptor.
00754 #define ERR_TEMPLATE_DESCRIPTOR_NOROTATION                           -1074395241 // The template descriptor does not contain data required for rotation-invariant matching.
00755 #define ERR_TEMPLATE_DESCRIPTOR_ROTATION_1                           -1074395240 // Invalid template descriptor.
00756 #define ERR_TEMPLATE_DESCRIPTOR_SHIFT                                -1074395239 // Invalid template descriptor.
00757 #define ERR_TEMPLATE_DESCRIPTOR_NOSHIFT                              -1074395238 // The template descriptor does not contain data required for shift-invariant matching.
00758 #define ERR_TEMPLATE_DESCRIPTOR_SHIFT_1                              -1074395237 // Invalid template descriptor.
00759 #define ERR_TEMPLATE_DESCRIPTOR_NOSCALE                              -1074395236 // The template descriptor does not contain data required for scale-invariant matching.
00760 #define ERR_TEMPLATE_IMAGE_CONTRAST_TOO_LOW                          -1074395235 // The template image does not contain enough contrast.
00761 #define ERR_TEMPLATE_IMAGE_TOO_SMALL                                 -1074395234 // The template image is too small.
00762 #define ERR_TEMPLATE_IMAGE_TOO_LARGE                                 -1074395233 // The template image is too large.
00763 #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.
00764 #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.
00765 #define ERR_OCR_BAD_TEXT_TEMPLATE                                    -1074395211 // The supplied text template contains nonstandard characters that cannot be generated by OCR.
00766 #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.
00767 #define ERR_OCR_LIB_INIT                                             -1074395203 // The OCR library cannot be initialized correctly.
00768 #define ERR_OCR_LOAD_LIBRARY                                         -1074395201 // There was a failure when loading one of the internal OCR engine or LabView libraries.
00769 #define ERR_OCR_INVALID_PARAMETER                                    -1074395200 // One of the parameters supplied to the OCR function that generated this error is invalid.
00770 #define ERR_MARKER_INFORMATION_NOT_SUPPLIED                          -1074395199 // Marker image and points are not supplied
00771 #define ERR_INCOMPATIBLE_MARKER_IMAGE_SIZE                           -1074395198 // Source Image and Marker Image should be of same size.
00772 #define ERR_BOTH_MARKER_INPUTS_SUPPLIED                              -1074395197 // Both Marker Image and Points are supplied.
00773 #define ERR_INVALID_MORPHOLOGICAL_OPERATION                          -1074395196 // Invalid Morphological Operation.
00774 #define ERR_IMAGE_CONTAINS_NAN_VALUES                                -1074395195 // Float image contains NaN values
00775 #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.
00776 #define ERR_NO_CLAMP_FOUND                                           -1074395193 // No valid clamp was found with the current configuration
00777 #define ERR_NO_CLAMP_WITHIN_ANGLE_RANGE                              -1074395192 // Supplied angle range for clamp is insufficient
00778 #define ERR_GHT_INVALID_USE_ALL_CURVES_VALUE                         -1074395188 // The use all curves advanced option specified during learn is not supported
00779 #define ERR_INVALID_GAUSS_SIGMA_VALUE                                -1074395187 // The sigma value specified for the Gaussian filter is too small.
00780 #define ERR_INVALID_GAUSS_FILTER_TYPE                                -1074395186 // The specified Gaussian filter type is not supported.
00781 #define ERR_INVALID_CONTRAST_REVERSAL_MODE                           -1074395185 // The contrast reversal mode specified during matching is invalid.
00782 #define ERR_INVALID_ROTATION_RANGE                                   -1074395184 // Invalid roation angle range. The upper bound must be greater than or equal to the lower bound.
00783 #define ERR_GHT_INVALID_MINIMUM_LEARN_ANGLE_VALUE                    -1074395183 // The minimum rotation angle value specifed during learning of the template is not supported.
00784 #define ERR_GHT_INVALID_MAXIMUM_LEARN_ANGLE_VALUE                    -1074395182 // The maximum rotation angle value specifed during learning of the template is not supported.
00785 #define ERR_GHT_INVALID_MAXIMUM_LEARN_SCALE_FACTOR                   -1074395181 // The maximum scale factor specifed during learning of the template is not supported.
00786 #define ERR_GHT_INVALID_MINIMUM_LEARN_SCALE_FACTOR                   -1074395180 // The minimum scale factor specifed during learning of the template is not supported.
00787 #define ERR_OCR_PREPROCESSING_FAILED                                 -1074395179 // The OCR engine failed during the preprocessing stage.
00788 #define ERR_OCR_RECOGNITION_FAILED                                   -1074395178 // The OCR engine failed during the recognition stage.
00789 #define ERR_OCR_BAD_USER_DICTIONARY                                  -1074395175 // The provided filename is not valid user dictionary filename.
00790 #define ERR_OCR_INVALID_AUTOORIENTMODE                               -1074395174 // NI Vision does not support the AutoOrientMode value you supplied.
00791 #define ERR_OCR_INVALID_LANGUAGE                                     -1074395173 // NI Vision does not support the Language value you supplied.
00792 #define ERR_OCR_INVALID_CHARACTERSET                                 -1074395172 // NI Vision does not support the CharacterSet value you supplied.
00793 #define ERR_OCR_INI_FILE_NOT_FOUND                                   -1074395171 // The system could not locate the initialization file required for OCR initialization.
00794 #define ERR_OCR_INVALID_CHARACTERTYPE                                -1074395170 // NI Vision does not support the CharacterType value you supplied.
00795 #define ERR_OCR_INVALID_RECOGNITIONMODE                              -1074395169 // NI Vision does not support the RecognitionMode value you supplied.
00796 #define ERR_OCR_INVALID_AUTOCORRECTIONMODE                           -1074395168 // NI Vision does not support the AutoCorrectionMode value you supplied.
00797 #define ERR_OCR_INVALID_OUTPUTDELIMITER                              -1074395167 // NI Vision does not support the OutputDelimiter value you supplied.
00798 #define ERR_OCR_BIN_DIR_NOT_FOUND                                    -1074395166 // The system could not locate the OCR binary directory required for OCR initialization.
00799 #define ERR_OCR_WTS_DIR_NOT_FOUND                                    -1074395165 // The system could not locate the OCR weights directory required for OCR initialization.
00800 #define ERR_OCR_ADD_WORD_FAILED                                      -1074395164 // The supplied word could not be added to the user dictionary.
00801 #define ERR_OCR_INVALID_CHARACTERPREFERENCE                          -1074395163 // NI Vision does not support the CharacterPreference value you supplied.
00802 #define ERR_OCR_INVALID_CORRECTIONMODE                               -1074395162 // NI Vision does not support the CorrectionMethod value you supplied.
00803 #define ERR_OCR_INVALID_CORRECTIONLEVEL                              -1074395161 // NI Vision does not support the CorrectionLevel value you supplied.
00804 #define ERR_OCR_INVALID_MAXPOINTSIZE                                 -1074395160 // NI Vision does not support the maximum point size you supplied.  Valid values range from 4 to 72.
00805 #define ERR_OCR_INVALID_TOLERANCE                                    -1074395159 // NI Vision does not support the tolerance value you supplied.  Valid values are non-negative.
00806 #define ERR_OCR_INVALID_CONTRASTMODE                                 -1074395158 // NI Vision does not support the ContrastMode value you supplied.
00807 #define ERR_OCR_SKEW_DETECT_FAILED                                   -1074395156 // The OCR attempted to detected the text skew and failed.
00808 #define ERR_OCR_ORIENT_DETECT_FAILED                                 -1074395155 // The OCR attempted to detected the text orientation and failed.
00809 #define ERR_FONT_FILE_FORMAT                                         -1074395153 // Invalid font file format.
00810 #define ERR_FONT_FILE_NOT_FOUND                                      -1074395152 // Font file not found.
00811 #define ERR_OCR_CORRECTION_FAILED                                    -1074395151 // The OCR engine failed during the correction stage.
00812 #define ERR_INVALID_ROUNDING_MODE                                    -1074395150 // NI Vision does not support the RoundingMode value you supplied.
00813 #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.
00814 #define ERR_OVERLAY_GROUP_NOT_FOUND                                  -1074395148 // Overlay Group Not Found.
00815 #define ERR_BARCODE_RSSLIMITED                                       -1074395147 // The barcode is not a valid RSS Limited symbol
00816 #define ERR_QR_DETECTION_VERSION                                     -1074395146 // Couldn't determine the correct version of the QR code.
00817 #define ERR_QR_INVALID_READ                                          -1074395145 // Invalid read of the QR code.
00818 #define ERR_QR_INVALID_BARCODE                                       -1074395144 // The barcode that was read contains invalid parameters.
00819 #define ERR_QR_DETECTION_MODE                                        -1074395143 // The data stream that was demodulated could not be read because the mode was not detected.
00820 #define ERR_QR_DETECTION_MODELTYPE                                   -1074395142 // Couldn't determine the correct model of the QR code.
00821 #define ERR_OCR_NO_TEXT_FOUND                                        -1074395141 // The OCR engine could not find any text in the supplied region.
00822 #define ERR_OCR_CHAR_REPORT_CORRUPTED                                -1074395140 // One of the character reports is no longer usable by the system.
00823 #define ERR_IMAQ_QR_DIMENSION_INVALID                                -1074395139 // Invalid Dimensions.
00824 #define ERR_OCR_REGION_TOO_SMALL                                     -1074395138 // The OCR region provided was too small to have contained any characters.
00825 #define _FIRST_ERR  ERR_SYSTEM_ERROR
00826 #define _LAST_ERR   ERR_OCR_REGION_TOO_SMALL
00827 
00828 //============================================================================
00829 //  Enumerated Types
00830 //============================================================================
00831 typedef enum PointSymbol_enum {
00832     IMAQ_POINT_AS_PIXEL          = 0,           //A single pixel represents a point in the overlay.
00833     IMAQ_POINT_AS_CROSS          = 1,           //A cross represents a point in the overlay.
00834     IMAQ_POINT_USER_DEFINED      = 2,           //The pattern supplied by the user represents a point in the overlay.
00835     IMAQ_POINT_SYMBOL_SIZE_GUARD = 0xFFFFFFFF   
00836 } PointSymbol;
00837 
00838 typedef enum MeasurementValue_enum {
00839     IMAQ_AREA                         = 0,           //Surface area of the particle in pixels.
00840     IMAQ_AREA_CALIBRATED              = 1,           //Surface area of the particle in calibrated units.
00841     IMAQ_NUM_HOLES                    = 2,           //Number of holes in the particle.
00842     IMAQ_AREA_OF_HOLES                = 3,           //Surface area of the holes in calibrated units.
00843     IMAQ_TOTAL_AREA                   = 4,           //Total surface area (holes and particle) in calibrated units.
00844     IMAQ_IMAGE_AREA                   = 5,           //Surface area of the entire image in calibrated units.
00845     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.
00846     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.
00847     IMAQ_CENTER_MASS_X                = 8,           //X-coordinate of the center of mass.
00848     IMAQ_CENTER_MASS_Y                = 9,           //Y-coordinate of the center of mass.
00849     IMAQ_LEFT_COLUMN                  = 10,          //Left edge of the bounding rectangle.
00850     IMAQ_TOP_ROW                      = 11,          //Top edge of the bounding rectangle.
00851     IMAQ_RIGHT_COLUMN                 = 12,          //Right edge of the bounding rectangle.
00852     IMAQ_BOTTOM_ROW                   = 13,          //Bottom edge of bounding rectangle.
00853     IMAQ_WIDTH                        = 14,          //Width of bounding rectangle in calibrated units.
00854     IMAQ_HEIGHT                       = 15,          //Height of bounding rectangle in calibrated units.
00855     IMAQ_MAX_SEGMENT_LENGTH           = 16,          //Length of longest horizontal line segment.
00856     IMAQ_MAX_SEGMENT_LEFT_COLUMN      = 17,          //Leftmost x-coordinate of longest horizontal line segment.
00857     IMAQ_MAX_SEGMENT_TOP_ROW          = 18,          //Y-coordinate of longest horizontal line segment.
00858     IMAQ_PERIMETER                    = 19,          //Outer perimeter of the particle.
00859     IMAQ_PERIMETER_OF_HOLES           = 20,          //Perimeter of all holes within the particle.
00860     IMAQ_SIGMA_X                      = 21,          //Sum of the particle pixels on the x-axis.
00861     IMAQ_SIGMA_Y                      = 22,          //Sum of the particle pixels on the y-axis.
00862     IMAQ_SIGMA_XX                     = 23,          //Sum of the particle pixels on the x-axis squared.
00863     IMAQ_SIGMA_YY                     = 24,          //Sum of the particle pixels on the y-axis squared.
00864     IMAQ_SIGMA_XY                     = 25,          //Sum of the particle pixels on the x-axis and y-axis.
00865     IMAQ_PROJ_X                       = 26,          //Projection corrected in X.
00866     IMAQ_PROJ_Y                       = 27,          //Projection corrected in Y.
00867     IMAQ_INERTIA_XX                   = 28,          //Inertia matrix coefficient in XX.
00868     IMAQ_INERTIA_YY                   = 29,          //Inertia matrix coefficient in YY.
00869     IMAQ_INERTIA_XY                   = 30,          //Inertia matrix coefficient in XY.
00870     IMAQ_MEAN_H                       = 31,          //Mean length of horizontal segments.
00871     IMAQ_MEAN_V                       = 32,          //Mean length of vertical segments.
00872     IMAQ_MAX_INTERCEPT                = 33,          //Length of longest segment of the convex hull.
00873     IMAQ_MEAN_INTERCEPT               = 34,          //Mean length of the chords in an object perpendicular to its max intercept.
00874     IMAQ_ORIENTATION                  = 35,          //The orientation based on the inertia of the pixels in the particle.
00875     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.
00876     IMAQ_ELLIPSE_MAJOR                = 37,          //Total length of major axis having the same area and perimeter as the particle in calibrated units.
00877     IMAQ_ELLIPSE_MINOR                = 38,          //Total length of minor axis having the same area and perimeter as the particle in calibrated units.
00878     IMAQ_ELLIPSE_RATIO                = 39,          //Fraction of major axis to minor axis.
00879     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.
00880     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.
00881     IMAQ_RECT_RATIO                   = 42,          //Ratio of rectangle long side to rectangle short side.
00882     IMAQ_ELONGATION                   = 43,          //Max intercept/mean perpendicular intercept.
00883     IMAQ_COMPACTNESS                  = 44,          //Particle area/(height x width).
00884     IMAQ_HEYWOOD                      = 45,          //Particle perimeter/perimeter of the circle having the same area as the particle.
00885     IMAQ_TYPE_FACTOR                  = 46,          //A complex factor relating the surface area to the moment of inertia.
00886     IMAQ_HYDRAULIC                    = 47,          //Particle area/particle perimeter.
00887     IMAQ_WADDLE_DISK                  = 48,          //Diameter of the disk having the same area as the particle in user units.
00888     IMAQ_DIAGONAL                     = 49,          //Diagonal of an equivalent rectangle in user units.
00889     IMAQ_MEASUREMENT_VALUE_SIZE_GUARD = 0xFFFFFFFF   
00890 } MeasurementValue;
00891 
00892 typedef enum ScalingMode_enum {
00893     IMAQ_SCALE_LARGER            = 0,           //The function duplicates pixels to make the image larger.
00894     IMAQ_SCALE_SMALLER           = 1,           //The function subsamples pixels to make the image smaller.
00895     IMAQ_SCALING_MODE_SIZE_GUARD = 0xFFFFFFFF   
00896 } ScalingMode;
00897 
00898 typedef enum ScalingMethod_enum {
00899     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.
00900     IMAQ_SCALE_TO_FIT              = 1,           //Correction functions scale the image such that the corrected image is the same size as the input image.
00901     IMAQ_SCALING_METHOD_SIZE_GUARD = 0xFFFFFFFF   
00902 } ScalingMethod;
00903 
00904 typedef enum ReferenceMode_enum {
00905     IMAQ_COORD_X_Y                 = 0,           //This method requires three elements in the points array.
00906     IMAQ_COORD_ORIGIN_X            = 1,           //This method requires two elements in the points array.
00907     IMAQ_REFERENCE_MODE_SIZE_GUARD = 0xFFFFFFFF   
00908 } ReferenceMode;
00909 
00910 typedef enum RectOrientation_enum {
00911     IMAQ_BASE_INSIDE                 = 0,           //Specifies that the base of the rectangular image lies along the inside edge of the annulus.
00912     IMAQ_BASE_OUTSIDE                = 1,           //Specifies that the base of the rectangular image lies along the outside edge of the annulus.
00913     IMAQ_TEXT_ORIENTATION_SIZE_GUARD = 0xFFFFFFFF   
00914 } RectOrientation;
00915 
00916 typedef enum ShapeMode_enum {
00917     IMAQ_SHAPE_RECT            = 1,           //The function draws a rectangle.
00918     IMAQ_SHAPE_OVAL            = 2,           //The function draws an oval.
00919     IMAQ_SHAPE_MODE_SIZE_GUARD = 0xFFFFFFFF   
00920 } ShapeMode;
00921 
00922 typedef enum PolarityType_enum {
00923     IMAQ_EDGE_RISING              = 1,           //The edge is a rising edge.
00924     IMAQ_EDGE_FALLING             = -1,          //The edge is a falling edge.
00925     IMAQ_POLARITY_TYPE_SIZE_GUARD = 0xFFFFFFFF   
00926 } PolarityType;
00927 
00928 typedef enum SizeType_enum {
00929     IMAQ_KEEP_LARGE           = 0,           //The function keeps large particles remaining after the erosion.
00930     IMAQ_KEEP_SMALL           = 1,           //The function keeps small particles eliminated by the erosion.
00931     IMAQ_SIZE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
00932 } SizeType;
00933 
00934 typedef enum Plane3D_enum {
00935     IMAQ_3D_REAL             = 0,           //The function shows the real part of complex images.
00936     IMAQ_3D_IMAGINARY        = 1,           //The function shows the imaginary part of complex images.
00937     IMAQ_3D_MAGNITUDE        = 2,           //The function shows the magnitude part of complex images.
00938     IMAQ_3D_PHASE            = 3,           //The function shows the phase part of complex images.
00939     IMAQ_PLANE_3D_SIZE_GUARD = 0xFFFFFFFF   
00940 } Plane3D;
00941 
00942 typedef enum PhotometricMode_enum {
00943     IMAQ_WHITE_IS_ZERO               = 0,           //The function interprets zero-value pixels as white.
00944     IMAQ_BLACK_IS_ZERO               = 1,           //The function interprets zero-value pixels as black.
00945     IMAQ_PHOTOMETRIC_MODE_SIZE_GUARD = 0xFFFFFFFF   
00946 } PhotometricMode;
00947 
00948 typedef enum ParticleInfoMode_enum {
00949     IMAQ_BASIC_INFO                    = 0,           //The function returns only the following elements of each report: area, calibratedArea, boundingRect.
00950     IMAQ_ALL_INFO                      = 1,           //The function returns all the information about each particle.
00951     IMAQ_PARTICLE_INFO_MODE_SIZE_GUARD = 0xFFFFFFFF   
00952 } ParticleInfoMode;
00953 
00954 typedef enum OutlineMethod_enum {
00955     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.
00956     IMAQ_EDGE_GRADIENT             = 1,           //The function uses a method that outlines contours where an intensity variation occurs along the vertical axis.
00957     IMAQ_EDGE_PREWITT              = 2,           //The function uses a method that extracts the outer contours of objects.
00958     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.
00959     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.
00960     IMAQ_EDGE_SOBEL                = 5,           //The function uses a method that extracts the outer contours of objects.
00961     IMAQ_OUTLINE_METHOD_SIZE_GUARD = 0xFFFFFFFF   
00962 } OutlineMethod;
00963 
00964 typedef enum MorphologyMethod_enum {
00965     IMAQ_AUTOM                        = 0,           //The function uses a transformation that generates simpler particles that contain fewer details.
00966     IMAQ_CLOSE                        = 1,           //The function uses a transformation that fills tiny holes and smooths boundaries.
00967     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.
00968     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.
00969     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.
00970     IMAQ_GRADIENTOUT                  = 5,           //The function uses a transformation that leaves only the pixels that would be added by the dilation process.
00971     IMAQ_GRADIENTIN                   = 6,           //The function uses a transformation that leaves only the pixels that would be eliminated by the erosion process.
00972     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.
00973     IMAQ_OPEN                         = 8,           //The function uses a transformation that removes small particles and smooths boundaries.
00974     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.
00975     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.
00976     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.
00977     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.
00978     IMAQ_MORPHOLOGY_METHOD_SIZE_GUARD = 0xFFFFFFFF   
00979 } MorphologyMethod;
00980 
00981 typedef enum MeterArcMode_enum {
00982     IMAQ_METER_ARC_ROI             = 0,           //The function uses the roi parameter and ignores the base, start, and end parameters.
00983     IMAQ_METER_ARC_POINTS          = 1,           //The function uses the base,start, and end parameters and ignores the roi parameter.
00984     IMAQ_METER_ARC_MODE_SIZE_GUARD = 0xFFFFFFFF   
00985 } MeterArcMode;
00986 
00987 typedef enum RakeDirection_enum {
00988     IMAQ_LEFT_TO_RIGHT             = 0,           //The function searches from the left side of the search area to the right side of the search area.
00989     IMAQ_RIGHT_TO_LEFT             = 1,           //The function searches from the right side of the search area to the left side of the search area.
00990     IMAQ_TOP_TO_BOTTOM             = 2,           //The function searches from the top side of the search area to the bottom side of the search area.
00991     IMAQ_BOTTOM_TO_TOP             = 3,           //The function searches from the bottom side of the search area to the top side of the search area.
00992     IMAQ_RAKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF   
00993 } RakeDirection;
00994 
00995 typedef enum TruncateMode_enum {
00996     IMAQ_TRUNCATE_LOW             = 0,           //The function truncates low frequencies.
00997     IMAQ_TRUNCATE_HIGH            = 1,           //The function truncates high frequencies.
00998     IMAQ_TRUNCATE_MODE_SIZE_GUARD = 0xFFFFFFFF   
00999 } TruncateMode;
01000 
01001 typedef enum AttenuateMode_enum {
01002     IMAQ_ATTENUATE_LOW             = 0,           //The function attenuates low frequencies.
01003     IMAQ_ATTENUATE_HIGH            = 1,           //The function attenuates high frequencies.
01004     IMAQ_ATTENUATE_MODE_SIZE_GUARD = 0xFFFFFFFF   
01005 } AttenuateMode;
01006 
01007 typedef enum WindowThreadPolicy_enum {
01008     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.
01009     IMAQ_SEPARATE_THREAD                 = 1,           //Using this policy, NI Vision creates windows in a separate thread and processes messages for the windows automatically.
01010     IMAQ_WINDOW_THREAD_POLICY_SIZE_GUARD = 0xFFFFFFFF   
01011 } WindowThreadPolicy;
01012 
01013 typedef enum WindowOptions_enum {
01014     IMAQ_WIND_RESIZABLE            = 1,           //When present, the user may resize the window interactively.
01015     IMAQ_WIND_TITLEBAR             = 2,           //When present, the title bar on the window is visible.
01016     IMAQ_WIND_CLOSEABLE            = 4,           //When present, the close box is available.
01017     IMAQ_WIND_TOPMOST              = 8,           //When present, the window is always on top.
01018     IMAQ_WINDOW_OPTIONS_SIZE_GUARD = 0xFFFFFFFF   
01019 } WindowOptions;
01020 
01021 typedef enum WindowEventType_enum {
01022     IMAQ_NO_EVENT                     = 0,           //No event occurred since the last call to imaqGetLastEvent().
01023     IMAQ_CLICK_EVENT                  = 1,           //The user clicked on a window.
01024     IMAQ_DRAW_EVENT                   = 2,           //The user drew an ROI in a window.
01025     IMAQ_MOVE_EVENT                   = 3,           //The user moved a window.
01026     IMAQ_SIZE_EVENT                   = 4,           //The user sized a window.
01027     IMAQ_SCROLL_EVENT                 = 5,           //The user scrolled a window.
01028     IMAQ_ACTIVATE_EVENT               = 6,           //The user activated a window.
01029     IMAQ_CLOSE_EVENT                  = 7,           //The user closed a window.
01030     IMAQ_DOUBLE_CLICK_EVENT           = 8,           //The user double-clicked in a window.
01031     IMAQ_WINDOW_EVENT_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01032 } WindowEventType;
01033 
01034 typedef enum VisionInfoType_enum {
01035     IMAQ_ANY_VISION_INFO             = 0,           //The function checks if any extra vision information is associated with the image.
01036     IMAQ_PATTERN_MATCHING_INFO       = 1,           //The function checks if any pattern matching template information is associated with the image.
01037     IMAQ_CALIBRATION_INFO            = 2,           //The function checks if any calibration information is associated with the image.
01038     IMAQ_OVERLAY_INFO                = 3,           //The function checks if any overlay information is associated with the image.
01039     IMAQ_VISION_INFO_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01040 } VisionInfoType;
01041 
01042 typedef enum SearchStrategy_enum {
01043     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.
01044     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.
01045     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.
01046     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.
01047     IMAQ_SEARCH_STRATEGY_SIZE_GUARD = 0xFFFFFFFF   
01048 } SearchStrategy;
01049 
01050 typedef enum TwoEdgePolarityType_enum {
01051     IMAQ_NONE                              = 0,           //The function ignores the polarity of the edges.
01052     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).
01053     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).
01054     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).
01055     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).
01056     IMAQ_TWO_EDGE_POLARITY_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01057 } TwoEdgePolarityType;
01058 
01059 typedef enum ObjectType_enum {
01060     IMAQ_BRIGHT_OBJECTS         = 0,           //The function detects bright objects.
01061     IMAQ_DARK_OBJECTS           = 1,           //The function detects dark objects.
01062     IMAQ_OBJECT_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01063 } ObjectType;
01064 
01065 typedef enum Tool_enum {
01066     IMAQ_NO_TOOL              = -1,          //No tool is in the selected state.
01067     IMAQ_SELECTION_TOOL       = 0,           //The selection tool selects an existing ROI in an image.
01068     IMAQ_POINT_TOOL           = 1,           //The point tool draws a point on the image.
01069     IMAQ_LINE_TOOL            = 2,           //The line tool draws a line on the image.
01070     IMAQ_RECTANGLE_TOOL       = 3,           //The rectangle tool draws a rectangle on the image.
01071     IMAQ_OVAL_TOOL            = 4,           //The oval tool draws an oval on the image.
01072     IMAQ_POLYGON_TOOL         = 5,           //The polygon tool draws a polygon on the image.
01073     IMAQ_CLOSED_FREEHAND_TOOL = 6,           //The closed freehand tool draws closed freehand shapes on the image.
01074     IMAQ_ANNULUS_TOOL         = 7,           //The annulus tool draws annuluses on the image.
01075     IMAQ_ZOOM_TOOL            = 8,           //The zoom tool controls the zoom of an image.
01076     IMAQ_PAN_TOOL             = 9,           //The pan tool shifts the view of the image.
01077     IMAQ_POLYLINE_TOOL        = 10,          //The polyline tool draws a series of connected straight lines on the image.
01078     IMAQ_FREEHAND_TOOL        = 11,          //The freehand tool draws freehand lines on the image.
01079     IMAQ_ROTATED_RECT_TOOL    = 12,          //The rotated rectangle tool draws rotated rectangles on the image.
01080     IMAQ_ZOOM_OUT_TOOL        = 13,          //The zoom out tool controls the zoom of an image.
01081     IMAQ_TOOL_SIZE_GUARD      = 0xFFFFFFFF   
01082 } Tool;
01083 
01084 typedef enum TIFFCompressionType_enum {
01085     IMAQ_NO_COMPRESSION                   = 0,           //The function does not compress the TIFF file.
01086     IMAQ_JPEG                             = 1,           //The function uses the JPEG compression algorithm to compress the TIFF file.
01087     IMAQ_RUN_LENGTH                       = 2,           //The function uses a run length compression algorithm to compress the TIFF file.
01088     IMAQ_ZIP                              = 3,           //The function uses the ZIP compression algorithm to compress the TIFF file.
01089     IMAQ_TIFF_COMPRESSION_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01090 } TIFFCompressionType;
01091 
01092 typedef enum ThresholdMethod_enum {
01093     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.
01094     IMAQ_THRESH_ENTROPY              = 1,           //The function uses a method that is best for detecting particles that are present in minuscule proportions on the image.
01095     IMAQ_THRESH_METRIC               = 2,           //The function uses a method that is well-suited for images in which classes are not too disproportionate.
01096     IMAQ_THRESH_MOMENTS              = 3,           //The function uses a method that is suited for images that have poor contrast.
01097     IMAQ_THRESH_INTERCLASS           = 4,           //The function uses a method that is well-suited for images in which classes have well separated pixel value distributions.
01098     IMAQ_THRESHOLD_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01099 } ThresholdMethod;
01100 
01101 typedef enum TextAlignment_enum {
01102     IMAQ_LEFT                      = 0,           //Left aligns the text at the reference point.
01103     IMAQ_CENTER                    = 1,           //Centers the text around the reference point.
01104     IMAQ_RIGHT                     = 2,           //Right aligns the text at the reference point.
01105     IMAQ_TEXT_ALIGNMENT_SIZE_GUARD = 0xFFFFFFFF   
01106 } TextAlignment;
01107 
01108 typedef enum SpokeDirection_enum {
01109     IMAQ_OUTSIDE_TO_INSIDE          = 0,           //The function searches from the outside of the search area to the inside of the search area.
01110     IMAQ_INSIDE_TO_OUTSIDE          = 1,           //The function searches from the inside of the search area to the outside of the search area.
01111     IMAQ_SPOKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF   
01112 } SpokeDirection;
01113 
01114 typedef enum SkeletonMethod_enum {
01115     IMAQ_SKELETON_L                 = 0,           //Uses an L-shaped structuring element in the skeleton function.
01116     IMAQ_SKELETON_M                 = 1,           //Uses an M-shaped structuring element in the skeleton function.
01117     IMAQ_SKELETON_INVERSE           = 2,           //Uses an L-shaped structuring element on an inverse of the image in the skeleton function.
01118     IMAQ_SKELETON_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01119 } SkeletonMethod;
01120 
01121 typedef enum VerticalTextAlignment_enum {
01122     IMAQ_BOTTOM                             = 0,           //Aligns the bottom of the text at the reference point.
01123     IMAQ_TOP                                = 1,           //Aligns the top of the text at the reference point.
01124     IMAQ_BASELINE                           = 2,           //Aligns the baseline of the text at the reference point.
01125     IMAQ_VERTICAL_TEXT_ALIGNMENT_SIZE_GUARD = 0xFFFFFFFF   
01126 } VerticalTextAlignment;
01127 
01128 typedef enum CalibrationROI_enum {
01129     IMAQ_FULL_IMAGE                 = 0,           //The correction function corrects the whole image, regardless of the user-defined or calibration-defined ROIs.
01130     IMAQ_CALIBRATION_ROI            = 1,           //The correction function corrects the area defined by the calibration ROI.
01131     IMAQ_USER_ROI                   = 2,           //The correction function corrects the area defined by the user-defined ROI.
01132     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.
01133     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.
01134     IMAQ_CALIBRATION_ROI_SIZE_GUARD = 0xFFFFFFFF   
01135 } CalibrationROI;
01136 
01137 typedef enum ContourType_enum {
01138     IMAQ_EMPTY_CONTOUR           = 0,           //The contour is empty.
01139     IMAQ_POINT                   = 1,           //The contour represents a point.
01140     IMAQ_LINE                    = 2,           //The contour represents a line.
01141     IMAQ_RECT                    = 3,           //The contour represents a rectangle.
01142     IMAQ_OVAL                    = 4,           //The contour represents an oval.
01143     IMAQ_CLOSED_CONTOUR          = 5,           //The contour represents a series of connected points where the last point connects to the first.
01144     IMAQ_OPEN_CONTOUR            = 6,           //The contour represents a series of connected points where the last point does not connect to the first.
01145     IMAQ_ANNULUS                 = 7,           //The contour represents an annulus.
01146     IMAQ_ROTATED_RECT            = 8,           //The contour represents a rotated rectangle.
01147     IMAQ_CONTOUR_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01148 } ContourType;
01149 
01150 typedef enum MathTransformMethod_enum {
01151     IMAQ_TRANSFORM_LINEAR                 = 0,           //The function uses linear remapping.
01152     IMAQ_TRANSFORM_LOG                    = 1,           //The function uses logarithmic remapping.
01153     IMAQ_TRANSFORM_EXP                    = 2,           //The function uses exponential remapping.
01154     IMAQ_TRANSFORM_SQR                    = 3,           //The function uses square remapping.
01155     IMAQ_TRANSFORM_SQRT                   = 4,           //The function uses square root remapping.
01156     IMAQ_TRANSFORM_POWX                   = 5,           //The function uses power X remapping.
01157     IMAQ_TRANSFORM_POW1X                  = 6,           //The function uses power 1/X remapping.
01158     IMAQ_MATH_TRANSFORM_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01159 } MathTransformMethod;
01160 
01161 typedef enum ComplexPlane_enum {
01162     IMAQ_REAL                     = 0,           //The function operates on the real plane of the complex image.
01163     IMAQ_IMAGINARY                = 1,           //The function operates on the imaginary plane of the complex image.
01164     IMAQ_MAGNITUDE                = 2,           //The function operates on the magnitude plane of the complex image.
01165     IMAQ_PHASE                    = 3,           //The function operates on the phase plane of the complex image.
01166     IMAQ_COMPLEX_PLANE_SIZE_GUARD = 0xFFFFFFFF   
01167 } ComplexPlane;
01168 
01169 typedef enum PaletteType_enum {
01170     IMAQ_PALETTE_GRAY            = 0,           //The function uses a palette that has a gradual gray-level variation from black to white.
01171     IMAQ_PALETTE_BINARY          = 1,           //The function uses a palette of 16 cycles of 16 different colors that is useful with binary images.
01172     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.
01173     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.
01174     IMAQ_PALETTE_TEMPERATURE     = 4,           //The function uses a palette that has a gradation from light brown to dark brown.
01175     IMAQ_PALETTE_USER            = 5,           //The function uses a palette defined by the user.
01176     IMAQ_PALETTE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01177 } PaletteType;
01178 
01179 typedef enum ColorSensitivity_enum {
01180     IMAQ_SENSITIVITY_LOW              = 0,           //Instructs the algorithm to divide the hue plane into a low number of sectors, allowing for simple color analysis.
01181     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.
01182     IMAQ_SENSITIVITY_HIGH             = 2,           //Instructs the algorithm to divide the hue plane into a high number of sectors, allowing for complex, sensitive color analysis.
01183     IMAQ_COLOR_SENSITIVITY_SIZE_GUARD = 0xFFFFFFFF   
01184 } ColorSensitivity;
01185 
01186 typedef enum ColorMode_enum {
01187     IMAQ_RGB                   = 0,           //The function operates in the RGB (Red, Blue, Green) color space.
01188     IMAQ_HSL                   = 1,           //The function operates in the HSL (Hue, Saturation, Luminance) color space.
01189     IMAQ_HSV                   = 2,           //The function operates in the HSV (Hue, Saturation, Value) color space.
01190     IMAQ_HSI                   = 3,           //The function operates in the HSI (Hue, Saturation, Intensity) color space.
01191     IMAQ_CIE                   = 4,           //The function operates in the CIE L*a*b* color space.
01192     IMAQ_CIEXYZ                = 5,           //The function operates in the CIE XYZ color space.
01193     IMAQ_COLOR_MODE_SIZE_GUARD = 0xFFFFFFFF   
01194 } ColorMode;
01195 
01196 typedef enum DetectionMode_enum {
01197     IMAQ_DETECT_PEAKS              = 0,           //The function detects peaks.
01198     IMAQ_DETECT_VALLEYS            = 1,           //The function detects valleys.
01199     IMAQ_DETECTION_MODE_SIZE_GUARD = 0xFFFFFFFF   
01200 } DetectionMode;
01201 
01202 typedef enum CalibrationUnit_enum {
01203     IMAQ_UNDEFINED                   = 0,           //The image does not have a defined unit of measurement.
01204     IMAQ_ANGSTROM                    = 1,           //The unit of measure for the image is angstroms.
01205     IMAQ_MICROMETER                  = 2,           //The unit of measure for the image is micrometers.
01206     IMAQ_MILLIMETER                  = 3,           //The unit of measure for the image is millimeters.
01207     IMAQ_CENTIMETER                  = 4,           //The unit of measure for the image is centimeters.
01208     IMAQ_METER                       = 5,           //The unit of measure for the image is meters.
01209     IMAQ_KILOMETER                   = 6,           //The unit of measure for the image is kilometers.
01210     IMAQ_MICROINCH                   = 7,           //The unit of measure for the image is microinches.
01211     IMAQ_INCH                        = 8,           //The unit of measure for the image is inches.
01212     IMAQ_FOOT                        = 9,           //The unit of measure for the image is feet.
01213     IMAQ_NAUTICMILE                  = 10,          //The unit of measure for the image is nautical miles.
01214     IMAQ_GROUNDMILE                  = 11,          //The unit of measure for the image is ground miles.
01215     IMAQ_STEP                        = 12,          //The unit of measure for the image is steps.
01216     IMAQ_CALIBRATION_UNIT_SIZE_GUARD = 0xFFFFFFFF   
01217 } CalibrationUnit;
01218 
01219 typedef enum ConcentricRakeDirection_enum {
01220     IMAQ_COUNTER_CLOCKWISE                    = 0,           //The function searches the search area in a counter-clockwise direction.
01221     IMAQ_CLOCKWISE                            = 1,           //The function searches the search area in a clockwise direction.
01222     IMAQ_CONCENTRIC_RAKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF   
01223 } ConcentricRakeDirection;
01224 
01225 typedef enum CalibrationMode_enum {
01226     IMAQ_PERSPECTIVE                 = 0,           //Functions correct for distortion caused by the camera's perspective.
01227     IMAQ_NONLINEAR                   = 1,           //Functions correct for distortion caused by the camera's lens.
01228     IMAQ_SIMPLE_CALIBRATION          = 2,           //Functions do not correct for distortion.
01229     IMAQ_CORRECTED_IMAGE             = 3,           //The image is already corrected.
01230     IMAQ_CALIBRATION_MODE_SIZE_GUARD = 0xFFFFFFFF   
01231 } CalibrationMode;
01232 
01233 typedef enum BrowserLocation_enum {
01234     IMAQ_INSERT_FIRST_FREE           = 0,           //Inserts the thumbnail in the first available cell.
01235     IMAQ_INSERT_END                  = 1,           //Inserts the thumbnail after the last occupied cell.
01236     IMAQ_BROWSER_LOCATION_SIZE_GUARD = 0xFFFFFFFF   
01237 } BrowserLocation;
01238 
01239 typedef enum BrowserFrameStyle_enum {
01240     IMAQ_RAISED_FRAME                   = 0,           //Each thumbnail has a raised frame.
01241     IMAQ_BEVELLED_FRAME                 = 1,           //Each thumbnail has a beveled frame.
01242     IMAQ_OUTLINE_FRAME                  = 2,           //Each thumbnail has an outlined frame.
01243     IMAQ_HIDDEN_FRAME                   = 3,           //Each thumbnail has a hidden frame.
01244     IMAQ_STEP_FRAME                     = 4,           //Each thumbnail has a stepped frame.
01245     IMAQ_RAISED_OUTLINE_FRAME           = 5,           //Each thumbnail has a raised, outlined frame.
01246     IMAQ_BROWSER_FRAME_STYLE_SIZE_GUARD = 0xFFFFFFFF   
01247 } BrowserFrameStyle;
01248 
01249 typedef enum BorderMethod_enum {
01250     IMAQ_BORDER_MIRROR            = 0,           //Symmetrically copies pixel values from the image into the border.
01251     IMAQ_BORDER_COPY              = 1,           //Copies the value of the pixel closest to the edge of the image into the border.
01252     IMAQ_BORDER_CLEAR             = 2,           //Sets all pixels in the border to 0.
01253     IMAQ_BORDER_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01254 } BorderMethod;
01255 
01256 typedef enum BarcodeType_enum {
01257     IMAQ_INVALID                 = -1,          //The barcode is not of a type known by NI Vision.
01258     IMAQ_CODABAR                 = 1,           //The barcode is of type Codabar.
01259     IMAQ_CODE39                  = 2,           //The barcode is of type Code 39.
01260     IMAQ_CODE93                  = 4,           //The barcode is of type Code 93.
01261     IMAQ_CODE128                 = 8,           //The barcode is of type Code 128.
01262     IMAQ_EAN8                    = 16,          //The barcode is of type EAN 8.
01263     IMAQ_EAN13                   = 32,          //The barcode is of type EAN 13.
01264     IMAQ_I2_OF_5                 = 64,          //The barcode is of type Code 25.
01265     IMAQ_MSI                     = 128,         //The barcode is of type MSI code.
01266     IMAQ_UPCA                    = 256,         //The barcode is of type UPC A.
01267     IMAQ_PHARMACODE              = 512,         //The barcode is of type Pharmacode.
01268     IMAQ_RSS_LIMITED             = 1024,        //The barcode is of type RSS Limited.
01269     IMAQ_BARCODE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01270 } BarcodeType;
01271 
01272 typedef enum AxisOrientation_enum {
01273     IMAQ_DIRECT                      = 0,           //The y-axis direction corresponds to the y-axis direction of the Cartesian coordinate system.
01274     IMAQ_INDIRECT                    = 1,           //The y-axis direction corresponds to the y-axis direction of an image.
01275     IMAQ_AXIS_ORIENTATION_SIZE_GUARD = 0xFFFFFFFF   
01276 } AxisOrientation;
01277 
01278 typedef enum ColorIgnoreMode_enum {
01279     IMAQ_IGNORE_NONE                        = 0,           //Specifies that the function does not ignore any pixels.
01280     IMAQ_IGNORE_BLACK                       = 1,           //Specifies that the function ignores black pixels.
01281     IMAQ_IGNORE_WHITE                       = 2,           //Specifies that the function ignores white pixels.
01282     IMAQ_IGNORE_BLACK_AND_WHITE             = 3,           //Specifies that the function ignores black pixels and white pixels.
01283     IMAQ_BLACK_WHITE_IGNORE_MODE_SIZE_GUARD = 0xFFFFFFFF   
01284 } ColorIgnoreMode;
01285 
01286 typedef enum LevelType_enum {
01287     IMAQ_ABSOLUTE              = 0,           //The function evaluates the threshold and hysteresis values as absolute values.
01288     IMAQ_RELATIVE              = 1,           //The function evaluates the threshold and hysteresis values relative to the dynamic range of the given path.
01289     IMAQ_LEVEL_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01290 } LevelType;
01291 
01292 typedef enum MatchingMode_enum {
01293     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.
01294     IMAQ_MATCH_ROTATION_INVARIANT = 2,           //Searches for occurrences of the pattern in the image with no restriction on the rotation of the pattern.
01295     IMAQ_MATCHING_MODE_SIZE_GUARD = 0xFFFFFFFF   
01296 } MatchingMode;
01297 
01298 typedef enum MappingMethod_enum {
01299     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.
01300     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.
01301     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.
01302     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.
01303     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.
01304     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.
01305     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.
01306     IMAQ_FULL_DYNAMIC_ALWAYS       = 12,          //The function maps the full dynamic range of the 16-bit image to an 8-bit scale.
01307     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.
01308     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.
01309     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.
01310     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.
01311     IMAQ_MAPPING_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01312 } MappingMethod;
01313 
01314 typedef enum ComparisonFunction_enum {
01315     IMAQ_CLEAR_LESS                  = 0,           //The comparison is true if the source pixel value is less than the comparison image pixel value.
01316     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.
01317     IMAQ_CLEAR_EQUAL                 = 2,           //The comparison is true if the source pixel value is equal to the comparison image pixel value.
01318     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.
01319     IMAQ_CLEAR_GREATER               = 4,           //The comparison is true if the source pixel value is greater than the comparison image pixel value.
01320     IMAQ_COMPARE_FUNCTION_SIZE_GUARD = 0xFFFFFFFF   
01321 } ComparisonFunction;
01322 
01323 typedef enum LineGaugeMethod_enum {
01324     IMAQ_EDGE_TO_EDGE                 = 0,           //Measures from the first edge on the line to the last edge on the line.
01325     IMAQ_EDGE_TO_POINT                = 1,           //Measures from the first edge on the line to the end point of the line.
01326     IMAQ_POINT_TO_EDGE                = 2,           //Measures from the start point of the line to the first edge on the line.
01327     IMAQ_POINT_TO_POINT               = 3,           //Measures from the start point of the line to the end point of the line.
01328     IMAQ_LINE_GAUGE_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01329 } LineGaugeMethod;
01330 
01331 typedef enum Direction3D_enum {
01332     IMAQ_3D_NW                   = 0,           //The viewing angle for the 3D image is from the northwest.
01333     IMAQ_3D_SW                   = 1,           //The viewing angle for the 3D image is from the southwest.
01334     IMAQ_3D_SE                   = 2,           //The viewing angle for the 3D image is from the southeast.
01335     IMAQ_3D_NE                   = 3,           //The viewing angle for the 3D image is from the northeast.
01336     IMAQ_DIRECTION_3D_SIZE_GUARD = 0xFFFFFFFF   
01337 } Direction3D;
01338 
01339 typedef enum LearningMode_enum {
01340     IMAQ_LEARN_ALL                  = 0,           //The function extracts information for shift- and rotation-invariant matching.
01341     IMAQ_LEARN_SHIFT_INFORMATION    = 1,           //The function extracts information for shift-invariant matching.
01342     IMAQ_LEARN_ROTATION_INFORMATION = 2,           //The function extracts information for rotation-invariant matching.
01343     IMAQ_LEARNING_MODE_SIZE_GUARD   = 0xFFFFFFFF   
01344 } LearningMode;
01345 
01346 typedef enum KernelFamily_enum {
01347     IMAQ_GRADIENT_FAMILY          = 0,           //The kernel is in the gradient family.
01348     IMAQ_LAPLACIAN_FAMILY         = 1,           //The kernel is in the Laplacian family.
01349     IMAQ_SMOOTHING_FAMILY         = 2,           //The kernel is in the smoothing family.
01350     IMAQ_GAUSSIAN_FAMILY          = 3,           //The kernel is in the Gaussian family.
01351     IMAQ_KERNEL_FAMILY_SIZE_GUARD = 0xFFFFFFFF   
01352 } KernelFamily;
01353 
01354 typedef enum InterpolationMethod_enum {
01355     IMAQ_ZERO_ORDER                      = 0,           //The function uses an interpolation method that interpolates new pixel values using the nearest valid neighboring pixel.
01356     IMAQ_BILINEAR                        = 1,           //The function uses an interpolation method that interpolates new pixel values using a bidirectional average of the neighboring pixels.
01357     IMAQ_QUADRATIC                       = 2,           //The function uses an interpolation method that interpolates new pixel values using a quadratic approximating polynomial.
01358     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.
01359     IMAQ_BILINEAR_FIXED                  = 4,           //The function uses an interpolation method that interpolates new pixel values using a bidirectional average of the neighboring pixels.
01360     IMAQ_INTERPOLATION_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01361 } InterpolationMethod;
01362 
01363 typedef enum ImageType_enum {
01364     IMAQ_IMAGE_U8              = 0,           //The image type is 8-bit unsigned integer grayscale.
01365     IMAQ_IMAGE_U16             = 7,           //The image type is 16-bit unsigned integer grayscale.
01366     IMAQ_IMAGE_I16             = 1,           //The image type is 16-bit signed integer grayscale.
01367     IMAQ_IMAGE_SGL             = 2,           //The image type is 32-bit floating-point grayscale.
01368     IMAQ_IMAGE_COMPLEX         = 3,           //The image type is complex.
01369     IMAQ_IMAGE_RGB             = 4,           //The image type is RGB color.
01370     IMAQ_IMAGE_HSL             = 5,           //The image type is HSL color.
01371     IMAQ_IMAGE_RGB_U64         = 6,           //The image type is 64-bit unsigned RGB color.
01372     IMAQ_IMAGE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01373 } ImageType;
01374 
01375 typedef enum ImageFeatureMode_enum {
01376     IMAQ_COLOR_AND_SHAPE_FEATURES = 0,           //Instructs the function to use the color and the shape features of the color pattern.
01377     IMAQ_COLOR_FEATURES           = 1,           //Instructs the function to use the color features of the color pattern.
01378     IMAQ_SHAPE_FEATURES           = 2,           //Instructs the function to use the shape features of the color pattern.
01379     IMAQ_FEATURE_MODE_SIZE_GUARD  = 0xFFFFFFFF   
01380 } ImageFeatureMode;
01381 
01382 typedef enum FontColor_enum {
01383     IMAQ_WHITE                 = 0,           //Draws text in white.
01384     IMAQ_BLACK                 = 1,           //Draws text in black.
01385     IMAQ_INVERT                = 2,           //Inverts the text pixels.
01386     IMAQ_BLACK_ON_WHITE        = 3,           //Draws text in black with a white background.
01387     IMAQ_WHITE_ON_BLACK        = 4,           //Draws text in white with a black background.
01388     IMAQ_FONT_COLOR_SIZE_GUARD = 0xFFFFFFFF   
01389 } FontColor;
01390 
01391 typedef enum FlipAxis_enum {
01392     IMAQ_HORIZONTAL_AXIS      = 0,           //Flips the image over the central horizontal axis.
01393     IMAQ_VERTICAL_AXIS        = 1,           //Flips the image over the central vertical axis.
01394     IMAQ_CENTER_AXIS          = 2,           //Flips the image over both the central vertical and horizontal axes.
01395     IMAQ_DIAG_L_TO_R_AXIS     = 3,           //Flips the image over an axis from the upper left corner to lower right corner.
01396     IMAQ_DIAG_R_TO_L_AXIS     = 4,           //Flips the image over an axis from the upper right corner to lower left corner.
01397     IMAQ_FLIP_AXIS_SIZE_GUARD = 0xFFFFFFFF   
01398 } FlipAxis;
01399 
01400 typedef enum EdgeProcess_enum {
01401     IMAQ_FIRST                   = 0,           //The function looks for the first edge.
01402     IMAQ_FIRST_AND_LAST          = 1,           //The function looks for the first and last edge.
01403     IMAQ_ALL                     = 2,           //The function looks for all edges.
01404     IMAQ_BEST                    = 3,           //The function looks for the best edge.
01405     IMAQ_EDGE_PROCESS_SIZE_GUARD = 0xFFFFFFFF   
01406 } EdgeProcess;
01407 
01408 typedef enum DrawMode_enum {
01409     IMAQ_DRAW_VALUE           = 0,           //Draws the boundary of the object with the specified pixel value.
01410     IMAQ_DRAW_INVERT          = 2,           //Inverts the pixel values of the boundary of the object.
01411     IMAQ_PAINT_VALUE          = 1,           //Fills the object with the given pixel value.
01412     IMAQ_PAINT_INVERT         = 3,           //Inverts the pixel values of the object.
01413     IMAQ_HIGHLIGHT_VALUE      = 4,           //The function fills the object by highlighting the enclosed pixels with the color of the object.
01414     IMAQ_DRAW_MODE_SIZE_GUARD = 0xFFFFFFFF   
01415 } DrawMode;
01416 
01417 typedef enum NearestNeighborMetric_enum {
01418     IMAQ_METRIC_MAXIMUM                     = 0,           //The maximum metric.
01419     IMAQ_METRIC_SUM                         = 1,           //The sum metric.
01420     IMAQ_METRIC_EUCLIDEAN                   = 2,           //The Euclidean metric.
01421     IMAQ_NEAREST_NEIGHBOR_METRIC_SIZE_GUARD = 0xFFFFFFFF   
01422 } NearestNeighborMetric;
01423 
01424 typedef enum ReadResolution_enum {
01425     IMAQ_LOW_RESOLUTION             = 0,           //Configures NI Vision to use low resolution during the read process.
01426     IMAQ_MEDIUM_RESOLUTION          = 1,           //Configures NI Vision to use medium resolution during the read process.
01427     IMAQ_HIGH_RESOLUTION            = 2,           //Configures NI Vision to use high resolution during the read process.
01428     IMAQ_READ_RESOLUTION_SIZE_GUARD = 0xFFFFFFFF   
01429 } ReadResolution;
01430 
01431 typedef enum ThresholdMode_enum {
01432     IMAQ_FIXED_RANGE               = 0,           //Performs thresholding using the values you provide in the lowThreshold and highThreshold elements of OCRProcessingOptions.
01433     IMAQ_COMPUTED_UNIFORM          = 1,           //Calculates a single threshold value for the entire ROI.
01434     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.
01435     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.
01436     IMAQ_THRESHOLD_MODE_SIZE_GUARD = 0xFFFFFFFF   
01437 } ThresholdMode;
01438 
01439 typedef enum ReadStrategy_enum {
01440     IMAQ_READ_AGGRESSIVE          = 0,           //Configures NI Vision to perform fewer checks when analyzing objects to determine if they match trained characters.
01441     IMAQ_READ_CONSERVATIVE        = 1,           //Configures NI Vision to perform more checks to determine if an object matches a trained character.
01442     IMAQ_READ_STRATEGY_SIZE_GUARD = 0xFFFFFFFF   
01443 } ReadStrategy;
01444 
01445 typedef enum MeasurementType_enum {
01446     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.
01447     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.
01448     IMAQ_MT_FIRST_PIXEL_X                       = 2,           //X-coordinate of the highest, leftmost particle pixel.
01449     IMAQ_MT_FIRST_PIXEL_Y                       = 3,           //Y-coordinate of the highest, leftmost particle pixel.
01450     IMAQ_MT_BOUNDING_RECT_LEFT                  = 4,           //X-coordinate of the leftmost particle point.
01451     IMAQ_MT_BOUNDING_RECT_TOP                   = 5,           //Y-coordinate of highest particle point.
01452     IMAQ_MT_BOUNDING_RECT_RIGHT                 = 6,           //X-coordinate of the rightmost particle point.
01453     IMAQ_MT_BOUNDING_RECT_BOTTOM                = 7,           //Y-coordinate of the lowest particle point.
01454     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.
01455     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.
01456     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.
01457     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.
01458     IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_LEFT       = 12,          //X-coordinate of the leftmost pixel in the longest row of contiguous pixels in the particle.
01459     IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_RIGHT      = 13,          //X-coordinate of the rightmost pixel in the longest row of contiguous pixels in the particle.
01460     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.
01461     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.
01462     IMAQ_MT_BOUNDING_RECT_HEIGHT                = 17,          //Distance between the y-coordinate of highest particle point and the y-coordinate of the lowest particle point.
01463     IMAQ_MT_BOUNDING_RECT_DIAGONAL              = 18,          //Distance between opposite corners of the bounding rectangle.
01464     IMAQ_MT_PERIMETER                           = 19,          //Length of the outer boundary of the particle.
01465     IMAQ_MT_CONVEX_HULL_PERIMETER               = 20,          //Perimeter of the smallest convex polygon containing all points in the particle.
01466     IMAQ_MT_HOLES_PERIMETER                     = 21,          //Sum of the perimeters of each hole in the particle.
01467     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.
01468     IMAQ_MT_EQUIVALENT_ELLIPSE_MAJOR_AXIS       = 23,          //Length of the major axis of the ellipse with the same perimeter and area as the particle.
01469     IMAQ_MT_EQUIVALENT_ELLIPSE_MINOR_AXIS       = 24,          //Length of the minor axis of the ellipse with the same perimeter and area as the particle.
01470     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.
01471     IMAQ_MT_EQUIVALENT_RECT_LONG_SIDE           = 26,          //Longest side of the rectangle with the same perimeter and area as the particle.
01472     IMAQ_MT_EQUIVALENT_RECT_SHORT_SIDE          = 27,          //Shortest side of the rectangle with the same perimeter and area as the particle.
01473     IMAQ_MT_EQUIVALENT_RECT_DIAGONAL            = 28,          //Distance between opposite corners of the rectangle with the same perimeter and area as the particle.
01474     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.
01475     IMAQ_MT_AVERAGE_HORIZ_SEGMENT_LENGTH        = 30,          //Average length of a horizontal segment in the particle.
01476     IMAQ_MT_AVERAGE_VERT_SEGMENT_LENGTH         = 31,          //Average length of a vertical segment in the particle.
01477     IMAQ_MT_HYDRAULIC_RADIUS                    = 32,          //The particle area divided by the particle perimeter.
01478     IMAQ_MT_WADDEL_DISK_DIAMETER                = 33,          //Diameter of a disk with the same area as the particle.
01479     IMAQ_MT_AREA                                = 35,          //Area of the particle.
01480     IMAQ_MT_HOLES_AREA                          = 36,          //Sum of the areas of each hole in the particle.
01481     IMAQ_MT_PARTICLE_AND_HOLES_AREA             = 37,          //Area of a particle that completely covers the image.
01482     IMAQ_MT_CONVEX_HULL_AREA                    = 38,          //Area of the smallest convex polygon containing all points in the particle.
01483     IMAQ_MT_IMAGE_AREA                          = 39,          //Area of the image.
01484     IMAQ_MT_NUMBER_OF_HOLES                     = 41,          //Number of holes in the particle.
01485     IMAQ_MT_NUMBER_OF_HORIZ_SEGMENTS            = 42,          //Number of horizontal segments in the particle.
01486     IMAQ_MT_NUMBER_OF_VERT_SEGMENTS             = 43,          //Number of vertical segments in the particle.
01487     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.
01488     IMAQ_MT_MAX_FERET_DIAMETER_ORIENTATION      = 46,          //The angle of the line segment connecting the two perimeter points that are the furthest apart.
01489     IMAQ_MT_AREA_BY_IMAGE_AREA                  = 48,          //Percentage of the particle Area covering the Image Area.
01490     IMAQ_MT_AREA_BY_PARTICLE_AND_HOLES_AREA     = 49,          //Percentage of the particle Area in relation to its Particle and Holes Area.
01491     IMAQ_MT_RATIO_OF_EQUIVALENT_ELLIPSE_AXES    = 50,          //Equivalent Ellipse Major Axis divided by Equivalent Ellipse Minor Axis.
01492     IMAQ_MT_RATIO_OF_EQUIVALENT_RECT_SIDES      = 51,          //Equivalent Rect Long Side divided by Equivalent Rect Short Side.
01493     IMAQ_MT_ELONGATION_FACTOR                   = 53,          //Max Feret Diameter divided by Equivalent Rect Short Side (Feret).
01494     IMAQ_MT_COMPACTNESS_FACTOR                  = 54,          //Area divided by the product of Bounding Rect Width and Bounding Rect Height.
01495     IMAQ_MT_HEYWOOD_CIRCULARITY_FACTOR          = 55,          //Perimeter divided by the circumference of a circle with the same area.
01496     IMAQ_MT_TYPE_FACTOR                         = 56,          //Factor relating area to moment of inertia.
01497     IMAQ_MT_SUM_X                               = 58,          //The sum of all x-coordinates in the particle.
01498     IMAQ_MT_SUM_Y                               = 59,          //The sum of all y-coordinates in the particle.
01499     IMAQ_MT_SUM_XX                              = 60,          //The sum of all x-coordinates squared in the particle.
01500     IMAQ_MT_SUM_XY                              = 61,          //The sum of all x-coordinates times y-coordinates in the particle.
01501     IMAQ_MT_SUM_YY                              = 62,          //The sum of all y-coordinates squared in the particle.
01502     IMAQ_MT_SUM_XXX                             = 63,          //The sum of all x-coordinates cubed in the particle.
01503     IMAQ_MT_SUM_XXY                             = 64,          //The sum of all x-coordinates squared times y-coordinates in the particle.
01504     IMAQ_MT_SUM_XYY                             = 65,          //The sum of all x-coordinates times y-coordinates squared in the particle.
01505     IMAQ_MT_SUM_YYY                             = 66,          //The sum of all y-coordinates cubed in the particle.
01506     IMAQ_MT_MOMENT_OF_INERTIA_XX                = 68,          //The moment of inertia in the x-direction twice.
01507     IMAQ_MT_MOMENT_OF_INERTIA_XY                = 69,          //The moment of inertia in the x and y directions.
01508     IMAQ_MT_MOMENT_OF_INERTIA_YY                = 70,          //The moment of inertia in the y-direction twice.
01509     IMAQ_MT_MOMENT_OF_INERTIA_XXX               = 71,          //The moment of inertia in the x-direction three times.
01510     IMAQ_MT_MOMENT_OF_INERTIA_XXY               = 72,          //The moment of inertia in the x-direction twice and the y-direction once.
01511     IMAQ_MT_MOMENT_OF_INERTIA_XYY               = 73,          //The moment of inertia in the x-direction once and the y-direction twice.
01512     IMAQ_MT_MOMENT_OF_INERTIA_YYY               = 74,          //The moment of inertia in the y-direction three times.
01513     IMAQ_MT_NORM_MOMENT_OF_INERTIA_XX           = 75,          //The normalized moment of inertia in the x-direction twice.
01514     IMAQ_MT_NORM_MOMENT_OF_INERTIA_XY           = 76,          //The normalized moment of inertia in the x- and y-directions.
01515     IMAQ_MT_NORM_MOMENT_OF_INERTIA_YY           = 77,          //The normalized moment of inertia in the y-direction twice.
01516     IMAQ_MT_NORM_MOMENT_OF_INERTIA_XXX          = 78,          //The normalized moment of inertia in the x-direction three times.
01517     IMAQ_MT_NORM_MOMENT_OF_INERTIA_XXY          = 79,          //The normalized moment of inertia in the x-direction twice and the y-direction once.
01518     IMAQ_MT_NORM_MOMENT_OF_INERTIA_XYY          = 80,          //The normalized moment of inertia in the x-direction once and the y-direction twice.
01519     IMAQ_MT_NORM_MOMENT_OF_INERTIA_YYY          = 81,          //The normalized moment of inertia in the y-direction three times.
01520     IMAQ_MT_HU_MOMENT_1                         = 82,          //The first Hu moment.
01521     IMAQ_MT_HU_MOMENT_2                         = 83,          //The second Hu moment.
01522     IMAQ_MT_HU_MOMENT_3                         = 84,          //The third Hu moment.
01523     IMAQ_MT_HU_MOMENT_4                         = 85,          //The fourth Hu moment.
01524     IMAQ_MT_HU_MOMENT_5                         = 86,          //The fifth Hu moment.
01525     IMAQ_MT_HU_MOMENT_6                         = 87,          //The sixth Hu moment.
01526     IMAQ_MT_HU_MOMENT_7                         = 88,          //The seventh Hu moment.
01527     IMAQ_MEASUREMENT_TYPE_SIZE_GUARD            = 0xFFFFFFFF   
01528 } MeasurementType;
01529 
01530 typedef enum GeometricMatchingMode_enum {
01531     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.
01532     IMAQ_GEOMETRIC_MATCH_ROTATION_INVARIANT  = 1,           //Searches for occurrences of the pattern in the image with reduced restriction on the rotation of the pattern.
01533     IMAQ_GEOMETRIC_MATCH_SCALE_INVARIANT     = 2,           //Searches for occurrences of the pattern in the image with reduced restriction on the size of the pattern.
01534     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.
01535     IMAQ_GEOMETRIC_MATCHING_MODE_SIZE_GUARD  = 0xFFFFFFFF   
01536 } GeometricMatchingMode;
01537 
01538 typedef enum ButtonLabel_enum {
01539     IMAQ_BUTTON_OK               = 0,           //The label "OK".
01540     IMAQ_BUTTON_SAVE             = 1,           //The label "Save".
01541     IMAQ_BUTTON_SELECT           = 2,           //The label "Select".
01542     IMAQ_BUTTON_LOAD             = 3,           //The label "Load".
01543     IMAQ_BUTTON_LABEL_SIZE_GUARD = 0xFFFFFFFF   
01544 } ButtonLabel;
01545 
01546 typedef enum NearestNeighborMethod_enum {
01547     IMAQ_MINIMUM_MEAN_DISTANCE              = 0,           //The minimum mean distance method.
01548     IMAQ_K_NEAREST_NEIGHBOR                 = 1,           //The k-nearest neighbor method.
01549     IMAQ_NEAREST_PROTOTYPE                  = 2,           //The nearest prototype method.
01550     IMAQ_NEAREST_NEIGHBOR_METHOD_SIZE_GUARD = 0xFFFFFFFF   
01551 } NearestNeighborMethod;
01552 
01553 typedef enum QRMirrorMode_enum {
01554     IMAQ_QR_MIRROR_MODE_AUTO_DETECT = -2,          //The function should determine if the QR code is mirrored.
01555     IMAQ_QR_MIRROR_MODE_MIRRORED    = 1,           //The function should expect the QR code to appear mirrored.
01556     IMAQ_QR_MIRROR_MODE_NORMAL      = 0,           //The function should expect the QR code to appear normal.
01557     IMAQ_QR_MIRROR_MODE_SIZE_GUARD  = 0xFFFFFFFF   
01558 } QRMirrorMode;
01559 
01560 typedef enum ColumnProcessingMode_enum {
01561     IMAQ_AVERAGE_COLUMNS                   = 0,           //Averages the data extracted for edge detection.
01562     IMAQ_MEDIAN_COLUMNS                    = 1,           //Takes the median of the data extracted for edge detection.
01563     IMAQ_COLUMN_PROCESSING_MODE_SIZE_GUARD = 0xFFFFFFFF   
01564 } ColumnProcessingMode;
01565 
01566 typedef enum FindReferenceDirection_enum {
01567     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.
01568     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.
01569     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.
01570     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.
01571     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.
01572     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.
01573     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.
01574     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.
01575     IMAQ_FIND_COORD_SYS_DIR_SIZE_GUARD = 0xFFFFFFFF   
01576 } FindReferenceDirection;
01577 
01578 typedef enum MulticoreOperation_enum {
01579     IMAQ_GET_CORES                      = 0,           //The number of processor cores NI Vision is currently using.
01580     IMAQ_SET_CORES                      = 1,           //The number of processor cores for NI Vision to use.
01581     IMAQ_USE_MAX_AVAILABLE              = 2,           //Use the maximum number of available processor cores.
01582     IMAQ_MULTICORE_OPERATION_SIZE_GUARD = 0xFFFFFFFF   
01583 } MulticoreOperation;
01584 
01585 typedef enum GroupBehavior_enum {
01586     IMAQ_GROUP_CLEAR               = 0,           //Sets the behavior of the overlay group to clear the current settings when an image is transformed.
01587     IMAQ_GROUP_KEEP                = 1,           //Sets the behavior of the overlay group to keep the current settings when an image is transformed.
01588     IMAQ_GROUP_TRANSFORM           = 2,           //Sets the behavior of the overlay group to transform with the image.
01589     IMAQ_GROUP_BEHAVIOR_SIZE_GUARD = 0xFFFFFFFF   
01590 } GroupBehavior;
01591 
01592 typedef enum QRDimensions_enum {
01593     IMAQ_QR_DIMENSIONS_AUTO_DETECT = 0,           //The function will automatically determine the dimensions of the QR code.
01594     IMAQ_QR_DIMENSIONS_11x11       = 11,          //Specifies the dimensions of the QR code as 11 x 11.
01595     IMAQ_QR_DIMENSIONS_13x13       = 13,          //Specifies the dimensions of the QR code as 13 x 13.
01596     IMAQ_QR_DIMENSIONS_15x15       = 15,          //Specifies the dimensions of the QR code as 15 x 15.
01597     IMAQ_QR_DIMENSIONS_17x17       = 17,          //Specifies the dimensions of the QR code as 17 x 17.
01598     IMAQ_QR_DIMENSIONS_21x21       = 21,          //Specifies the dimensions of the QR code as 21 x 21.
01599     IMAQ_QR_DIMENSIONS_25x25       = 25,          //Specifies the dimensions of the QR code as 25 x 25.
01600     IMAQ_QR_DIMENSIONS_29x29       = 29,          //Specifies the dimensions of the QR code as 29 x 29.
01601     IMAQ_QR_DIMENSIONS_33x33       = 33,          //Specifies the dimensions of the QR code as 33 x 33.
01602     IMAQ_QR_DIMENSIONS_37x37       = 37,          //Specifies the dimensions of the QR code as 37 x 37.
01603     IMAQ_QR_DIMENSIONS_41x41       = 41,          //Specifies the dimensions of the QR code as 41 x 41.
01604     IMAQ_QR_DIMENSIONS_45x45       = 45,          //Specifies the dimensions of the QR code as 45 x 45.
01605     IMAQ_QR_DIMENSIONS_49x49       = 49,          //Specifies the dimensions of the QR code as 49 x 49.
01606     IMAQ_QR_DIMENSIONS_53x53       = 53,          //Specifies the dimensions of the QR code as 53 x 53.
01607     IMAQ_QR_DIMENSIONS_57x57       = 57,          //Specifies the dimensions of the QR code as 57 x 57.
01608     IMAQ_QR_DIMENSIONS_61x61       = 61,          //Specifies the dimensions of the QR code as 61 x 61.
01609     IMAQ_QR_DIMENSIONS_65x65       = 65,          //Specifies the dimensions of the QR code as 65 x 65.
01610     IMAQ_QR_DIMENSIONS_69x69       = 69,          //Specifies the dimensions of the QR code as 69 x 69.
01611     IMAQ_QR_DIMENSIONS_73x73       = 73,          //Specifies the dimensions of the QR code as 73 x 73.
01612     IMAQ_QR_DIMENSIONS_77x77       = 77,          //Specifies the dimensions of the QR code as 77 x 77.
01613     IMAQ_QR_DIMENSIONS_81x81       = 81,          //Specifies the dimensions of the QR code as 81 x 81.
01614     IMAQ_QR_DIMENSIONS_85x85       = 85,          //Specifies the dimensions of the QR code as 85 x 85.
01615     IMAQ_QR_DIMENSIONS_89x89       = 89,          //Specifies the dimensions of the QR code as 89 x 89.
01616     IMAQ_QR_DIMENSIONS_93x93       = 93,          //Specifies the dimensions of the QR code as 93 x 93.
01617     IMAQ_QR_DIMENSIONS_97x97       = 97,          //Specifies the dimensions of the QR code as 97 x 97.
01618     IMAQ_QR_DIMENSIONS_101x101     = 101,         //Specifies the dimensions of the QR code as 101 x 101.
01619     IMAQ_QR_DIMENSIONS_105x105     = 105,         //Specifies the dimensions of the QR code as 105 x 105.
01620     IMAQ_QR_DIMENSIONS_109x109     = 109,         //Specifies the dimensions of the QR code as 109 x 109.
01621     IMAQ_QR_DIMENSIONS_113x113     = 113,         //Specifies the dimensions of the QR code as 113 x 113.
01622     IMAQ_QR_DIMENSIONS_117x117     = 117,         //Specifies the dimensions of the QR code as 117 x 117.
01623     IMAQ_QR_DIMENSIONS_121x121     = 121,         //Specifies the dimensions of the QR code as 121 x 121.
01624     IMAQ_QR_DIMENSIONS_125x125     = 125,         //Specifies the dimensions of the QR code as 125 x 125.
01625     IMAQ_QR_DIMENSIONS_129x129     = 129,         //Specifies the dimensions of the QR code as 129 x 129.
01626     IMAQ_QR_DIMENSIONS_133x133     = 133,         //Specifies the dimensions of the QR code as 133 x 133.
01627     IMAQ_QR_DIMENSIONS_137x137     = 137,         //Specifies the dimensions of the QR code as 137 x 137.
01628     IMAQ_QR_DIMENSIONS_141x141     = 141,         //Specifies the dimensions of the QR code as 141 x 141.
01629     IMAQ_QR_DIMENSIONS_145x145     = 145,         //Specifies the dimensions of the QR code as 145 x 145.
01630     IMAQ_QR_DIMENSIONS_149x149     = 149,         //Specifies the dimensions of the QR code as 149 x 149.
01631     IMAQ_QR_DIMENSIONS_153x153     = 153,         //Specifies the dimensions of the QR code as 153 x 153.
01632     IMAQ_QR_DIMENSIONS_157x157     = 157,         //Specifies the dimensions of the QR code as 157 x 1537.
01633     IMAQ_QR_DIMENSIONS_161x161     = 161,         //Specifies the dimensions of the QR code as 161 x 161.
01634     IMAQ_QR_DIMENSIONS_165x165     = 165,         //Specifies the dimensions of the QR code as 165 x 165.
01635     IMAQ_QR_DIMENSIONS_169x169     = 169,         //Specifies the dimensions of the QR code as 169 x 169.
01636     IMAQ_QR_DIMENSIONS_173x173     = 173,         //Specifies the dimensions of the QR code as 173 x 173.
01637     IMAQ_QR_DIMENSIONS_177x177     = 177,         //Specifies the dimensions of the QR code as 177 x 177.
01638     IMAQ_QR_DIMENSIONS_SIZE_GUARD  = 0xFFFFFFFF   
01639 } QRDimensions;
01640 
01641 typedef enum QRCellFilterMode_enum {
01642     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.
01643     IMAQ_QR_CELL_FILTER_MODE_AVERAGE           = 0,           //The function sets the pixel value for the cell to the average of the sampled pixels.
01644     IMAQ_QR_CELL_FILTER_MODE_MEDIAN            = 1,           //The function sets the pixel value for the cell to the median of the sampled pixels.
01645     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.
01646     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.
01647     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.
01648     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.
01649     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.
01650     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.
01651     IMAQ_QR_CELL_FILTER_MODE_SIZE_GUARD        = 0xFFFFFFFF   
01652 } QRCellFilterMode;
01653 
01654 typedef enum RoundingMode_enum {
01655     IMAQ_ROUNDING_MODE_OPTIMIZE   = 0,           //Rounds the result of a division using the best available method.
01656     IMAQ_ROUNDING_MODE_TRUNCATE   = 1,           //Truncates the result of a division.
01657     IMAQ_ROUNDING_MODE_SIZE_GUARD = 0xFFFFFFFF   
01658 } RoundingMode;
01659 
01660 typedef enum QRDemodulationMode_enum {
01661     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.
01662     IMAQ_QR_DEMODULATION_MODE_HISTOGRAM      = 0,           //The function uses a histogram of all of the QR cells to calculate a threshold.
01663     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.
01664     IMAQ_QR_DEMODULATION_MODE_COMBINED       = 2,           //The function uses the histogram of the QR code to calculate a threshold.
01665     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.
01666     IMAQ_QR_DEMODULATION_MODE_SIZE_GUARD     = 0xFFFFFFFF   
01667 } QRDemodulationMode;
01668 
01669 typedef enum ContrastMode_enum {
01670     IMAQ_ORIGINAL_CONTRAST = 0,  //Instructs the geometric matching algorithm to find matches with the same contrast as the template.
01671     IMAQ_REVERSED_CONTRAST = 1,  //Instructs the geometric matching algorithm to find matches with the inverted contrast of the template.
01672     IMAQ_BOTH_CONTRASTS    = 2,  //Instructs the geometric matching algorithm to find matches with the same and inverted contrast of the template.
01673 } ContrastMode;
01674 
01675 typedef enum QRPolarities_enum {
01676     IMAQ_QR_POLARITY_AUTO_DETECT     = -2,          //The function should determine the polarity of the QR code.
01677     IMAQ_QR_POLARITY_BLACK_ON_WHITE  = 0,           //The function should search for a QR code with dark data on a bright background.
01678     IMAQ_QR_POLARITY_WHITE_ON_BLACK  = 1,           //The function should search for a QR code with bright data on a dark background.
01679     IMAQ_QR_POLARITY_MODE_SIZE_GUARD = 0xFFFFFFFF   
01680 } QRPolarities;
01681 
01682 typedef enum QRRotationMode_enum {
01683     IMAQ_QR_ROTATION_MODE_UNLIMITED   = 0,           //The function allows for unlimited rotation.
01684     IMAQ_QR_ROTATION_MODE_0_DEGREES   = 1,           //The function allows for ??? 5 degrees of rotation.
01685     IMAQ_QR_ROTATION_MODE_90_DEGREES  = 2,           //The function allows for between 85 and 95 degrees of rotation.
01686     IMAQ_QR_ROTATION_MODE_180_DEGREES = 3,           //The function allows for between 175 and 185 degrees of rotation.
01687     IMAQ_QR_ROTATION_MODE_270_DEGREES = 4,           //The function allows for between 265 and 275 degrees of rotation.
01688     IMAQ_QR_ROTATION_MODE_SIZE_GUARD  = 0xFFFFFFFF   
01689 } QRRotationMode;
01690 
01691 typedef enum QRGradingMode_enum {
01692     IMAQ_QR_NO_GRADING              = 0,           //The function does not make any preparatory calculations.
01693     IMAQ_QR_GRADING_MODE_SIZE_GUARD = 0xFFFFFFFF   
01694 } QRGradingMode;
01695 
01696 typedef enum StraightEdgeSearchMode_enum {
01697     IMAQ_USE_FIRST_RAKE_EDGES            = 0,           //Fits a straight edge on the first points detected using a rake.
01698     IMAQ_USE_BEST_RAKE_EDGES             = 1,           //Fits a straight edge on the best points detected using a rake.
01699     IMAQ_USE_BEST_HOUGH_LINE             = 2,           //Finds the strongest straight edge using all points detected on a rake.
01700     IMAQ_USE_FIRST_PROJECTION_EDGE       = 3,           //Uses the location of the first projected edge as the straight edge.
01701     IMAQ_USE_BEST_PROJECTION_EDGE        = 4,           //Finds the strongest projected edge location to determine the straight edge.
01702     IMAQ_STRAIGHT_EDGE_SEARCH_SIZE_GUARD = 0xFFFFFFFF   
01703 } StraightEdgeSearchMode;
01704 
01705 typedef enum SearchDirection_enum {
01706     IMAQ_SEARCH_DIRECTION_LEFT_TO_RIGHT = 0,           //Searches from the left side of the search area to the right side of the search area.
01707     IMAQ_SEARCH_DIRECTION_RIGHT_TO_LEFT = 1,           //Searches from the right side of the search area to the left side of the search area.
01708     IMAQ_SEARCH_DIRECTION_TOP_TO_BOTTOM = 2,           //Searches from the top side of the search area to the bottom side of the search area.
01709     IMAQ_SEARCH_DIRECTION_BOTTOM_TO_TOP = 3,           //Searches from the bottom side of the search area to the top side of the search area.
01710     IMAQ_SEARCH_DIRECTION_SIZE_GUARD    = 0xFFFFFFFF   
01711 } SearchDirection;
01712 
01713 typedef enum QRStreamMode_enum {
01714     IMAQ_QR_MODE_NUMERIC      = 0,           //Specifies that the data was encoded using numeric mode.
01715     IMAQ_QR_MODE_ALPHANUMERIC = 1,           //Specifies that the data was encoded using alpha-numeric mode.
01716     IMAQ_QR_MODE_RAW_BYTE     = 2,           //Specifies that the data was not encoded but is only raw binary bytes, or encoded in JIS-8.
01717     IMAQ_QR_MODE_EAN128_TOKEN = 3,           //Specifies that the data has a special meaning represented by the application ID.
01718     IMAQ_QR_MODE_EAN128_DATA  = 4,           //Specifies that the data has a special meaning represented by the application ID.
01719     IMAQ_QR_MODE_ECI          = 5,           //Specifies that the data was meant to be read using the language represented in the language ID.
01720     IMAQ_QR_MODE_KANJI        = 6,           //Specifies that the data was encoded in Shift-JIS16 Japanese.
01721     IMAQ_QR_MODE_SIZE_GUARD   = 0xFFFFFFFF   
01722 } QRStreamMode;
01723 
01724 typedef enum ParticleClassifierType_enum {
01725     IMAQ_PARTICLE_LARGEST                    = 0,           //Use only the largest particle in the image.
01726     IMAQ_PARTICLE_ALL                        = 1,           //Use all particles in the image.
01727     IMAQ_PARTICLE_CLASSIFIER_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01728 } ParticleClassifierType;
01729 
01730 typedef enum QRCellSampleSize_enum {
01731     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.
01732     IMAQ_QR_CELL_SAMPLE_SIZE1X1          = 1,           //The function will use a 1x1 sized sample from each cell.
01733     IMAQ_QR_CELL_SAMPLE_SIZE2X2          = 2,           //The function will use a 2x2 sized sample from each cell.
01734     IMAQ_QR_CELL_SAMPLE_SIZE3X3          = 3,           //The function will use a 3x3 sized sample from each cell.
01735     IMAQ_QR_CELL_SAMPLE_SIZE4X4          = 4,           //The function will use a 4x4 sized sample from each cell.
01736     IMAQ_QR_CELL_SAMPLE_SIZE5X5          = 5,           //The function will use a 5x5 sized sample from each cell.
01737     IMAQ_QR_CELL_SAMPLE_SIZE6X6          = 6,           //The function will use a 6x6 sized sample from each cell.
01738     IMAQ_QR_CELL_SAMPLE_SIZE7X7          = 7,           //The function will use a 7x7 sized sample from each cell.
01739     IMAQ_QR_CELL_SAMPLE_TYPE_SIZE_GUARD  = 0xFFFFFFFF   
01740 } QRCellSampleSize;
01741 
01742 typedef enum RakeProcessType_enum {
01743     IMAQ_GET_FIRST_EDGES              = 0,           
01744     IMAQ_GET_FIRST_AND_LAST_EDGES     = 1,           
01745     IMAQ_GET_ALL_EDGES                = 2,           
01746     IMAQ_GET_BEST_EDGES               = 3,           
01747     IMAQ_RAKE_PROCESS_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01748 } RakeProcessType;
01749 
01750 typedef enum GeometricSetupDataItem_enum {
01751     IMAQ_CURVE_EXTRACTION_MODE             = 0,   //Specifies how the function identifies curves in the image.
01752     IMAQ_CURVE_EDGE_THRSHOLD               = 1,   //Specifies the minimum contrast an edge pixel must have for it to be considered part of a curve.
01753     IMAQ_CURVE_EDGE_FILTER                 = 2,   //Specifies the width of the edge filter that the function uses to identify curves in the image.
01754     IMAQ_MINIMUM_CURVE_LENGTH              = 3,   //Specifies the length, in pixels, of the smallest curve that you want the function to identify.
01755     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.
01756     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.
01757     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.
01758     IMAQ_EXTRACT_CLOSED_CURVES             = 7,   //Specifies whether to identify only closed curves in the image.
01759     IMAQ_ENABLE_SUBPIXEL_CURVE_EXTRACTION  = 8,   //The function ignores this option.
01760     IMAQ_ENABLE_CORRELATION_SCORE          = 9,   //Specifies that the function should calculate the Correlation Score and return it for each match result.
01761     IMAQ_ENABLE_SUBPIXEL_ACCURACY          = 10,  //Determines whether to return the match results with subpixel accuracy.
01762     IMAQ_SUBPIXEL_ITERATIONS               = 11,  //Specifies the maximum number of incremental improvements used to refine matches using subpixel information.
01763     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.
01764     IMAQ_INITIAL_MATCH_LIST_LENGTH         = 13,  //Specifies the maximum size of the match list.
01765     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.
01766     IMAQ_MINIMUM_MATCH_SEPARATION_DISTANCE = 15,  //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
01767     IMAQ_MINIMUM_MATCH_SEPARATION_ANGLE    = 16,  //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
01768     IMAQ_MINIMUM_MATCH_SEPARATION_SCALE    = 17,  //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
01769     IMAQ_MAXIMUM_MATCH_OVERLAP             = 18,  //Specifies whether you want the algorithm to spend less time accurately estimating the location of a match.
01770     IMAQ_ENABLE_COARSE_RESULT              = 19,  //Specifies whether you want the algorithm to spend less time accurately estimating the location of a match.
01771     IMAQ_ENABLE_CALIBRATION_SUPPORT        = 20,  //Specifies whether or not the algorithm treat the inspection image as a calibrated image.
01772     IMAQ_ENABLE_CONTRAST_REVERSAL          = 21,  //Specifies the contrast of the matches to search for.
01773     IMAQ_SEARCH_STRATEGY                   = 22,  //Specifies the aggressiveness of the strategy used to find matches in the image.
01774     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.
01775     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.
01776     IMAQ_MAX_REFINEMENT_ITERATIONS         = 25,  //Specifies maximum refinement iteration.
01777 } GeometricSetupDataItem;
01778 
01779 typedef enum DistortionModel_enum {
01780     IMAQ_POLYNOMIAL_MODEL    = 0,   //Polynomial model.
01781     IMAQ_DIVISION_MODEL      = 1,   //Division Model.
01782     IMAQ_NO_DISTORTION_MODEL = -1,  //Not a distortion model.
01783 } DistortionModel;
01784 
01785 typedef enum CalibrationThumbnailType_enum {
01786     IMAQ_CAMARA_MODEL_TYPE                     = 0,           //Camara model thumbnail type.
01787     IMAQ_PERSPECTIVE_TYPE                      = 1,           //Perspective thumbnail type.
01788     IMAQ_MICRO_PLANE_TYPE                      = 2,           //Micro Plane thumbnail type.
01789     IMAQ_CALIBRATION_THUMBNAIL_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01790 } CalibrationThumbnailType;
01791 
01792 typedef enum SettingType_enum {
01793     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.
01794     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.
01795     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.
01796     IMAQ_SETTING_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01797 } SettingType;
01798 
01799 typedef enum SegmentationDistanceLevel_enum {
01800     IMAQ_SEGMENTATION_LEVEL_CONSERVATIVE = 0,           //Uses extensive criteria to determine the Maximum Distance.
01801     IMAQ_SEGMENTATION_LEVEL_AGGRESSIVE   = 1,           //Uses few criteria to determine the Maximum Distance.
01802     IMAQ_SEGMENTATION_LEVEL_SIZE_GUARD   = 0xFFFFFFFF   
01803 } SegmentationDistanceLevel;
01804 
01805 typedef enum ExtractContourSelection_enum {
01806     IMAQ_CLOSEST                              = 0,           //Selects the curve closest to the ROI.
01807     IMAQ_LONGEST                              = 1,           //Selects the longest curve.
01808     IMAQ_STRONGEST                            = 2,           //Selects the curve with the highest edge strength averaged from each point on the curve.
01809     IMAQ_EXTRACT_CONTOUR_SELECTION_SIZE_GUARD = 0xFFFFFFFF   
01810 } ExtractContourSelection;
01811 
01812 typedef enum FindTransformMode_enum {
01813     IMAQ_FIND_REFERENCE                 = 0,           //Update both parts of the coordinate system.
01814     IMAQ_UPDATE_TRANSFORM               = 1,           //Update only the new reference system.
01815     IMAQ_FIND_TRANSFORM_MODE_SIZE_GUARD = 0xFFFFFFFF   
01816 } FindTransformMode;
01817 
01818 typedef enum ExtractContourDirection_enum {
01819     IMAQ_RECT_LEFT_RIGHT                      = 0,           //Searches the ROI from left to right.
01820     IMAQ_RECT_RIGHT_LEFT                      = 1,           //Searches the ROI from right to left.
01821     IMAQ_RECT_TOP_BOTTOM                      = 2,           //Searches the ROI from top to bottom.
01822     IMAQ_RECT_BOTTOM_TOP                      = 3,           //Searches the ROI from bottom to top.
01823     IMAQ_ANNULUS_INNER_OUTER                  = 4,           //Searches the ROI from the inner radius to the outer radius.
01824     IMAQ_ANNULUS_OUTER_INNER                  = 5,           //Searches the ROI from the outer radius to the inner radius.
01825     IMAQ_ANNULUS_START_STOP                   = 6,           //Searches the ROI from start angle to end angle.
01826     IMAQ_ANNULUS_STOP_START                   = 7,           //Searches the ROI from end angle to start angle.
01827     IMAQ_EXTRACT_CONTOUR_DIRECTION_SIZE_GUARD = 0xFFFFFFFF   
01828 } ExtractContourDirection;
01829 
01830 typedef enum EdgePolaritySearchMode_enum {
01831     IMAQ_SEARCH_FOR_ALL_EDGES          = 0,           //Searches for all edges.
01832     IMAQ_SEARCH_FOR_RISING_EDGES       = 1,           //Searches for rising edges only.
01833     IMAQ_SEARCH_FOR_FALLING_EDGES      = 2,           //Searches for falling edges only.
01834     IMAQ_EDGE_POLARITY_MODE_SIZE_GUARD = 0xFFFFFFFF   
01835 } EdgePolaritySearchMode;
01836 
01837 typedef enum Connectivity_enum {
01838     IMAQ_FOUR_CONNECTED          = 0,           //Morphological reconstruction is performed in connectivity mode 4.
01839     IMAQ_EIGHT_CONNECTED         = 1,           //Morphological reconstruction is performed in connectivity mode 8.
01840     IMAQ_CONNECTIVITY_SIZE_GUARD = 0xFFFFFFFF   
01841 } Connectivity;
01842 
01843 typedef enum MorphologyReconstructOperation_enum {
01844     IMAQ_DILATE_RECONSTRUCT                          = 0,           //Performs Reconstruction by dilation.
01845     IMAQ_ERODE_RECONSTRUCT                           = 1,           //Performs Reconstruction by erosion.
01846     IMAQ_MORPHOLOGY_RECONSTRUCT_OPERATION_SIZE_GUARD = 0xFFFFFFFF   
01847 } MorphologyReconstructOperation;
01848 
01849 typedef enum WaveletType_enum {
01850     IMAQ_DB02                 = 0,           
01851     IMAQ_DB03                 = 1,           
01852     IMAQ_DB04                 = 2,           //Specifies the Wavelet Type as DB02.
01853     IMAQ_DB05                 = 3,           
01854     IMAQ_DB06                 = 4,           
01855     IMAQ_DB07                 = 5,           
01856     IMAQ_DB08                 = 6,           
01857     IMAQ_DB09                 = 7,           
01858     IMAQ_DB10                 = 8,           
01859     IMAQ_DB11                 = 9,           
01860     IMAQ_DB12                 = 10,          
01861     IMAQ_DB13                 = 11,          
01862     IMAQ_DB14                 = 12,          
01863     IMAQ_HAAR                 = 13,          
01864     IMAQ_BIOR1_3              = 14,          
01865     IMAQ_BIOR1_5              = 15,          
01866     IMAQ_BIOR2_2              = 16,          
01867     IMAQ_BIOR2_4              = 17,          
01868     IMAQ_BIOR2_6              = 18,          
01869     IMAQ_BIOR2_8              = 19,          
01870     IMAQ_BIOR3_1              = 20,          
01871     IMAQ_BIOR3_3              = 21,          
01872     IMAQ_BIOR3_5              = 22,          
01873     IMAQ_BIOR3_7              = 23,          
01874     IMAQ_BIOR3_9              = 24,          
01875     IMAQ_BIOR4_4              = 25,          
01876     IMAQ_COIF1                = 26,          
01877     IMAQ_COIF2                = 27,          
01878     IMAQ_COIF3                = 28,          
01879     IMAQ_COIF4                = 29,          
01880     IMAQ_COIF5                = 30,          
01881     IMAQ_SYM2                 = 31,          
01882     IMAQ_SYM3                 = 32,          
01883     IMAQ_SYM4                 = 33,          
01884     IMAQ_SYM5                 = 34,          
01885     IMAQ_SYM6                 = 35,          
01886     IMAQ_SYM7                 = 36,          
01887     IMAQ_SYM8                 = 37,          
01888     IMAQ_BIOR5_5              = 38,          
01889     IMAQ_BIOR6_8              = 39,          
01890     IMAQ_WAVE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01891 } WaveletType;
01892 
01893 typedef enum ParticleClassifierThresholdType_enum {
01894     IMAQ_THRESHOLD_MANUAL = 0,  //The classifier performs a manual threshold on the image during preprocessing.
01895     IMAQ_THRESHOLD_AUTO   = 1,  //The classifier performs an auto threshold on the image during preprocessing.
01896     IMAQ_THRESHOLD_LOCAL  = 2,  //The classifier performs a local threshold on the image during preprocessing.
01897 } ParticleClassifierThresholdType;
01898 
01899 typedef enum MeasureParticlesCalibrationMode_enum {
01900     IMAQ_CALIBRATION_MODE_PIXEL                        = 0,           //The function takes only pixel measurements on the particles in the image.
01901     IMAQ_CALIBRATION_MODE_CALIBRATED                   = 1,           //The function takes only calibrated measurements on the particles in the image.
01902     IMAQ_CALIBRATION_MODE_BOTH                         = 2,           //The function takes both pixel and calibrated measurements on the particles in the image.
01903     IMAQ_MEASURE_PARTICLES_CALIBRATION_MODE_SIZE_GUARD = 0xFFFFFFFF   
01904 } MeasureParticlesCalibrationMode;
01905 
01906 typedef enum GeometricMatchingSearchStrategy_enum {
01907     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.
01908     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.
01909     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.
01910     IMAQ_GEOMETRIC_MATCHING_SEARCH_STRATEGY_SIZE_GUARD = 0xFFFFFFFF   
01911 } GeometricMatchingSearchStrategy;
01912 
01913 typedef enum ColorClassificationResolution_enum {
01914     IMAQ_CLASSIFIER_LOW_RESOLUTION        = 0,           //Low resolution version of the color classifier.
01915     IMAQ_CLASSIFIER_MEDIUM_RESOLUTION     = 1,           //Medium resolution version of the color classifier.
01916     IMAQ_CLASSIFIER_HIGH_RESOLUTION       = 2,           //High resolution version of the color classifier.
01917     IMAQ_CLASSIFIER_RESOLUTION_SIZE_GUARD = 0xFFFFFFFF   
01918 } ColorClassificationResolution;
01919 
01920 typedef enum ConnectionConstraintType_enum {
01921     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.
01922     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.
01923     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.
01924     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.
01925     IMAQ_NUM_CONNECTION_CONSTRAINT_TYPES  = 4,           //.
01926     IMAQ_CONNECTION_CONSTRAINT_SIZE_GUARD = 0xFFFFFFFF   
01927 } ConnectionConstraintType;
01928 
01929 typedef enum Barcode2DContrast_enum {
01930     IMAQ_ALL_BARCODE_2D_CONTRASTS       = 0,           //The function searches for barcodes of each contrast type.
01931     IMAQ_BLACK_ON_WHITE_BARCODE_2D      = 1,           //The function searches for 2D barcodes containing black data on a white background.
01932     IMAQ_WHITE_ON_BLACK_BARCODE_2D      = 2,           //The function searches for 2D barcodes containing white data on a black background.
01933     IMAQ_BARCODE_2D_CONTRAST_SIZE_GUARD = 0xFFFFFFFF   
01934 } Barcode2DContrast;
01935 
01936 typedef enum QRModelType_enum {
01937     IMAQ_QR_MODELTYPE_AUTO_DETECT = 0,           //Specifies that the function will auto-detect the type of QR code.
01938     IMAQ_QR_MODELTYPE_MICRO       = 1,           //Specifies the QR code is of a micro type.
01939     IMAQ_QR_MODELTYPE_MODEL1      = 2,           //Specifies the QR code is of a model1 type.
01940     IMAQ_QR_MODELTYPE_MODEL2      = 3,           //Specifies the QR code is of a model2 type.
01941     IMAQ_QR_MODEL_TYPE_SIZE_GUARD = 0xFFFFFFFF   
01942 } QRModelType;
01943 
01944 typedef enum WindowBackgroundFillStyle_enum {
01945     IMAQ_FILL_STYLE_SOLID      = 0,           //Fill the display window with a solid color.
01946     IMAQ_FILL_STYLE_HATCH      = 2,           //Fill the display window with a pattern defined by WindowBackgroundHatchStyle.
01947     IMAQ_FILL_STYLE_DEFAULT    = 3,           //Fill the display window with the NI Vision default pattern.
01948     IMAQ_FILL_STYLE_SIZE_GUARD = 0xFFFFFFFF   
01949 } WindowBackgroundFillStyle;
01950 
01951 typedef enum ExtractionMode_enum {
01952     IMAQ_NORMAL_IMAGE               = 0,           //Specifies that the function makes no assumptions about the uniformity of objects in the image or the image background.
01953     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.
01954     IMAQ_EXTRACTION_MODE_SIZE_GUARD = 0xFFFFFFFF   
01955 } ExtractionMode;
01956 
01957 typedef enum EdgeFilterSize_enum {
01958     IMAQ_FINE                        = 0,           //Specifies that the function uses a fine (narrow) edge filter.
01959     IMAQ_NORMAL                      = 1,           //Specifies that the function uses a normal edge filter.
01960     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.
01961     IMAQ_EDGE_FILTER_SIZE_SIZE_GUARD = 0xFFFFFFFF   
01962 } EdgeFilterSize;
01963 
01964 typedef enum Barcode2DSearchMode_enum {
01965     IMAQ_SEARCH_MULTIPLE                   = 0,           //The function searches for multiple 2D barcodes.
01966     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.
01967     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.
01968     IMAQ_BARCODE_2D_SEARCH_MODE_SIZE_GUARD = 0xFFFFFFFF   
01969 } Barcode2DSearchMode;
01970 
01971 typedef enum DataMatrixSubtype_enum {
01972     IMAQ_ALL_DATA_MATRIX_SUBTYPES             = 0,           //The function searches for Data Matrix barcodes of all subtypes.
01973     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.
01974     IMAQ_DATA_MATRIX_SUBTYPE_ECC_200          = 2,           //The function searches for Data Matrix ECC 200 barcodes.
01975     IMAQ_DATA_MATRIX_SUBTYPE_SIZE_GUARD       = 0xFFFFFFFF   
01976 } DataMatrixSubtype;
01977 
01978 typedef enum FeatureType_enum {
01979     IMAQ_NOT_FOUND_FEATURE                   = 0,           //Specifies the feature is not found.
01980     IMAQ_CIRCLE_FEATURE                      = 1,           //Specifies the feature is a circle.
01981     IMAQ_ELLIPSE_FEATURE                     = 2,           //Specifies the feature is an ellipse.
01982     IMAQ_CONST_CURVE_FEATURE                 = 3,           //Specifies the features is a constant curve.
01983     IMAQ_RECTANGLE_FEATURE                   = 4,           //Specifies the feature is a rectangle.
01984     IMAQ_LEG_FEATURE                         = 5,           //Specifies the feature is a leg.
01985     IMAQ_CORNER_FEATURE                      = 6,           //Specifies the feature is a corner.
01986     IMAQ_PARALLEL_LINE_PAIR_FEATURE          = 7,           //Specifies the feature is a parallel line pair.
01987     IMAQ_PAIR_OF_PARALLEL_LINE_PAIRS_FEATURE = 8,           //Specifies the feature is a pair of parallel line pairs.
01988     IMAQ_LINE_FEATURE                        = 9,           //Specifies the feature is a line.
01989     IMAQ_CLOSED_CURVE_FEATURE                = 10,          //Specifies the feature is a closed curve.
01990     IMAQ_FEATURE_TYPE_SIZE_GUARD             = 0xFFFFFFFF   
01991 } FeatureType;
01992 
01993 typedef enum Barcode2DCellShape_enum {
01994     IMAQ_SQUARE_CELLS                     = 0,           //The function uses an algorithm for decoding the 2D barcode that works with square data cells.
01995     IMAQ_ROUND_CELLS                      = 1,           //The function uses an algorithm for decoding the 2D barcode that works with round data cells.
01996     IMAQ_BARCODE_2D_CELL_SHAPE_SIZE_GUARD = 0xFFFFFFFF   
01997 } Barcode2DCellShape;
01998 
01999 typedef enum LocalThresholdMethod_enum {
02000     IMAQ_NIBLACK                           = 0,           //The function computes thresholds for each pixel based on its local statistics using the Niblack local thresholding algorithm.
02001     IMAQ_BACKGROUND_CORRECTION             = 1,           //The function performs background correction first to eliminate non-uniform lighting effects, then performs thresholding using the Otsu thresholding algorithm.
02002     IMAQ_LOCAL_THRESHOLD_METHOD_SIZE_GUARD = 0xFFFFFFFF   
02003 } LocalThresholdMethod;
02004 
02005 typedef enum Barcode2DType_enum {
02006     IMAQ_PDF417                     = 0,           //The 2D barcode is of type PDF417.
02007     IMAQ_DATA_MATRIX_ECC_000        = 1,           //The 2D barcode is of type Data Matrix ECC 000.
02008     IMAQ_DATA_MATRIX_ECC_050        = 2,           //The 2D barcode is of type Data Matrix ECC 050.
02009     IMAQ_DATA_MATRIX_ECC_080        = 3,           //The 2D barcode is of type Data Matrix ECC 080.
02010     IMAQ_DATA_MATRIX_ECC_100        = 4,           //The 2D barcode is of type Data Matrix ECC 100.
02011     IMAQ_DATA_MATRIX_ECC_140        = 5,           //The 2D barcode is of type Data Matrix ECC 140.
02012     IMAQ_DATA_MATRIX_ECC_200        = 6,           //The 2D barcode is of type Data Matrix ECC 200.
02013     IMAQ_BARCODE_2D_TYPE_SIZE_GUARD = 0xFFFFFFFF   
02014 } Barcode2DType;
02015 
02016 typedef enum ClassifierEngineType_enum {
02017     IMAQ_ENGINE_NONE                       = 0,           //No engine has been set on this classifier session.
02018     IMAQ_ENGINE_NEAREST_NEIGHBOR           = 1,           //Nearest neighbor engine.
02019     IMAQ_ENGINE_SUPPORT_VECTOR_MACHINE     = 2,           
02020     IMAQ_CLASSIFIER_ENGINE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
02021 } ClassifierEngineType;
02022 
02023 typedef enum ClassifierType_enum {
02024     IMAQ_CLASSIFIER_CUSTOM          = 0,           //The classifier session classifies vectors of doubles.
02025     IMAQ_CLASSIFIER_PARTICLE        = 1,           //The classifier session classifies particles in binary images.
02026     IMAQ_CLASSIFIER_COLOR           = 2,           //The classifier session classifies an image based on its color.
02027     IMAQ_CLASSIFIER_TEXTURE         = 3,           //The classifier session classifies an image based on its texture.
02028     IMAQ_CLASSIFIER_TYPE_SIZE_GUARD = 0xFFFFFFFF   
02029 } ClassifierType;
02030 
02031 typedef enum ParticleType_enum {
02032     IMAQ_PARTICLE_BRIGHT          = 0,           //Bright particles.
02033     IMAQ_PARTICLE_DARK            = 1,           //Dark particles.
02034     IMAQ_PARTICLE_TYPE_SIZE_GUARD = 0xFFFFFFFF   
02035 } ParticleType;
02036 
02037 typedef enum VisionInfoType2_enum {
02038     IMAQ_VISIONINFO_CALIBRATION        = 0x01,        //Used to indicate interaction with the Calibration information in an image.
02039     IMAQ_VISIONINFO_OVERLAY            = 0x02,        //Used to indicate interaction with the Overlay information in an image.
02040     IMAQ_VISIONINFO_GRAYTEMPLATE       = 0x04,        //Used to indicate interaction with the grayscale template information in an image.
02041     IMAQ_VISIONINFO_COLORTEMPLATE      = 0x08,        //Used to indicate interaction with the color template information in an image.
02042     IMAQ_VISIONINFO_GEOMETRICTEMPLATE  = 0x10,        //Used to indicate interaction with the geometric template information in an image.
02043     IMAQ_VISIONINFO_CUSTOMDATA         = 0x20,        //Used to indicate interaction with the binary or text Custom Data in an image.
02044     IMAQ_VISIONINFO_GOLDENTEMPLATE     = 0x40,        //Used to indicate interaction with the golden template information in an image.
02045     IMAQ_VISIONINFO_GEOMETRICTEMPLATE2 = 0x80,        //Used to indicate interaction with the geometric template 2 information in an image.
02046     IMAQ_VISIONINFO_ALL                = 0xFFFFFFFF,  //Removes, checks for, or indicates the presence of all types of extra information in an image.
02047 } VisionInfoType2;
02048 
02049 typedef enum ReadClassifierFileMode_enum {
02050     IMAQ_CLASSIFIER_READ_ALL                   = 0,           //Read all information from the classifier file.
02051     IMAQ_CLASSIFIER_READ_SAMPLES               = 1,           //Read only the samples from the classifier file.
02052     IMAQ_CLASSIFIER_READ_PROPERTIES            = 2,           //Read only the properties from the classifier file.
02053     IMAQ_READ_CLASSIFIER_FILE_MODES_SIZE_GUARD = 0xFFFFFFFF   
02054 } ReadClassifierFileMode;
02055 
02056 typedef enum WriteClassifierFileMode_enum {
02057     IMAQ_CLASSIFIER_WRITE_ALL                   = 0,           //Writes all information to the classifier file.
02058     IMAQ_CLASSIFIER_WRITE_CLASSIFY_ONLY         = 1,           //Write only the information needed to classify to the classifier file.
02059     IMAQ_WRITE_CLASSIFIER_FILE_MODES_SIZE_GUARD = 0xFFFFFFFF   
02060 } WriteClassifierFileMode;
02061 
02062 typedef enum Barcode2DShape_enum {
02063     IMAQ_SQUARE_BARCODE_2D           = 0,           //The function searches for square 2D barcodes.
02064     IMAQ_RECTANGULAR_BARCODE_2D      = 1,           //The function searches for rectangular 2D barcodes.
02065     IMAQ_BARCODE_2D_SHAPE_SIZE_GUARD = 0xFFFFFFFF   
02066 } Barcode2DShape;
02067 
02068 typedef enum DataMatrixRotationMode_enum {
02069     IMAQ_UNLIMITED_ROTATION                   = 0,           //The function allows for unlimited rotation.
02070     IMAQ_0_DEGREES                            = 1,           //The function allows for between -5 and 5 degrees of rotation.
02071     IMAQ_90_DEGREES                           = 2,           //The function allows for between 85 and 95 degrees of rotation.
02072     IMAQ_180_DEGREES                          = 3,           //The function allows for between 175 and 185 degrees of rotation.
02073     IMAQ_270_DEGREES                          = 4,           //The function allows for between 265 and 275 degrees of rotation.
02074     IMAQ_DATA_MATRIX_ROTATION_MODE_SIZE_GUARD = 0xFFFFFFFF   
02075 } DataMatrixRotationMode;
02076 
02077 typedef enum AIMGrade_enum {
02078     IMAQ_AIM_GRADE_F                      = 0,           //The Data Matrix barcode received a grade of F.
02079     IMAQ_AIM_GRADE_D                      = 1,           //The Data Matrix barcode received a grade of D.
02080     IMAQ_AIM_GRADE_C                      = 2,           //The Data Matrix barcode received a grade of C.
02081     IMAQ_AIM_GRADE_B                      = 3,           //The Data Matrix barcode received a grade of B.
02082     IMAQ_AIM_GRADE_A                      = 4,           //The Data Matrix barcode received a grade of A.
02083     IMAQ_DATA_MATRIX_AIM_GRADE_SIZE_GUARD = 0xFFFFFFFF   
02084 } AIMGrade;
02085 
02086 typedef enum DataMatrixCellFillMode_enum {
02087     IMAQ_AUTO_DETECT_CELL_FILL_MODE            = -2,          //Sets the function to determine the Data Matrix barcode cell fill percentage automatically.
02088     IMAQ_LOW_FILL                              = 0,           //Sets the function to read Data Matrix barcodes with a cell fill percentage of less than 30 percent.
02089     IMAQ_NORMAL_FILL                           = 1,           //Sets the function to read Data Matrix barcodes with a cell fill percentage greater than or equal to 30 percent.
02090     IMAQ_DATA_MATRIX_CELL_FILL_MODE_SIZE_GUARD = 0xFFFFFFFF   
02091 } DataMatrixCellFillMode;
02092 
02093 typedef enum DataMatrixDemodulationMode_enum {
02094     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.
02095     IMAQ_HISTOGRAM                                = 0,           //The function uses a histogram of all of the Data Matrix cells to calculate a threshold.
02096     IMAQ_LOCAL_CONTRAST                           = 1,           //The function examines each of the cell's neighbors to determine if the cell is on or off.
02097     IMAQ_COMBINED                                 = 2,           //The function uses the histogram of the Data Matrix barcode to calculate a threshold.
02098     IMAQ_ALL_DEMODULATION_MODES                   = 3,           //The function tries IMAQ_HISTOGRAM, then IMAQ_LOCAL_CONTRAST and then IMAQ_COMBINATION, stopping once one mode is successful.
02099     IMAQ_DATA_MATRIX_DEMODULATION_MODE_SIZE_GUARD = 0xFFFFFFFF   
02100 } DataMatrixDemodulationMode;
02101 
02102 typedef enum DataMatrixECC_enum {
02103     IMAQ_AUTO_DETECT_ECC            = -2,          //Sets the function to determine the Data Matrix barcode ECC automatically.
02104     IMAQ_ECC_000                    = 0,           //Sets the function to read Data Matrix barcodes of ECC 000 only.
02105     IMAQ_ECC_050                    = 50,          //Sets the function to read Data Matrix barcodes of ECC 050 only.
02106     IMAQ_ECC_080                    = 80,          //Sets the function to read Data Matrix barcodes of ECC 080 only.
02107     IMAQ_ECC_100                    = 100,         //Sets the function to read Data Matrix barcodes of ECC 100 only.
02108     IMAQ_ECC_140                    = 140,         //Sets the function to read Data Matrix barcodes of ECC 140 only.
02109     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.
02110     IMAQ_ECC_200                    = 200,         //Sets the function to read Data Matrix barcodes of ECC 200 only.
02111     IMAQ_DATA_MATRIX_ECC_SIZE_GUARD = 0xFFFFFFFF   
02112 } DataMatrixECC;
02113 
02114 typedef enum DataMatrixPolarity_enum {
02115     IMAQ_AUTO_DETECT_POLARITY            = -2,          //Sets the function to determine the Data Matrix barcode polarity automatically.
02116     IMAQ_BLACK_DATA_ON_WHITE_BACKGROUND  = 0,           //Sets the function to read Data Matrix barcodes with dark data on a bright background.
02117     IMAQ_WHITE_DATA_ON_BLACK_BACKGROUND  = 1,           //Sets the function to read Data Matrix barcodes with bright data on a dark background.
02118     IMAQ_DATA_MATRIX_POLARITY_SIZE_GUARD = 0xFFFFFFFF   
02119 } DataMatrixPolarity;
02120 
02121 typedef enum DataMatrixCellFilterMode_enum {
02122     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.
02123     IMAQ_AVERAGE_FILTER                          = 0,           //The function sets the pixel value for the cell to the average of the sampled pixels.
02124     IMAQ_MEDIAN_FILTER                           = 1,           //The function sets the pixel value for the cell to the median of the sampled pixels.
02125     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.
02126     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.
02127     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.
02128     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.
02129     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.
02130     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.
02131     IMAQ_DATA_MATRIX_CELL_FILTER_MODE_SIZE_GUARD = 0xFFFFFFFF   
02132 } DataMatrixCellFilterMode;
02133 
02134 typedef enum WindowBackgroundHatchStyle_enum {
02135     IMAQ_HATCH_STYLE_HORIZONTAL        = 0,           //The background of the display window will be horizontal bars.
02136     IMAQ_HATCH_STYLE_VERTICAL          = 1,           //The background of the display window will be vertical bars.
02137     IMAQ_HATCH_STYLE_FORWARD_DIAGONAL  = 2,           //The background of the display window will be diagonal bars.
02138     IMAQ_HATCH_STYLE_BACKWARD_DIAGONAL = 3,           //The background of the display window will be diagonal bars.
02139     IMAQ_HATCH_STYLE_CROSS             = 4,           //The background of the display window will be intersecting horizontal and vertical bars.
02140     IMAQ_HATCH_STYLE_CROSS_HATCH       = 5,           //The background of the display window will be intersecting forward and backward diagonal bars.
02141     IMAQ_HATCH_STYLE_SIZE_GUARD        = 0xFFFFFFFF   
02142 } WindowBackgroundHatchStyle;
02143 
02144 typedef enum DataMatrixMirrorMode_enum {
02145     IMAQ_AUTO_DETECT_MIRROR                 = -2,          //Specifies that the function should determine if the Data Matrix barcode is mirrored.
02146     IMAQ_APPEARS_NORMAL                     = 0,           //Specifies that the function should expect the Data Matrix barcode to appear normal.
02147     IMAQ_APPEARS_MIRRORED                   = 1,           //Specifies that the function should expect the Data Matrix barcode to appear mirrored.
02148     IMAQ_DATA_MATRIX_MIRROR_MODE_SIZE_GUARD = 0xFFFFFFFF   
02149 } DataMatrixMirrorMode;
02150 
02151 typedef enum CalibrationMode2_enum {
02152     IMAQ_PERSPECTIVE_MODE             = 0,           //Functions correct for distortion caused by the camera's perspective.
02153     IMAQ_MICROPLANE_MODE              = 1,           //Functions correct for distortion caused by the camera's lens.
02154     IMAQ_SIMPLE_CALIBRATION_MODE      = 2,           //Functions do not correct for distortion.
02155     IMAQ_CORRECTED_IMAGE_MODE         = 3,           //The image is already corrected.
02156     IMAQ_NO_CALIBRATION_MODE          = 4,           //Image with No calibration.
02157     IMAQ_CALIBRATION_MODE2_SIZE_GUARD = 0xFFFFFFFF   
02158 } CalibrationMode2;
02159 
02160 typedef enum DataMatrixGradingMode_enum {
02161     IMAQ_NO_GRADING                          = 0,           //The function does not make any preparatory calculations.
02162     IMAQ_PREPARE_FOR_AIM                     = 1,           //The function prepares the image for grading using the AIM Print Quality metrics.
02163     IMAQ_DATA_MATRIX_GRADING_MODE_SIZE_GUARD = 0xFFFFFFFF   
02164 } DataMatrixGradingMode;
02165 
02166 typedef enum WaveletTransformMode_enum {
02167     IMAQ_WAVELET_TRANSFORM_INTEGER         = 0,           //Uses a 5-3 reversible integer transform.
02168     IMAQ_WAVELET_TRANSFORM_FLOATING_POINT  = 1,           //Performs a 9-7 irreversible floating-point transform.
02169     IMAQ_WAVELET_TRANSFORM_MODE_SIZE_GUARD = 0xFFFFFFFF   
02170 } WaveletTransformMode;
02171 
02172 typedef enum NormalizationMethod_enum {
02173     IMAQ_NORMALIZATION_NONE               = 0,           //No normalization.
02174     IMAQ_NORMALIZATION_HISTOGRAM_MATCHING = 1,           //Adjust image so its histogram is similar to the golden template's histogram.
02175     IMAQ_NORMALIZATION_AVERAGE_MATCHING   = 2,           //Adjust image so its mean pixel value equals the golden template's mean pixel value.
02176     IMAQ_NORMALIZATION_SIZE_GUARD         = 0xFFFFFFFF   
02177 } NormalizationMethod;
02178 
02179 typedef enum RegistrationMethod_enum {
02180     IMAQ_REGISTRATION_NONE        = 0,           //No registration.
02181     IMAQ_REGISTRATION_PERSPECTIVE = 1,           //Adjust image to correct for minor variations in alignment or perspective.
02182     IMAQ_REGISTRATION_SIZE_GUARD  = 0xFFFFFFFF   
02183 } RegistrationMethod;
02184 
02185 typedef enum LinearAveragesMode_enum {
02186     IMAQ_COLUMN_AVERAGES                 = 1,           //Specifies that the function calculates the mean pixel value of each column.
02187     IMAQ_ROW_AVERAGES                    = 2,           //Specifies that the function calculates the mean pixel value of each row.
02188     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.
02189     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.
02190     IMAQ_ALL_LINEAR_AVERAGES             = 15,          //Specifies that the function calculates all four linear mean pixel values.
02191     IMAQ_LINEAR_AVERAGES_MODE_SIZE_GUARD = 0xFFFFFFFF   
02192 } LinearAveragesMode;
02193 
02194 typedef enum CompressionType_enum {
02195     IMAQ_COMPRESSION_NONE            = 0,           //Specifies that the function should not compress the image.
02196     IMAQ_COMPRESSION_JPEG            = 1,           //Specifies that the function should use lossy JPEG compression on the image.
02197     IMAQ_COMPRESSION_PACKED_BINARY   = 2,           //Specifies that the function should use lossless binary packing on the image.
02198     IMAQ_COMPRESSION_TYPE_SIZE_GUARD = 0xFFFFFFFF   
02199 } CompressionType;
02200 
02201 typedef enum FlattenType_enum {
02202     IMAQ_FLATTEN_IMAGE                 = 0,           //Flattens just the image data.
02203     IMAQ_FLATTEN_IMAGE_AND_VISION_INFO = 1,           //Flattens the image data and any Vision information associated with the image.
02204     IMAQ_FLATTEN_TYPE_SIZE_GUARD       = 0xFFFFFFFF   
02205 } FlattenType;
02206 
02207 typedef enum DataMatrixCellSampleSize_enum {
02208     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.
02209     IMAQ_1x1                                     = 1,           //The function will use a 1x1 sized sample from each cell.
02210     IMAQ_2x2                                     = 2,           //The function will use a 2x2 sized sample from each cell.
02211     IMAQ_3x3                                     = 3,           //The function will use a 3x3 sized sample from each cell.
02212     IMAQ_4x4                                     = 4,           //The function will use a 4x4 sized sample from each cell.
02213     IMAQ_5x5                                     = 5,           //The function will use a 5x5 sized sample from each cell.
02214     IMAQ_6x6                                     = 6,           //The function will use a 6x6 sized sample from each cell.
02215     IMAQ_7x7                                     = 7,           //The function will use a 7x7 sized sample from each cell.
02216     IMAQ_DATA_MATRIX_CELL_SAMPLE_SIZE_SIZE_GUARD = 0xFFFFFFFF   
02217 } DataMatrixCellSampleSize;
02218 
02219 
02220 //============================================================================
02221 //  Forward Declare Data Structures
02222 //============================================================================
02223 typedef struct Image_struct Image;
02224 typedef struct ROI_struct ROI;
02225 typedef struct Overlay_struct Overlay;
02226 typedef struct ClassifierSession_struct ClassifierSession;
02227 typedef struct MultipleGeometricPattern_struct MultipleGeometricPattern;
02228 typedef int ContourID;
02229 typedef unsigned long SESSION_ID;
02230 typedef int     AVISession;
02231 typedef char* FilterName;
02232 typedef char String255[256];
02233 typedef struct CharSet_struct CharSet;
02234 typedef struct OCRSpacingOptions_struct OCRSpacingOptions;
02235 typedef struct OCRProcessingOptions_struct OCRProcessingOptions;
02236 typedef struct ReadTextOptions_struct ReadTextOptions;
02237 typedef struct CharInfo_struct CharInfo;
02238 typedef struct CharReport_struct CharReport;
02239 typedef struct ReadTextReport_struct ReadTextReport;
02240 typedef struct DivisionModel_struct DivisionModel;
02241 typedef struct FocalLength_struct FocalLength;
02242 typedef struct PolyModel_struct PolyModel;
02243 typedef struct DistortionModelParams_struct DistortionModelParams;
02244 typedef struct PointFloat_struct PointFloat;
02245 typedef struct InternalParameters_struct InternalParameters;
02246 typedef struct MaxGridSize_struct MaxGridSize;
02247 typedef struct ImageSize_struct ImageSize;
02248 typedef struct CalibrationReferencePoints_struct CalibrationReferencePoints;
02249 typedef struct GetCameraParametersReport_struct GetCameraParametersReport;
02250 typedef struct CalibrationAxisInfo_struct CalibrationAxisInfo;
02251 typedef struct CalibrationLearnSetupInfo_struct CalibrationLearnSetupInfo;
02252 typedef struct GridDescriptor_struct GridDescriptor;
02253 typedef struct ErrorStatistics_struct ErrorStatistics;
02254 typedef struct GetCalibrationInfoReport_struct GetCalibrationInfoReport;
02255 typedef struct EdgePolarity_struct EdgePolarity;
02256 typedef struct ClampSettings_struct ClampSettings;
02257 typedef struct PointDouble_struct PointDouble;
02258 typedef struct PointDoublePair_struct PointDoublePair;
02259 typedef struct ClampResults_struct ClampResults;
02260 typedef struct ClampPoints_struct ClampPoints;
02261 typedef struct RGBValue_struct RGBValue;
02262 typedef struct ClampOverlaySettings_struct ClampOverlaySettings;
02263 typedef struct ClampMax2Report_struct ClampMax2Report;
02264 typedef struct ContourFitSplineReport_struct ContourFitSplineReport;
02265 typedef struct LineFloat_struct LineFloat;
02266 typedef struct LineEquation_struct LineEquation;
02267 typedef struct ContourFitLineReport_struct ContourFitLineReport;
02268 typedef struct ContourFitPolynomialReport_struct ContourFitPolynomialReport;
02269 typedef struct PartialCircle_struct PartialCircle;
02270 typedef struct PartialEllipse_struct PartialEllipse;
02271 typedef struct SetupMatchPatternData_struct SetupMatchPatternData;
02272 typedef struct RangeSettingDouble_struct RangeSettingDouble;
02273 typedef struct GeometricAdvancedSetupDataOption_struct GeometricAdvancedSetupDataOption;
02274 typedef struct ContourInfoReport_struct ContourInfoReport;
02275 typedef struct ROILabel_struct ROILabel;
02276 typedef struct SupervisedColorSegmentationReport_struct SupervisedColorSegmentationReport;
02277 typedef struct LabelToROIReport_struct LabelToROIReport;
02278 typedef struct ColorSegmenationOptions_struct ColorSegmenationOptions;
02279 typedef struct ClassifiedCurve_struct ClassifiedCurve;
02280 typedef struct RangeDouble_struct RangeDouble;
02281 typedef struct RangeLabel_struct RangeLabel;
02282 typedef struct CurvatureAnalysisReport_struct CurvatureAnalysisReport;
02283 typedef struct Disparity_struct Disparity;
02284 typedef struct ComputeDistancesReport_struct ComputeDistancesReport;
02285 typedef struct MatchMode_struct MatchMode;
02286 typedef struct ClassifiedDisparity_struct ClassifiedDisparity;
02287 typedef struct ClassifyDistancesReport_struct ClassifyDistancesReport;
02288 typedef struct ContourComputeCurvatureReport_struct ContourComputeCurvatureReport;
02289 typedef struct ContourOverlaySettings_struct ContourOverlaySettings;
02290 typedef struct CurveParameters_struct CurveParameters;
02291 typedef struct ExtractContourReport_struct ExtractContourReport;
02292 typedef struct ConnectionConstraint_struct ConnectionConstraint;
02293 typedef struct ExtractTextureFeaturesReport_struct ExtractTextureFeaturesReport;
02294 typedef struct WaveletBandsReport_struct WaveletBandsReport;
02295 typedef struct CircleFitOptions_struct CircleFitOptions;
02296 typedef struct EdgeOptions2_struct EdgeOptions2;
02297 typedef struct FindCircularEdgeOptions_struct FindCircularEdgeOptions;
02298 typedef struct FindConcentricEdgeOptions_struct FindConcentricEdgeOptions;
02299 typedef struct ConcentricEdgeFitOptions_struct ConcentricEdgeFitOptions;
02300 typedef struct FindConcentricEdgeReport_struct FindConcentricEdgeReport;
02301 typedef struct FindCircularEdgeReport_struct FindCircularEdgeReport;
02302 typedef struct WindowSize_struct WindowSize;
02303 typedef struct DisplacementVector_struct DisplacementVector;
02304 typedef struct WaveletOptions_struct WaveletOptions;
02305 typedef struct CooccurrenceOptions_struct CooccurrenceOptions;
02306 typedef struct ParticleClassifierLocalThresholdOptions_struct ParticleClassifierLocalThresholdOptions;
02307 typedef struct RangeFloat_struct RangeFloat;
02308 typedef struct ParticleClassifierAutoThresholdOptions_struct ParticleClassifierAutoThresholdOptions;
02309 typedef struct ParticleClassifierPreprocessingOptions2_struct ParticleClassifierPreprocessingOptions2;
02310 typedef struct MeasureParticlesReport_struct MeasureParticlesReport;
02311 typedef struct GeometricPatternMatch3_struct GeometricPatternMatch3;
02312 typedef struct MatchGeometricPatternAdvancedOptions3_struct MatchGeometricPatternAdvancedOptions3;
02313 typedef struct ColorOptions_struct ColorOptions;
02314 typedef struct SampleScore_struct SampleScore;
02315 typedef struct ClassifierReportAdvanced_struct ClassifierReportAdvanced;
02316 typedef struct LearnGeometricPatternAdvancedOptions2_struct LearnGeometricPatternAdvancedOptions2;
02317 typedef struct ParticleFilterOptions2_struct ParticleFilterOptions2;
02318 typedef struct FindEdgeOptions2_struct FindEdgeOptions2;
02319 typedef struct FindEdgeReport_struct FindEdgeReport;
02320 typedef struct FindTransformRectOptions2_struct FindTransformRectOptions2;
02321 typedef struct FindTransformRectsOptions2_struct FindTransformRectsOptions2;
02322 typedef struct ReadTextReport3_struct ReadTextReport3;
02323 typedef struct CharacterStatistics_struct CharacterStatistics;
02324 typedef struct CharReport3_struct CharReport3;
02325 typedef struct ArcInfo2_struct ArcInfo2;
02326 typedef struct EdgeReport2_struct EdgeReport2;
02327 typedef struct SearchArcInfo_struct SearchArcInfo;
02328 typedef struct ConcentricRakeReport2_struct ConcentricRakeReport2;
02329 typedef struct SpokeReport2_struct SpokeReport2;
02330 typedef struct EdgeInfo_struct EdgeInfo;
02331 typedef struct SearchLineInfo_struct SearchLineInfo;
02332 typedef struct RakeReport2_struct RakeReport2;
02333 typedef struct TransformBehaviors_struct TransformBehaviors;
02334 typedef struct QRCodeDataToken_struct QRCodeDataToken;
02335 typedef struct ParticleFilterOptions_struct ParticleFilterOptions;
02336 typedef struct StraightEdgeReport2_struct StraightEdgeReport2;
02337 typedef struct StraightEdgeOptions_struct StraightEdgeOptions;
02338 typedef struct StraightEdge_struct StraightEdge;
02339 typedef struct QRCodeSearchOptions_struct QRCodeSearchOptions;
02340 typedef struct QRCodeSizeOptions_struct QRCodeSizeOptions;
02341 typedef struct QRCodeDescriptionOptions_struct QRCodeDescriptionOptions;
02342 typedef struct QRCodeReport_struct QRCodeReport;
02343 typedef struct AIMGradeReport_struct AIMGradeReport;
02344 typedef struct DataMatrixSizeOptions_struct DataMatrixSizeOptions;
02345 typedef struct DataMatrixDescriptionOptions_struct DataMatrixDescriptionOptions;
02346 typedef struct DataMatrixSearchOptions_struct DataMatrixSearchOptions;
02347 typedef struct DataMatrixReport_struct DataMatrixReport;
02348 typedef struct JPEG2000FileAdvancedOptions_struct JPEG2000FileAdvancedOptions;
02349 typedef struct MatchGeometricPatternAdvancedOptions2_struct MatchGeometricPatternAdvancedOptions2;
02350 typedef struct InspectionAlignment_struct InspectionAlignment;
02351 typedef struct InspectionOptions_struct InspectionOptions;
02352 typedef struct CharReport2_struct CharReport2;
02353 typedef struct CharInfo2_struct CharInfo2;
02354 typedef struct ReadTextReport2_struct ReadTextReport2;
02355 typedef struct EllipseFeature_struct EllipseFeature;
02356 typedef struct CircleFeature_struct CircleFeature;
02357 typedef struct ConstCurveFeature_struct ConstCurveFeature;
02358 typedef struct RectangleFeature_struct RectangleFeature;
02359 typedef struct LegFeature_struct LegFeature;
02360 typedef struct CornerFeature_struct CornerFeature;
02361 typedef struct LineFeature_struct LineFeature;
02362 typedef struct ParallelLinePairFeature_struct ParallelLinePairFeature;
02363 typedef struct PairOfParallelLinePairsFeature_struct PairOfParallelLinePairsFeature;
02364 typedef union GeometricFeature_union GeometricFeature;
02365 typedef struct FeatureData_struct FeatureData;
02366 typedef struct GeometricPatternMatch2_struct GeometricPatternMatch2;
02367 typedef struct ClosedCurveFeature_struct ClosedCurveFeature;
02368 typedef struct LineMatch_struct LineMatch;
02369 typedef struct LineDescriptor_struct LineDescriptor;
02370 typedef struct RectangleDescriptor_struct RectangleDescriptor;
02371 typedef struct RectangleMatch_struct RectangleMatch;
02372 typedef struct EllipseDescriptor_struct EllipseDescriptor;
02373 typedef struct EllipseMatch_struct EllipseMatch;
02374 typedef struct CircleMatch_struct CircleMatch;
02375 typedef struct CircleDescriptor_struct CircleDescriptor;
02376 typedef struct ShapeDetectionOptions_struct ShapeDetectionOptions;
02377 typedef struct Curve_struct Curve;
02378 typedef struct CurveOptions_struct CurveOptions;
02379 typedef struct Barcode2DInfo_struct Barcode2DInfo;
02380 typedef struct DataMatrixOptions_struct DataMatrixOptions;
02381 typedef struct ClassifierAccuracyReport_struct ClassifierAccuracyReport;
02382 typedef struct NearestNeighborClassResult_struct NearestNeighborClassResult;
02383 typedef struct NearestNeighborTrainingReport_struct NearestNeighborTrainingReport;
02384 typedef struct ParticleClassifierPreprocessingOptions_struct ParticleClassifierPreprocessingOptions;
02385 typedef struct ClassifierSampleInfo_struct ClassifierSampleInfo;
02386 typedef struct ClassScore_struct ClassScore;
02387 typedef struct ClassifierReport_struct ClassifierReport;
02388 typedef struct NearestNeighborOptions_struct NearestNeighborOptions;
02389 typedef struct ParticleClassifierOptions_struct ParticleClassifierOptions;
02390 typedef struct RGBU64Value_struct RGBU64Value;
02391 typedef struct GeometricPatternMatch_struct GeometricPatternMatch;
02392 typedef struct MatchGeometricPatternAdvancedOptions_struct MatchGeometricPatternAdvancedOptions;
02393 typedef struct MatchGeometricPatternOptions_struct MatchGeometricPatternOptions;
02394 typedef struct LearnGeometricPatternAdvancedOptions_struct LearnGeometricPatternAdvancedOptions;
02395 typedef struct FitEllipseOptions_struct FitEllipseOptions;
02396 typedef struct FitCircleOptions_struct FitCircleOptions;
02397 typedef struct ConstructROIOptions2_struct ConstructROIOptions2;
02398 typedef struct HSLValue_struct HSLValue;
02399 typedef struct HSVValue_struct HSVValue;
02400 typedef struct HSIValue_struct HSIValue;
02401 typedef struct CIELabValue_struct CIELabValue;
02402 typedef struct CIEXYZValue_struct CIEXYZValue;
02403 typedef union Color2_union Color2;
02404 typedef struct BestEllipse2_struct BestEllipse2;
02405 typedef struct LearnPatternAdvancedOptions_struct LearnPatternAdvancedOptions;
02406 typedef struct AVIInfo_struct AVIInfo;
02407 typedef struct LearnPatternAdvancedShiftOptions_struct LearnPatternAdvancedShiftOptions;
02408 typedef struct LearnPatternAdvancedRotationOptions_struct LearnPatternAdvancedRotationOptions;
02409 typedef struct MatchPatternAdvancedOptions_struct MatchPatternAdvancedOptions;
02410 typedef struct ParticleFilterCriteria2_struct ParticleFilterCriteria2;
02411 typedef struct BestCircle2_struct BestCircle2;
02412 typedef struct OCRSpacingOptions_struct OCRSpacingOptions;
02413 typedef struct OCRProcessingOptions_struct OCRProcessingOptions;
02414 typedef struct ReadTextOptions_struct ReadTextOptions;
02415 typedef struct CharInfo_struct CharInfo;
02416 #if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
02417 typedef struct Rect_struct Rect;
02418 #endif
02419 typedef struct CharReport_struct CharReport;
02420 typedef struct ReadTextReport_struct ReadTextReport;
02421 #if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
02422 typedef struct Point_struct Point;
02423 #endif
02424 typedef struct Annulus_struct Annulus;
02425 typedef struct EdgeLocationReport_struct EdgeLocationReport;
02426 typedef struct EdgeOptions_struct EdgeOptions;
02427 typedef struct EdgeReport_struct EdgeReport;
02428 typedef struct ExtremeReport_struct ExtremeReport;
02429 typedef struct FitLineOptions_struct FitLineOptions;
02430 typedef struct DisplayMapping_struct DisplayMapping;
02431 typedef struct DetectExtremesOptions_struct DetectExtremesOptions;
02432 typedef struct ImageInfo_struct ImageInfo;
02433 typedef struct LCDOptions_struct LCDOptions;
02434 typedef struct LCDReport_struct LCDReport;
02435 typedef struct LCDSegments_struct LCDSegments;
02436 typedef struct LearnCalibrationOptions_struct LearnCalibrationOptions;
02437 typedef struct LearnColorPatternOptions_struct LearnColorPatternOptions;
02438 typedef struct Line_struct Line;
02439 typedef struct LinearAverages_struct LinearAverages;
02440 typedef struct LineProfile_struct LineProfile;
02441 typedef struct MatchColorPatternOptions_struct MatchColorPatternOptions;
02442 typedef struct HistogramReport_struct HistogramReport;
02443 typedef struct ArcInfo_struct ArcInfo;
02444 typedef struct AxisReport_struct AxisReport;
02445 typedef struct BarcodeInfo_struct BarcodeInfo;
02446 typedef struct BCGOptions_struct BCGOptions;
02447 typedef struct BestCircle_struct BestCircle;
02448 typedef struct BestEllipse_struct BestEllipse;
02449 typedef struct BestLine_struct BestLine;
02450 typedef struct BrowserOptions_struct BrowserOptions;
02451 typedef struct CoordinateSystem_struct CoordinateSystem;
02452 typedef struct CalibrationInfo_struct CalibrationInfo;
02453 typedef struct CalibrationPoints_struct CalibrationPoints;
02454 typedef struct CaliperOptions_struct CaliperOptions;
02455 typedef struct CaliperReport_struct CaliperReport;
02456 typedef struct DrawTextOptions_struct DrawTextOptions;
02457 typedef struct CircleReport_struct CircleReport;
02458 typedef struct ClosedContour_struct ClosedContour;
02459 typedef struct ColorHistogramReport_struct ColorHistogramReport;
02460 typedef struct ColorInformation_struct ColorInformation;
02461 typedef struct Complex_struct Complex;
02462 typedef struct ConcentricRakeReport_struct ConcentricRakeReport;
02463 typedef struct ConstructROIOptions_struct ConstructROIOptions;
02464 typedef struct ContourInfo_struct ContourInfo;
02465 typedef union ContourUnion_union ContourUnion;
02466 typedef struct ContourInfo2_struct ContourInfo2;
02467 typedef struct ContourPoint_struct ContourPoint;
02468 typedef struct CoordinateTransform_struct CoordinateTransform;
02469 typedef struct CoordinateTransform2_struct CoordinateTransform2;
02470 typedef struct CannyOptions_struct CannyOptions;
02471 typedef struct Range_struct Range;
02472 typedef struct UserPointSymbol_struct UserPointSymbol;
02473 typedef struct View3DOptions_struct View3DOptions;
02474 typedef struct MatchPatternOptions_struct MatchPatternOptions;
02475 typedef struct TIFFFileOptions_struct TIFFFileOptions;
02476 typedef union Color_union Color;
02477 typedef union PixelValue_union PixelValue;
02478 typedef struct OpenContour_struct OpenContour;
02479 typedef struct OverlayTextOptions_struct OverlayTextOptions;
02480 typedef struct ParticleFilterCriteria_struct ParticleFilterCriteria;
02481 typedef struct ParticleReport_struct ParticleReport;
02482 typedef struct PatternMatch_struct PatternMatch;
02483 typedef struct QuantifyData_struct QuantifyData;
02484 typedef struct QuantifyReport_struct QuantifyReport;
02485 typedef struct RakeOptions_struct RakeOptions;
02486 typedef struct RakeReport_struct RakeReport;
02487 typedef struct TransformReport_struct TransformReport;
02488 typedef struct ShapeReport_struct ShapeReport;
02489 typedef struct MeterArc_struct MeterArc;
02490 typedef struct ThresholdData_struct ThresholdData;
02491 typedef struct StructuringElement_struct StructuringElement;
02492 typedef struct SpokeReport_struct SpokeReport;
02493 typedef struct SimpleEdgeOptions_struct SimpleEdgeOptions;
02494 typedef struct SelectParticleCriteria_struct SelectParticleCriteria;
02495 typedef struct SegmentInfo_struct SegmentInfo;
02496 typedef struct RotationAngleRange_struct RotationAngleRange;
02497 typedef struct RotatedRect_struct RotatedRect;
02498 typedef struct ROIProfile_struct ROIProfile;
02499 typedef struct ToolWindowOptions_struct ToolWindowOptions;
02500 typedef struct SpokeOptions_struct SpokeOptions;
02501 
02502 //============================================================================
02503 // Data Structures
02504 //============================================================================
02505 #if !defined __GNUC__ && !defined _M_X64
02506 #pragma pack(push,1)
02507 #endif
02508 typedef struct DivisionModel_struct {
02509     float kappa; //The learned kappa coefficient of division model.
02510 } DivisionModel;
02511 
02512 typedef struct FocalLength_struct {
02513     float fx; //Focal length in X direction.
02514     float fy; //Focal length in Y direction.
02515 } FocalLength;
02516 
02517 typedef struct PolyModel_struct {
02518     float*       kCoeffs;    //The learned radial coefficients of polynomial model.
02519     unsigned int numKCoeffs; //Number of K coefficients.
02520     float        p1;         //The P1(learned tangential coefficients of polynomial model).
02521     float        p2;         //The P2(learned tangential coefficients of polynomial model).
02522 } PolyModel;
02523 
02524 typedef struct DistortionModelParams_struct {
02525     DistortionModel distortionModel; //Type of learned distortion model.
02526     PolyModel       polyModel;       //The learned coefficients of polynomial model.
02527     DivisionModel   divisionModel;   //The learned coefficient of division model.
02528 } DistortionModelParams;
02529 
02530 typedef struct PointFloat_struct {
02531     float x; //The x-coordinate of the point.
02532     float y; //The y-coordinate of the point.
02533 } PointFloat;
02534 
02535 typedef struct InternalParameters_struct {
02536     char        isInsufficientData; 
02537     FocalLength focalLength;        
02538     PointFloat  opticalCenter;      
02539 } InternalParameters;
02540 
02541 typedef struct MaxGridSize_struct {
02542     unsigned int xMax; //Maximum x limit for the grid size.
02543     unsigned int yMax; //Maximum y limit for the grid size.
02544 } MaxGridSize;
02545 
02546 typedef struct ImageSize_struct {
02547     unsigned int xRes; //X resolution of the image.
02548     unsigned int yRes; //Y resolution of the image.
02549 } ImageSize;
02550 
02551 typedef struct CalibrationReferencePoints_struct {
02552     PointDouble*    pixelCoords;    //Specifies the coordinates of the pixel reference points.
02553     unsigned int    numPixelCoords; //Number of pixel coordinates.
02554     PointDouble*    realCoords;     //Specifies the measuring unit associated with the image.
02555     unsigned int    numRealCoords;  //Number of real coordinates.
02556     CalibrationUnit units;          //Specifies the units of X Step and Y Step.
02557     ImageSize       imageSize;      //Specifies the size of calibration template image.
02558 } CalibrationReferencePoints;
02559 
02560 typedef struct GetCameraParametersReport_struct {
02561     double*               projectionMatrix;     //The projection(homography) matrix of working plane.
02562     unsigned int          projectionMatrixRows; //Number of rows in projection matrix.
02563     unsigned int          projectionMatrixCols; //Number of columns in projection matrix.
02564     DistortionModelParams distortion;           //Distortion model Coefficients.
02565     InternalParameters    internalParams;       //The learned internal paramters of camera model such as focal length and optical center.
02566 } GetCameraParametersReport;
02567 
02568 typedef struct CalibrationAxisInfo_struct {
02569     PointFloat      center;        //The origin of the reference coordinate system, expressed in pixel units.
02570     float           rotationAngle; //The angle of the x-axis of the real-world coordinate system, in relation to the horizontal.
02571     AxisOrientation axisDirection; //Specifies the direction of the calibraiton axis which is either Direct or Indirect.
02572 } CalibrationAxisInfo;
02573 
02574 typedef struct CalibrationLearnSetupInfo_struct {
02575     CalibrationMode2 calibrationMethod;    //Type of calibration method used.
02576     DistortionModel  distortionModel;      //Type of learned distortion model.
02577     ScalingMethod    scaleMode;            //The aspect scaling to use when correcting an image.
02578     CalibrationROI   roiMode;              //The ROI to use when correcting an image.
02579     char             learnCorrectionTable; //Set this input to true value if you want the correction table to be determined and stored.
02580 } CalibrationLearnSetupInfo;
02581 
02582 typedef struct GridDescriptor_struct {
02583     float           xStep; //The distance in the x direction between two adjacent pixels in units specified by unit.
02584     float           yStep; //The distance in the y direction between two adjacent pixels in units specified by unit.
02585     CalibrationUnit unit;  //The unit of measure for the image.
02586 } GridDescriptor;
02587 
02588 typedef struct ErrorStatistics_struct {
02589     double mean;              //Mean error statistics value.
02590     double maximum;           //Maximum value of error.
02591     double standardDeviation; //The standard deviation error statistiscs value.
02592     double distortion;        //The distortion error statistics value.
02593 } ErrorStatistics;
02594 
02595 typedef struct GetCalibrationInfoReport_struct {
02596     ROI*                      userRoi;         //Specifies the ROI the user provided when learning the calibration.
02597     ROI*                      calibrationRoi;  //Specifies the ROI that corresponds to the region of the image where the calibration information is accurate.
02598     CalibrationAxisInfo       axisInfo;        //Reference Coordinate System for the real-world coordinates.
02599     CalibrationLearnSetupInfo learnSetupInfo;  //Calibration learn setup information.
02600     GridDescriptor            gridDescriptor;  //Specifies scaling constants used to calibrate the image.
02601     float*                    errorMap;        //The the error map of calibration template image.
02602     unsigned int              errorMapRows;    //Number of rows in error map.
02603     unsigned int              errorMapCols;    //Number of Columns in error map.
02604     ErrorStatistics           errorStatistics; //Error statistics of the calibration.
02605 } GetCalibrationInfoReport;
02606 
02607 typedef struct EdgePolarity_struct {
02608     EdgePolaritySearchMode start; 
02609     EdgePolaritySearchMode end;   
02610 } EdgePolarity;
02611 
02612 typedef struct ClampSettings_struct {
02613     double       angleRange;   //Specifies the angle range.
02614     EdgePolarity edgePolarity; //Specifies the edge polarity.
02615 } ClampSettings;
02616 
02617 typedef struct PointDouble_struct {
02618     double x; //The x-coordinate of the point.
02619     double y; //The y-coordinate of the point.
02620 } PointDouble;
02621 
02622 typedef struct PointDoublePair_struct {
02623     PointDouble start; //The Start co-ordinate of the pair.
02624     PointDouble end;   //The End co-ordinate of the pair.
02625 } PointDoublePair;
02626 
02627 typedef struct ClampResults_struct {
02628     double distancePix;       //Defines the Pixel world distance.
02629     double distanceRealWorld; //Defines the real world distance.
02630     double angleAbs;          //Defines the absolute angle.
02631     double angleRelative;     //Defines the relative angle.
02632 } ClampResults;
02633 
02634 typedef struct ClampPoints_struct {
02635     PointDoublePair pixel;     //Specifies the pixel world point pair for clamp.
02636     PointDoublePair realWorld; //Specifies the real world point pair for clamp.
02637 } ClampPoints;
02638 
02639 typedef struct RGBValue_struct {
02640     unsigned char B;     //The blue value of the color.
02641     unsigned char G;     //The green value of the color.
02642     unsigned char R;     //The red value of the color.
02643     unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
02644 } RGBValue;
02645 
02646 typedef struct ClampOverlaySettings_struct {
02647     int      showSearchArea;      //If TRUE, the function overlays the search area on the image.
02648     int      showCurves;          //If TRUE, the function overlays the curves on the image.
02649     int      showClampLocation;   //If TRUE, the function overlays the clamp location on the image.
02650     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.
02651     RGBValue searchAreaColor;     //Specifies the RGB color value to use to overlay the search area.
02652     RGBValue curvesColor;         //Specifies the RGB color value to use to overlay the curves.
02653     RGBValue clampLocationsColor; //Specifies the RGB color value to use to overlay the clamp locations.
02654     RGBValue resultColor;         //Specifies the RGB color value to use to overlay the results.
02655     char*    overlayGroupName;    //Specifies the group overlay name for the step overlays.
02656 } ClampOverlaySettings;
02657 
02658 typedef struct ClampMax2Report_struct {
02659     ClampResults clampResults;     //Specifies the Clamp results information returned by the function.
02660     ClampPoints  clampPoints;      //Specifies the clamp points information returned by the function.
02661     unsigned int calibrationValid; //Specifies if the calibration information is valid or not.
02662 } ClampMax2Report;
02663 
02664 typedef struct ContourFitSplineReport_struct {
02665     PointDouble* points;         //It returns the points of the best-fit B-spline curve.
02666     int          numberOfPoints; //Number of Best fit points returned.
02667 } ContourFitSplineReport;
02668 
02669 typedef struct LineFloat_struct {
02670     PointFloat start; //The coordinate location of the start of the line.
02671     PointFloat end;   //The coordinate location of the end of the line.
02672 } LineFloat;
02673 
02674 typedef struct LineEquation_struct {
02675     double a; //The a coefficient of the line equation.
02676     double b; //The b coefficient of the line equation.
02677     double c; //The c coefficient of the line equation.
02678 } LineEquation;
02679 
02680 typedef struct ContourFitLineReport_struct {
02681     LineFloat    lineSegment;  //Line Segment represents the intersection of the line equation and the contour.
02682     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.
02683 } ContourFitLineReport;
02684 
02685 typedef struct ContourFitPolynomialReport_struct {
02686     PointDouble* bestFit;                //It returns the points of the best-fit polynomial.
02687     int          numberOfPoints;         //Number of Best fit points returned.
02688     double*      polynomialCoefficients; //Polynomial Coefficients returns the coefficients of the polynomial equation.
02689     int          numberOfCoefficients;   //Number of Coefficients returned in the polynomial coefficients array.
02690 } ContourFitPolynomialReport;
02691 
02692 typedef struct PartialCircle_struct {
02693     PointFloat center;     //Center of the circle.
02694     double     radius;     //Radius of the circle.
02695     double     startAngle; //Start angle of the fitted structure.
02696     double     endAngle;   //End angle of the fitted structure.
02697 } PartialCircle;
02698 
02699 typedef struct PartialEllipse_struct {
02700     PointFloat center;      //Center of the Ellipse.
02701     double     angle;       //Angle of the ellipse.
02702     double     majorRadius; //The length of the semi-major axis of the ellipse.
02703     double     minorRadius; //The length of the semi-minor axis of the ellipse.
02704     double     startAngle;  //Start angle of the fitted structure.
02705     double     endAngle;    //End angle of the fitted structure.
02706 } PartialEllipse;
02707 
02708 typedef struct SetupMatchPatternData_struct {
02709     unsigned char* matchSetupData;    //String containing the match setup data.
02710     int            numMatchSetupData; //Number of match setup data.
02711 } SetupMatchPatternData;
02712 
02713 typedef struct RangeSettingDouble_struct {
02714     SettingType settingType; //Match Constraints specifies the match option whose values you want to constrain by the given range.
02715     double      min;         //Min is the minimum value of the range for a given Match Constraint.
02716     double      max;         //Max is the maximum value of the range for a given Match Constraint.
02717 } RangeSettingDouble;
02718 
02719 typedef struct GeometricAdvancedSetupDataOption_struct {
02720     GeometricSetupDataItem type;  //It determines the option you want to use during the matching phase.
02721     double                 value; //Value is the value for the option you want to use during the matching phase.
02722 } GeometricAdvancedSetupDataOption;
02723 
02724 typedef struct ContourInfoReport_struct {
02725     PointDouble* pointsPixel;       //Points (pixel) specifies the location of every point detected on the curve, in pixels.
02726     unsigned int numPointsPixel;    //Number of points pixel elements.
02727     PointDouble* pointsReal;        //Points (real) specifies the location of every point detected on the curve, in calibrated units.
02728     unsigned int numPointsReal;     //Number of points real elements.
02729     double*      curvaturePixel;    //Curvature Pixel displays the curvature profile for the selected contour, in pixels.
02730     unsigned int numCurvaturePixel; //Number of curvature pixels.
02731     double*      curvatureReal;     //Curvature Real displays the curvature profile for the selected contour, in calibrated units.
02732     unsigned int numCurvatureReal;  //Number of curvature Real elements.
02733     double       length;            //Length (pixel) specifies the length, in pixels, of the curves in the image.
02734     double       lengthReal;        //Length (real) specifies the length, in calibrated units, of the curves within the curvature range.
02735     unsigned int hasEquation;       //Has Equation specifies whether the contour has a fitted equation.
02736 } ContourInfoReport;
02737 
02738 typedef struct ROILabel_struct {
02739     char*        className; //Specifies the classname you want to segment.
02740     unsigned int label;     //Label is the label number associated with the Class Name.
02741 } ROILabel;
02742 
02743 typedef struct SupervisedColorSegmentationReport_struct {
02744     ROILabel*    labelOut;    //The Roi labels array.
02745     unsigned int numLabelOut; //The number of elements in labelOut array.
02746 } SupervisedColorSegmentationReport;
02747 
02748 typedef struct LabelToROIReport_struct {
02749     ROI**         roiArray;                  //Array of ROIs.
02750     unsigned int  numOfROIs;                 //Number of ROIs in the roiArray.
02751     unsigned int* labelsOutArray;            //Array of labels.
02752     unsigned int  numOfLabels;               //Number of labels.
02753     int*          isTooManyVectorsArray;     //isTooManyVectorsArray array.
02754     unsigned int  isTooManyVectorsArraySize; //Number of elements in isTooManyVectorsArray.
02755 } LabelToROIReport;
02756 
02757 typedef struct ColorSegmenationOptions_struct {
02758     unsigned int windowX;         //X is the window size in x direction.
02759     unsigned int windowY;         //Y is the window size in y direction.
02760     unsigned int stepSize;        //Step Size is the distance between two windows.
02761     unsigned int minParticleArea; //Min Particle Area is the minimum number of allowed pixels.
02762     unsigned int maxParticleArea; //Max Particle Area is the maximum number of allowed pixels.
02763     short        isFineSegment;   //When enabled, the step processes the boundary pixels of each segmentation cluster using a step size of 1.
02764 } ColorSegmenationOptions;
02765 
02766 typedef struct ClassifiedCurve_struct {
02767     double       length;           //Specifies the length, in pixels, of the curves within the curvature range.
02768     double       lengthReal;       //specifies the length, in calibrated units, of the curves within the curvature range.
02769     double       maxCurvature;     //specifies the maximum curvature, in pixels, for the selected curvature range.
02770     double       maxCurvatureReal; //specifies the maximum curvature, in calibrated units, for the selected curvature range.
02771     unsigned int label;            //specifies the class to which the the sample belongs.
02772     PointDouble* curvePoints;      //Curve Points is a point-coordinate cluster that defines the points of the curve.
02773     unsigned int numCurvePoints;   //Number of curve points.
02774 } ClassifiedCurve;
02775 
02776 typedef struct RangeDouble_struct {
02777     double minValue; //The minimum value of the range.
02778     double maxValue; //The maximum value of the range.
02779 } RangeDouble;
02780 
02781 typedef struct RangeLabel_struct {
02782     RangeDouble  range; //Specifies the range of curvature values.
02783     unsigned int label; //Class Label specifies the class to which the the sample belongs.
02784 } RangeLabel;
02785 
02786 typedef struct CurvatureAnalysisReport_struct {
02787     ClassifiedCurve* curves;    
02788     unsigned int     numCurves; 
02789 } CurvatureAnalysisReport;
02790 
02791 typedef struct Disparity_struct {
02792     PointDouble current;   //Current is a array of points that defines the target contour.
02793     PointDouble reference; //reference is a array of points that defines the template contour.
02794     double      distance;  //Specifies the distance, in pixels, between the template contour point and the target contour point.
02795 } Disparity;
02796 
02797 typedef struct ComputeDistancesReport_struct {
02798     Disparity*   distances;        //Distances is an array containing the computed distances.
02799     unsigned int numDistances;     //Number elements in the distances array.
02800     Disparity*   distancesReal;    //Distances Real is an array containing the computed distances in calibrated units.
02801     unsigned int numDistancesReal; //Number of elements in real distances array.
02802 } ComputeDistancesReport;
02803 
02804 typedef struct MatchMode_struct {
02805     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.
02806     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.
02807     unsigned int occlusion; //Occlusion specifies whether or not to search for occluded versions of the shape.
02808 } MatchMode;
02809 
02810 typedef struct ClassifiedDisparity_struct {
02811     double       length;                //Length (pixel) specifies the length, in pixels, of the curves within the curvature range.
02812     double       lengthReal;            //Length (real) specifies the length, in calibrated units, of the curves within the curvature range.
02813     double       maxDistance;           //Maximum Distance (pixel) specifies the maximum distance, in pixels, between points along the selected contour and the template contour.
02814     double       maxDistanceReal;       //Maximum Distance (real) specifies the maximum distance, in calibrated units, between points along the selected contour and the template contour.
02815     unsigned int label;                 //Class Label specifies the class to which the the sample belongs.
02816     PointDouble* templateSubsection;    //Template subsection points is an array of points that defines the boundary of the template.
02817     unsigned int numTemplateSubsection; //Number of reference points.
02818     PointDouble* targetSubsection;      //Current Points(Target subsection points) is an array of points that defines the boundary of the target.
02819     unsigned int numTargetSubsection;   //Number of current points.
02820 } ClassifiedDisparity;
02821 
02822 typedef struct ClassifyDistancesReport_struct {
02823     ClassifiedDisparity* classifiedDistances;    //Disparity array containing the classified distances.
02824     unsigned int         numClassifiedDistances; //Number of elements in the disparity array.
02825 } ClassifyDistancesReport;
02826 
02827 typedef struct ContourComputeCurvatureReport_struct {
02828     double*      curvaturePixel;    //Curvature Pixel displays the curvature profile for the selected contour, in pixels.
02829     unsigned int numCurvaturePixel; //Number of curvature pixels.
02830     double*      curvatureReal;     //Curvature Real displays the curvature profile for the selected contour, in calibrated units.
02831     unsigned int numCurvatureReal;  //Number of curvature Real elements.
02832 } ContourComputeCurvatureReport;
02833 
02834 typedef struct ContourOverlaySettings_struct {
02835     unsigned int overlay;       //Overlay specifies whether to display the overlay on the image.
02836     RGBValue     color;         //Color is the color of the overlay.
02837     unsigned int width;         //Width specifies the width of the overlay in pixels.
02838     unsigned int maintainWidth; //Maintain Width? specifies whether you want the overlay measured in screen pixels or image pixels.
02839 } ContourOverlaySettings;
02840 
02841 typedef struct CurveParameters_struct {
02842     ExtractionMode extractionMode; //Specifies the method the function uses to identify curves in the image.
02843     int            threshold;      //Specifies the minimum contrast a seed point must have in order to begin a curve.
02844     EdgeFilterSize filterSize;     //Specifies the width of the edge filter the function uses to identify curves in the image.
02845     int            minLength;      //Specifies the length, in pixels, of the smallest curve the function will extract.
02846     int            searchStep;     //Search Step Size specifies the distance, in the y direction, between the image rows that the algorithm inspects for curve seed points.
02847     int            maxEndPointGap; //Specifies the maximum gap, in pixels, between the endpoints of a curve that the function identifies as a closed curve.
02848     int            subpixel;       //Subpixel specifies whether to detect curve points with subpixel accuracy.
02849 } CurveParameters;
02850 
02851 typedef struct ExtractContourReport_struct {
02852     PointDouble* contourPoints;    //Contour Points specifies every point found on the contour.
02853     int          numContourPoints; //Number of contour points.
02854     PointDouble* sourcePoints;     //Source Image Points specifies every point found on the contour in the source image.
02855     int          numSourcePoints;  //Number of source points.
02856 } ExtractContourReport;
02857 
02858 typedef struct ConnectionConstraint_struct {
02859     ConnectionConstraintType constraintType; //Constraint Type specifies what criteria to use to consider two curves part of a contour.
02860     RangeDouble              range;          //Specifies range for a given Match Constraint.
02861 } ConnectionConstraint;
02862 
02863 typedef struct ExtractTextureFeaturesReport_struct {
02864     int*     waveletBands;        //The array having all the Wavelet Banks used for extraction.
02865     int      numWaveletBands;     //Number of wavelet banks in the Array.
02866     double** textureFeatures;     //2-D array to store all the Texture features extracted.
02867     int      textureFeaturesRows; //Number of Rows in the Texture Features array.
02868     int      textureFeaturesCols; //Number of Cols in Texture Features array.
02869 } ExtractTextureFeaturesReport;
02870 
02871 typedef struct WaveletBandsReport_struct {
02872     float** LLBand;  //2-D array for LL Band.
02873     float** LHBand;  //2-D array for LH Band.
02874     float** HLBand;  //2-D array for HL Band.
02875     float** HHBand;  //2-D array for HH Band.
02876     float** LLLBand; //2-D array for LLL Band.
02877     float** LLHBand; //2-D array for LLH Band.
02878     float   LHLBand; //2-D array for LHL Band.
02879     float** LHHBand; //2-D array for LHH Band.
02880     int     rows;    //Number of Rows for each of the 2-D arrays.
02881     int     cols;    //Number of Columns for each of the 2-D arrays.
02882 } WaveletBandsReport;
02883 
02884 typedef struct CircleFitOptions_struct {
02885     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.
02886     double          stepSize;    //Step Size is the angle, in degrees, between each radial line in the annular region.
02887     RakeProcessType processType; //Method used to process the data extracted for edge detection.
02888 } CircleFitOptions;
02889 
02890 typedef struct EdgeOptions2_struct {
02891     EdgePolaritySearchMode polarity;             //Specifies the polarity of the edges to be found.
02892     unsigned int           kernelSize;           //Specifies the size of the edge detection kernel.
02893     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.
02894     float                  minThreshold;         //Specifies the minimum edge strength (gradient magnitude) required for a detected edge.
02895     InterpolationMethod    interpolationType;    //Specifies the interpolation method used to locate the edge position.
02896     ColumnProcessingMode   columnProcessingMode; //Specifies the method used to find the straight edge.
02897 } EdgeOptions2;
02898 
02899 typedef struct FindCircularEdgeOptions_struct {
02900     SpokeDirection direction;        //Specifies the Spoke direction to search in the ROI.
02901     int            showSearchArea;   //If TRUE, the function overlays the search area on the image.
02902     int            showSearchLines;  //If TRUE, the function overlays the search lines used to locate the edges on the image.
02903     int            showEdgesFound;   //If TRUE, the function overlays the locations of the edges found on the image.
02904     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.
02905     RGBValue       searchAreaColor;  //Specifies the RGB color value to use to overlay the search area.
02906     RGBValue       searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
02907     RGBValue       searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
02908     RGBValue       resultColor;      //Specifies the RGB color value to use to overlay the results.
02909     char*          overlayGroupName; //Specifies the overlay group name to assign to the overlays.
02910     EdgeOptions2   edgeOptions;      //Specifies the edge detection options along a single search line.
02911 } FindCircularEdgeOptions;
02912 
02913 typedef struct FindConcentricEdgeOptions_struct {
02914     ConcentricRakeDirection direction;        //Specifies the Concentric Rake direction.
02915     int                     showSearchArea;   //If TRUE, the function overlays the search area on the image.
02916     int                     showSearchLines;  //If TRUE, the function overlays the search lines used to locate the edges on the image.
02917     int                     showEdgesFound;   //If TRUE, the function overlays the locations of the edges found on the image.
02918     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.
02919     RGBValue                searchAreaColor;  //Specifies the RGB color value to use to overlay the search area.
02920     RGBValue                searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
02921     RGBValue                searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
02922     RGBValue                resultColor;      //Specifies the RGB color value to use to overlay the results.
02923     char*                   overlayGroupName; //Specifies the overlay group name to assign to the overlays.
02924     EdgeOptions2            edgeOptions;      //Specifies the edge detection options along a single search line.
02925 } FindConcentricEdgeOptions;
02926 
02927 typedef struct ConcentricEdgeFitOptions_struct {
02928     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.
02929     double          stepSize;    //The sampling factor that determines the gap between the rake lines.
02930     RakeProcessType processType; //Method used to process the data extracted for edge detection.
02931 } ConcentricEdgeFitOptions;
02932 
02933 typedef struct FindConcentricEdgeReport_struct {
02934     PointFloat startPt;           //Pixel Coordinates for starting point of the edge.
02935     PointFloat endPt;             //Pixel Coordinates for end point of the edge.
02936     PointFloat startPtCalibrated; //Real world Coordinates for starting point of the edge.
02937     PointFloat endPtCalibrated;   //Real world Coordinates for end point of the edge.
02938     double     angle;             //Angle of the edge found.
02939     double     angleCalibrated;   //Calibrated angle of the edge found.
02940     double     straightness;      //The straightness value of the detected straight edge.
02941     double     avgStrength;       //Average strength of the egde found.
02942     double     avgSNR;            //Average SNR(Signal to Noise Ratio) for the edge found.
02943     int        lineFound;         //If the edge is found or not.
02944 } FindConcentricEdgeReport;
02945 
02946 typedef struct FindCircularEdgeReport_struct {
02947     PointFloat centerCalibrated; //Real world Coordinates of the Center.
02948     double     radiusCalibrated; //Real world radius of the Circular Edge found.
02949     PointFloat center;           //Pixel Coordinates of the Center.
02950     double     radius;           //Radius in pixels of the Circular Edge found.
02951     double     roundness;        //The roundness of the calculated circular edge.
02952     double     avgStrength;      //Average strength of the egde found.
02953     double     avgSNR;           //Average SNR(Signal to Noise Ratio) for the edge found.
02954     int        circleFound;      //If the circlular edge is found or not.
02955 } FindCircularEdgeReport;
02956 
02957 typedef struct WindowSize_struct {
02958     int x;        //Window lenght on X direction.
02959     int y;        //Window lenght on Y direction.
02960     int stepSize; //Distance between windows.
02961 } WindowSize;
02962 
02963 typedef struct DisplacementVector_struct {
02964     int x; //length on X direction.
02965     int y; //length on Y direction.
02966 } DisplacementVector;
02967 
02968 typedef struct WaveletOptions_struct {
02969     WaveletType typeOfWavelet; //Type of wavelet(db, bior.
02970     float       minEnergy;     //Minimum Energy in the bands to consider for texture defect detection.
02971 } WaveletOptions;
02972 
02973 typedef struct CooccurrenceOptions_struct {
02974     int                level;        //Level/size of matrix.
02975     DisplacementVector displacement; //Displacemnet between pixels to accumulate the matrix.
02976 } CooccurrenceOptions;
02977 
02978 typedef struct ParticleClassifierLocalThresholdOptions_struct {
02979     LocalThresholdMethod method;          //Specifies the local thresholding method the function uses.
02980     ParticleType         particleType;    //Specifies what kind of particles to look for.
02981     unsigned int         windowWidth;     //The width of the rectangular window around the pixel on which the function performs the local threshold.
02982     unsigned int         windowHeight;    //The height of the rectangular window around the pixel on which the function performs the local threshold.
02983     double               deviationWeight; //Specifies the k constant used in the Niblack local thresholding algorithm, which determines the weight applied to the variance calculation.
02984 } ParticleClassifierLocalThresholdOptions;
02985 
02986 typedef struct RangeFloat_struct {
02987     float minValue; //The minimum value of the range.
02988     float maxValue; //The maximum value of the range.
02989 } RangeFloat;
02990 
02991 typedef struct ParticleClassifierAutoThresholdOptions_struct {
02992     ThresholdMethod method;       //The method for binary thresholding, which specifies how to calculate the classes.
02993     ParticleType    particleType; //Specifies what kind of particles to look for.
02994     RangeFloat      limits;       //The limits on the automatic threshold range.
02995 } ParticleClassifierAutoThresholdOptions;
02996 
02997 typedef struct ParticleClassifierPreprocessingOptions2_struct {
02998     ParticleClassifierThresholdType         thresholdType;         //The type of threshold to perform on the image.
02999     RangeFloat                              manualThresholdRange;  //The range of pixels to keep if manually thresholding the image.
03000     ParticleClassifierAutoThresholdOptions  autoThresholdOptions;  //The options used to auto threshold the image.
03001     ParticleClassifierLocalThresholdOptions localThresholdOptions; //The options used to local threshold the image.
03002     int                                     rejectBorder;          //Set this element to TRUE to reject border particles.
03003     int                                     numErosions;           //The number of erosions to perform.
03004 } ParticleClassifierPreprocessingOptions2;
03005 
03006 typedef struct MeasureParticlesReport_struct {
03007     double** pixelMeasurements;      //The measurements on the particles in the image, in pixel coordinates.
03008     double** calibratedMeasurements; //The measurements on the particles in the image, in real-world coordinates.
03009     size_t   numParticles;           //The number of particles on which measurements were taken.
03010     size_t   numMeasurements;        //The number of measurements taken.
03011 } MeasureParticlesReport;
03012 
03013 typedef struct GeometricPatternMatch3_struct {
03014     PointFloat position;                //The location of the origin of the template in the match.
03015     float      rotation;                //The rotation of the match relative to the template image, in degrees.
03016     float      scale;                   //The size of the match relative to the size of the template image, expressed as a percentage.
03017     float      score;                   //The accuracy of the match.
03018     PointFloat corner[4];               //An array of four points describing the rectangle surrounding the template image.
03019     int        inverse;                 //This element is TRUE if the match is an inverse of the template image.
03020     float      occlusion;               //The percentage of the match that is occluded.
03021     float      templateMatchCurveScore; //The accuracy of the match obtained by comparing the template curves to the curves in the match region.
03022     float      matchTemplateCurveScore; //The accuracy of the match obtained by comparing the curves in the match region to the template curves.
03023     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.
03024     PointFloat calibratedPosition;      //The location of the origin of the template in the match.
03025     float      calibratedRotation;      //The rotation of the match relative to the template image, in degrees.
03026     PointFloat calibratedCorner[4];     //An array of four points describing the rectangle surrounding the template image.
03027 } GeometricPatternMatch3;
03028 
03029 typedef struct MatchGeometricPatternAdvancedOptions3_struct {
03030     unsigned int                    subpixelIterations;         //Specifies the maximum number of incremental improvements used to refine matches with subpixel information.
03031     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.
03032     unsigned int                    initialMatchListLength;     //Specifies the maximum size of the match list.
03033     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.
03034     int                             correlationScore;           //Set this element to TRUE to specify that the function should calculate the correlation score and return it for each match result.
03035     double                          minMatchSeparationDistance; //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
03036     double                          minMatchSeparationAngle;    //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
03037     double                          minMatchSeparationScale;    //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
03038     double                          maxMatchOverlap;            //Specifies the maximum amount of overlap, expressed as a percentage, allowed between the bounding rectangles of two unique matches.
03039     int                             coarseResult;               //Specifies whether you want the function to spend less time accurately estimating the location of a match.
03040     int                             enableCalibrationSupport;   //Set this element to TRUE to specify the algorithm treat the inspection image as a calibrated image.
03041     ContrastMode                    enableContrastReversal;     //Use this element to specify the contrast of the matches to search for in the image.
03042     GeometricMatchingSearchStrategy matchStrategy;              //Specifies the aggressiveness of the search strategy.
03043     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.
03044     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.
03045 } MatchGeometricPatternAdvancedOptions3;
03046 
03047 typedef struct ColorOptions_struct {
03048     ColorClassificationResolution colorClassificationResolution; //Specifies the color resolution of the classifier.
03049     unsigned int                  useLuminance;                  //Specifies if the luminance band is going to be used in the feature vector.
03050     ColorMode                     colorMode;                     //Specifies the color mode of the classifier.
03051 } ColorOptions;
03052 
03053 typedef struct SampleScore_struct {
03054     char*        className; //The name of the class.
03055     float        distance;  //The distance from the item to this class.
03056     unsigned int index;     //index of this sample.
03057 } SampleScore;
03058 
03059 typedef struct ClassifierReportAdvanced_struct {
03060     char*        bestClassName;       //The name of the best class for the sample.
03061     float        classificationScore; //The similarity of the sample and the two closest classes in the classifier.
03062     float        identificationScore; //The similarity of the sample and the assigned class.
03063     ClassScore*  allScores;           //All classes and their scores.
03064     int          allScoresSize;       //The number of entries in allScores.
03065     SampleScore* sampleScores;        //All samples and their scores.
03066     int          sampleScoresSize;    //The number of entries in sampleScores.
03067 } ClassifierReportAdvanced;
03068 
03069 typedef struct LearnGeometricPatternAdvancedOptions2_struct {
03070     double       minScaleFactor;        //Specifies the minimum scale factor that the template is learned for.
03071     double       maxScaleFactor;        //Specifies the maximum scale factor the template is learned for.
03072     double       minRotationAngleValue; //Specifies the minimum rotation angle the template is learned for.
03073     double       maxRotationAngleValue; //Specifies the maximum rotation angle the template is learned for.
03074     unsigned int imageSamplingFactor;   //Specifies the factor that is used to subsample the template and the image for the initial matching phase.
03075 } LearnGeometricPatternAdvancedOptions2;
03076 
03077 typedef struct ParticleFilterOptions2_struct {
03078     int rejectMatches; //Set this parameter to TRUE to transfer only those particles that do not meet all the criteria.
03079     int rejectBorder;  //Set this element to TRUE to reject border particles.
03080     int fillHoles;     //Set this element to TRUE to fill holes in particles.
03081     int connectivity8; //Set this parameter to TRUE to use connectivity-8 to determine whether particles are touching.
03082 } ParticleFilterOptions2;
03083 
03084 typedef struct FindEdgeOptions2_struct {
03085     RakeDirection direction;        //The direction to search in the ROI.
03086     int           showSearchArea;   //If TRUE, the function overlays the search area on the image.
03087     int           showSearchLines;  //If TRUE, the function overlays the search lines used to locate the edges on the image.
03088     int           showEdgesFound;   //If TRUE, the function overlays the locations of the edges found on the image.
03089     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.
03090     RGBValue      searchAreaColor;  //Specifies the RGB color value to use to overlay the search area.
03091     RGBValue      searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
03092     RGBValue      searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
03093     RGBValue      resultColor;      //Specifies the RGB color value to use to overlay the results.
03094     char*         overlayGroupName; //Specifies the overlay group name to assign to the overlays.
03095     EdgeOptions2  edgeOptions;      //Specifies the edge detection options along a single search line.
03096 } FindEdgeOptions2;
03097 
03098 typedef struct FindEdgeReport_struct {
03099     StraightEdge* straightEdges;    //An array of straight edges detected.
03100     unsigned int  numStraightEdges; //Indicates the number of straight edges found.
03101 } FindEdgeReport;
03102 
03103 typedef struct FindTransformRectOptions2_struct {
03104     FindReferenceDirection direction;        //Specifies the direction and orientation in which the function searches for the primary axis.
03105     int                    showSearchArea;   //If TRUE, the function overlays the search area on the image.
03106     int                    showSearchLines;  //If TRUE, the function overlays the search lines used to locate the edges on the image.
03107     int                    showEdgesFound;   //If TRUE, the function overlays the locations of the edges found on the image.
03108     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.
03109     RGBValue               searchAreaColor;  //Specifies the RGB color value to use to overlay the search area.
03110     RGBValue               searchLinesColor; //Specifies the RGB color value to use to overlay the search lines.
03111     RGBValue               searchEdgesColor; //Specifies the RGB color value to use to overlay the search edges.
03112     RGBValue               resultColor;      //Specifies the RGB color value to use to overlay the results.
03113     char*                  overlayGroupName; //Specifies the overlay group name to assign to the overlays.
03114     EdgeOptions2           edgeOptions;      //Specifies the edge detection options along a single search line.
03115 } FindTransformRectOptions2;
03116 
03117 typedef struct FindTransformRectsOptions2_struct {
03118     FindReferenceDirection direction;            //Specifies the direction and orientation in which the function searches for the primary axis.
03119     int                    showSearchArea;       //If TRUE, the function overlays the search area on the image.
03120     int                    showSearchLines;      //If TRUE, the function overlays the search lines used to locate the edges on the image.
03121     int                    showEdgesFound;       //If TRUE, the function overlays the locations of the edges found on the image.
03122     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.
03123     RGBValue               searchAreaColor;      //Specifies the RGB color value to use to overlay the search area.
03124     RGBValue               searchLinesColor;     //Specifies the RGB color value to use to overlay the search lines.
03125     RGBValue               searchEdgesColor;     //Specifies the RGB color value to use to overlay the search edges.
03126     RGBValue               resultColor;          //Specifies the RGB color value to use to overlay the results.
03127     char*                  overlayGroupName;     //Specifies the overlay group name to assign to the overlays.
03128     EdgeOptions2           primaryEdgeOptions;   //Specifies the parameters used to compute the edge gradient information and detect the edges for the primary ROI.
03129     EdgeOptions2           secondaryEdgeOptions; //Specifies the parameters used to compute the edge gradient information and detect the edges for the secondary ROI.
03130 } FindTransformRectsOptions2;
03131 
03132 typedef struct ReadTextReport3_struct {
03133     const char*  readString;            //The read string.
03134     CharReport3* characterReport;       //An array of reports describing the properties of each identified character.
03135     int          numCharacterReports;   //The number of identified characters.
03136     ROI*         roiBoundingCharacters; //An array specifying the coordinates of the character bounding ROI.
03137 } ReadTextReport3;
03138 
03139 typedef struct CharacterStatistics_struct {
03140     int left;          //The left offset of the character bounding rectangles in the current ROI.
03141     int top;           //The top offset of the character bounding rectangles in the current ROI.
03142     int width;         //The width of each of the characters you trained in the current ROI.
03143     int height;        //The height of each trained character in the current ROI.
03144     int characterSize; //The size of the character in pixels.
03145 } CharacterStatistics;
03146 
03147 typedef struct CharReport3_struct {
03148     const char*         character;           //The character value.
03149     int                 classificationScore; //The degree to which the assigned character class represents the object better than the other character classes in the character set.
03150     int                 verificationScore;   //The similarity of the character and the reference character for the character class.
03151     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.
03152     int                 lowThreshold;        //The minimum value of the threshold range used for this character.
03153     int                 highThreshold;       //The maximum value of the threshold range used for this character.
03154     CharacterStatistics characterStats;      //Describes the characters segmented in the ROI.
03155 } CharReport3;
03156 
03157 typedef struct ArcInfo2_struct {
03158     PointFloat center;     //The center point of the arc.
03159     double     radius;     //The radius of the arc.
03160     double     startAngle; //The starting angle of the arc, specified counter-clockwise from the x-axis.
03161     double     endAngle;   //The ending angle of the arc, specified counter-clockwise from the x-axis.
03162 } ArcInfo2;
03163 
03164 typedef struct EdgeReport2_struct {
03165     EdgeInfo*    edges;            //An array of edges detected.
03166     unsigned int numEdges;         //Indicates the number of edges detected.
03167     double*      gradientInfo;     //An array that contains the calculated edge strengths along the user-defined search area.
03168     unsigned int numGradientInfo;  //Indicates the number of elements contained in gradientInfo.
03169     int          calibrationValid; //Indicates if the calibration data corresponding to the location of the edges is correct.
03170 } EdgeReport2;
03171 
03172 typedef struct SearchArcInfo_struct {
03173     ArcInfo2    arcCoordinates; //Describes the arc used for edge detection.
03174     EdgeReport2 edgeReport;     //Describes the edges found in this search line.
03175 } SearchArcInfo;
03176 
03177 typedef struct ConcentricRakeReport2_struct {
03178     EdgeInfo*      firstEdges;    //The first edge point detected along each search line in the ROI.
03179     unsigned int   numFirstEdges; //The number of points in the firstEdges array.
03180     EdgeInfo*      lastEdges;     //The last edge point detected along each search line in the ROI.
03181     unsigned int   numLastEdges;  //The number of points in the lastEdges array.
03182     SearchArcInfo* searchArcs;    //Contains the arcs used for edge detection and the edge information for each arc.
03183     unsigned int   numSearchArcs; //The number of arcs in the searchArcs array.
03184 } ConcentricRakeReport2;
03185 
03186 typedef struct SpokeReport2_struct {
03187     EdgeInfo*       firstEdges;     //The first edge point detected along each search line in the ROI.
03188     unsigned int    numFirstEdges;  //The number of points in the firstEdges array.
03189     EdgeInfo*       lastEdges;      //The last edge point detected along each search line in the ROI.
03190     unsigned int    numLastEdges;   //The number of points in the lastEdges array.
03191     SearchLineInfo* searchLines;    //The search lines used for edge detection.
03192     unsigned int    numSearchLines; //The number of search lines used in the edge detection.
03193 } SpokeReport2;
03194 
03195 typedef struct EdgeInfo_struct {
03196     PointFloat position;           //The location of the edge in the image.
03197     PointFloat calibratedPosition; //The position of the edge in the image in real-world coordinates.
03198     double     distance;           //The location of the edge from the first point along the boundary of the input ROI.
03199     double     calibratedDistance; //The location of the edge from the first point along the boundary of the input ROI in real-world coordinates.
03200     double     magnitude;          //The intensity contrast at the edge.
03201     double     noisePeak;          //The strength of the noise associated with the current edge.
03202     int        rising;             //Indicates the polarity of the edge.
03203 } EdgeInfo;
03204 
03205 typedef struct SearchLineInfo_struct {
03206     LineFloat   lineCoordinates; //The endpoints of the search line.
03207     EdgeReport2 edgeReport;      //Describes the edges found in this search line.
03208 } SearchLineInfo;
03209 
03210 typedef struct RakeReport2_struct {
03211     EdgeInfo*       firstEdges;     //The first edge point detected along each search line in the ROI.
03212     unsigned int    numFirstEdges;  //The number of points in the firstEdges array.
03213     EdgeInfo*       lastEdges;      //The last edge point detected along each search line in the ROI.
03214     unsigned int    numLastEdges;   //The number of points in the lastEdges array.
03215     SearchLineInfo* searchLines;    //The search lines used for edge detection.
03216     unsigned int    numSearchLines; //The number of search lines used in the edge detection.
03217 } RakeReport2;
03218 
03219 typedef struct TransformBehaviors_struct {
03220     GroupBehavior ShiftBehavior;    //Specifies the behavior of an overlay group when a shift operation is applied to an image.
03221     GroupBehavior ScaleBehavior;    //Specifies the behavior of an overlay group when a scale operation is applied to an image.
03222     GroupBehavior RotateBehavior;   //Specifies the behavior of an overlay group when a rotate operation is applied to an image.
03223     GroupBehavior SymmetryBehavior; //Specifies the behavior of an overlay group when a symmetry operation is applied to an image.
03224 } TransformBehaviors;
03225 
03226 typedef struct QRCodeDataToken_struct {
03227     QRStreamMode   mode;       //Specifies the stream mode or the format of the data that is encoded in the QR code.
03228     unsigned int   modeData;   //Indicates specifiers used by the user to postprocess the data if it requires it.
03229     unsigned char* data;       //Shows the encoded data in the QR code.
03230     unsigned int   dataLength; //Specifies the length of the data found in the QR code.
03231 } QRCodeDataToken;
03232 
03233 typedef struct ParticleFilterOptions_struct {
03234     int rejectMatches; //Set this parameter to TRUE to transfer only those particles that do not meet all the criteria.
03235     int rejectBorder;  //Set this element to TRUE to reject border particles.
03236     int connectivity8; //Set this parameter to TRUE to use connectivity-8 to determine whether particles are touching.
03237 } ParticleFilterOptions;
03238 
03239 typedef struct StraightEdgeReport2_struct {
03240     StraightEdge*   straightEdges;    //Contains an array of found straight edges.
03241     unsigned int    numStraightEdges; //Indicates the number of straight edges found.
03242     SearchLineInfo* searchLines;      //Contains an array of all search lines used in the detection.
03243     unsigned int    numSearchLines;   //The number of search lines used in the edge detection.
03244 } StraightEdgeReport2;
03245 
03246 typedef struct StraightEdgeOptions_struct {
03247     unsigned int           numLines;              //Specifies the number of straight edges to find.
03248     StraightEdgeSearchMode searchMode;            //Specifies the method used to find the straight edge.
03249     double                 minScore;              //Specifies the minimum score of a detected straight edge.
03250     double                 maxScore;              //Specifies the maximum score of a detected edge.
03251     double                 orientation;           //Specifies the angle at which the straight edge is expected to be found.
03252     double                 angleRange;            //Specifies the +/- range around the orientation within which the straight edge is expected to be found.
03253     double                 angleTolerance;        //Specifies the expected angular accuracy of the straight edge.
03254     unsigned int           stepSize;              //Specifies the gap in pixels between the search lines used with the rake-based methods.
03255     double                 minSignalToNoiseRatio; //Specifies the minimum signal to noise ratio (SNR) of the edge points used to fit the straight edge.
03256     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.
03257     unsigned int           houghIterations;       //Specifies the number of iterations used in the Hough-based method.
03258 } StraightEdgeOptions;
03259 
03260 typedef struct StraightEdge_struct {
03261     LineFloat    straightEdgeCoordinates;           //End points of the detected straight edge in pixel coordinates.
03262     LineFloat    calibratedStraightEdgeCoordinates; //End points of the detected straight edge in real-world coordinates.
03263     double       angle;                             //Angle of the found edge using the pixel coordinates.
03264     double       calibratedAngle;                   //Angle of the found edge using the real-world coordinates.
03265     double       score;                             //Describes the score of the detected edge.
03266     double       straightness;                      //The straightness value of the detected straight edge.
03267     double       averageSignalToNoiseRatio;         //Describes the average signal to noise ratio (SNR) of the detected edge.
03268     int          calibrationValid;                  //Indicates if the calibration data for the straight edge is valid.
03269     EdgeInfo*    usedEdges;                         //An array of edges that were used to determine this straight line.
03270     unsigned int numUsedEdges;                      //Indicates the number of edges in the usedEdges array.
03271 } StraightEdge;
03272 
03273 typedef struct QRCodeSearchOptions_struct {
03274     QRRotationMode     rotationMode;       //Specifies the amount of QR code rotation the function should allow for.
03275     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).
03276     unsigned int       edgeThreshold;      //The strength of the weakest edge the function uses to find the coarse location of the QR code in the image.
03277     QRDemodulationMode demodulationMode;   //The demodulation mode the function uses to locate the QR code.
03278     QRCellSampleSize   cellSampleSize;     //The cell sample size the function uses to locate the QR code.
03279     QRCellFilterMode   cellFilterMode;     //The cell filter mode the function uses to locate the QR code.
03280     unsigned int       skewDegreesAllowed; //Specifies the amount of skew in the QR code the function should allow for.
03281 } QRCodeSearchOptions;
03282 
03283 typedef struct QRCodeSizeOptions_struct {
03284     unsigned int minSize; //Specifies the minimum size (in pixels) of the QR code in the image.
03285     unsigned int maxSize; //Specifies the maximum size (in pixels) of the QR code in the image.
03286 } QRCodeSizeOptions;
03287 
03288 typedef struct QRCodeDescriptionOptions_struct {
03289     QRDimensions dimensions; //The number of rows and columns that are populated for the QR code, measured in cells.
03290     QRPolarities polarity;   //The polarity of the QR code.
03291     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.
03292     QRModelType  modelType;  //This option allows you to specify the type of QR code.
03293 } QRCodeDescriptionOptions;
03294 
03295 typedef struct QRCodeReport_struct {
03296     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.
03297     unsigned char*     data;                     //The data encoded in the QR code.
03298     unsigned int       dataLength;               //The length of the data array.
03299     PointFloat         boundingBox[4];           //An array of four points describing the rectangle surrounding the QR code.
03300     QRCodeDataToken*   tokenizedData;            //Contains the data tokenized in exactly the way it was encoded in the code.
03301     unsigned int       sizeOfTokenizedData;      //Size of the tokenized data.
03302     unsigned int       numErrorsCorrected;       //The number of errors the function corrected when decoding the QR code.
03303     unsigned int       dimensions;               //The number of rows and columns that are populated for the QR code, measured in cells.
03304     unsigned int       version;                  //The version of the QR code.
03305     QRModelType        modelType;                //This option allows you to specify what type of QR code this is.
03306     QRStreamMode       streamMode;               //The format of the data encoded in the stream.
03307     QRPolarities       matrixPolarity;           //The polarity of the QR code.
03308     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.
03309     unsigned int       positionInAppendStream;   //Indicates what position the QR code is in with respect to the stream of data in all codes.
03310     unsigned int       sizeOfAppendStream;       //Specifies how many QR codes are part of a larger array of codes.
03311     int                firstEAN128ApplicationID; //The first EAN-128 Application ID encountered in the stream.
03312     int                firstECIDesignator;       //The first Regional Language Designator encountered in the stream.
03313     unsigned int       appendStreamIdentifier;   //Specifies what stream the QR code is in relation to when the code is part of a larger array of codes.
03314     unsigned int       minimumEdgeStrength;      //The strength of the weakest edge the function used to find the coarse location of the QR code in the image.
03315     QRDemodulationMode demodulationMode;         //The demodulation mode the function used to locate the QR code.
03316     QRCellSampleSize   cellSampleSize;           //The cell sample size the function used to locate the QR code.
03317     QRCellFilterMode   cellFilterMode;           //The cell filter mode the function used to locate the QR code.
03318 } QRCodeReport;
03319 
03320 typedef struct AIMGradeReport_struct {
03321     AIMGrade overallGrade;               //The overall letter grade, which is equal to the lowest of the other five letter grades.
03322     AIMGrade decodingGrade;              //The letter grade assigned to a Data Matrix barcode based on the success of the function in decoding the Data Matrix barcode.
03323     AIMGrade symbolContrastGrade;        //The letter grade assigned to a Data Matrix barcode based on the symbol contrast raw score.
03324     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.
03325     AIMGrade printGrowthGrade;           //The print growth letter grade for the Data Matrix barcode.
03326     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.
03327     AIMGrade axialNonuniformityGrade;    //The axial nonuniformity grade for the Data Matrix barcode.
03328     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.
03329     AIMGrade unusedErrorCorrectionGrade; //The unused error correction letter grade for the Data Matrix barcode.
03330     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.
03331 } AIMGradeReport;
03332 
03333 typedef struct DataMatrixSizeOptions_struct {
03334     unsigned int minSize;        //Specifies the minimum size (in pixels) of the Data Matrix barcode in the image.
03335     unsigned int maxSize;        //Specifies the maximum size (in pixels) of the Data Matrix barcode in the image.
03336     unsigned int quietZoneWidth; //Specifies the expected minimum size of the quiet zone, in pixels.
03337 } DataMatrixSizeOptions;
03338 
03339 typedef struct DataMatrixDescriptionOptions_struct {
03340     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).
03341     unsigned int           rows;               //Specifies the number of rows in the Data Matrix barcode.
03342     unsigned int           columns;            //Specifies the number of columns in the Data Matrix barcode.
03343     int                    rectangle;          //Set this element to TRUE to specify that the Data Matrix barcode is rectangular.
03344     DataMatrixECC          ecc;                //Specifies the ECC used for this Data Matrix barcode.
03345     DataMatrixPolarity     polarity;           //Specifies the data-to-background contrast for the Data Matrix barcode.
03346     DataMatrixCellFillMode cellFill;           //Specifies the fill percentage for a cell of the Data Matrix barcode that is in the "ON" state.
03347     float                  minBorderIntegrity; //Specifies the minimum percentage of the border (locator pattern and timing pattern) the function should expect in the Data Matrix barcode.
03348     DataMatrixMirrorMode   mirrorMode;         //Specifies if the Data Matrix barcode appears normally in the image or if the barcode appears mirrored in the image.
03349 } DataMatrixDescriptionOptions;
03350 
03351 typedef struct DataMatrixSearchOptions_struct {
03352     DataMatrixRotationMode     rotationMode;             //Specifies the amount of Data Matrix barcode rotation the function should allow for.
03353     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).
03354     unsigned int               edgeThreshold;            //Specifies the minimum contrast a pixel must have in order to be considered part of a matrix cell edge.
03355     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.
03356     DataMatrixCellSampleSize   cellSampleSize;           //Specifies the sample size, in pixels, the function should take to determine if each cell is on or off.
03357     DataMatrixCellFilterMode   cellFilterMode;           //Specifies the mode the function uses to determine the pixel value for each cell.
03358     unsigned int               skewDegreesAllowed;       //Specifies the amount of skew in the Data Matrix barcode the function should allow for.
03359     unsigned int               maxIterations;            //Specifies the maximum number of iterations before the function stops looking for the Data Matrix barcode.
03360     unsigned int               initialSearchVectorWidth; //Specifies the number of pixels the function should average together to determine the location of an edge.
03361 } DataMatrixSearchOptions;
03362 
03363 typedef struct DataMatrixReport_struct {
03364     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.
03365     int                        binary;               //This element is TRUE if the Data Matrix barcode contains binary data and FALSE if the Data Matrix barcode contains text data.
03366     unsigned char*             data;                 //The data encoded in the Data Matrix barcode.
03367     unsigned int               dataLength;           //The length of the data array.
03368     PointFloat                 boundingBox[4];       //An array of four points describing the rectangle surrounding the Data Matrix barcode.
03369     unsigned int               numErrorsCorrected;   //The number of errors the function corrected when decoding the Data Matrix barcode.
03370     unsigned int               numErasuresCorrected; //The number of erasures the function corrected when decoding the Data Matrix barcode.
03371     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).
03372     unsigned int               rows;                 //The number of rows in the Data Matrix barcode.
03373     unsigned int               columns;              //The number of columns in the Data Matrix barcode.
03374     DataMatrixECC              ecc;                  //The Error Correction Code (ECC) used by the Data Matrix barcode.
03375     DataMatrixPolarity         polarity;             //The polarity of the Data Matrix barcode.
03376     DataMatrixCellFillMode     cellFill;             //The cell fill percentage of the Data Matrix barcode.
03377     float                      borderIntegrity;      //The percentage of the Data Matrix barcode border that appears correctly in the image.
03378     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.
03379     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.
03380     DataMatrixDemodulationMode demodulationMode;     //The demodulation mode the function used to locate the Data Matrix barcode.
03381     DataMatrixCellSampleSize   cellSampleSize;       //The cell sample size the function used to locate the Data Matrix barcode.
03382     DataMatrixCellFilterMode   cellFilterMode;       //The cell filter mode the function used to locate the Data Matrix barcode.
03383     unsigned int               iterations;           //The number of iterations the function took in attempting to locate the Data Matrix barcode.
03384 } DataMatrixReport;
03385 
03386 typedef struct JPEG2000FileAdvancedOptions_struct {
03387     WaveletTransformMode waveletMode;                //Determines which wavelet transform to use when writing the file.
03388     int                  useMultiComponentTransform; //Set this parameter to TRUE to use an additional transform on RGB images.
03389     unsigned int         maxWaveletTransformLevel;   //Specifies the maximum allowed level of wavelet transform.
03390     float                quantizationStepSize;       //Specifies the absolute base quantization step size for derived quantization mode.
03391 } JPEG2000FileAdvancedOptions;
03392 
03393 typedef struct MatchGeometricPatternAdvancedOptions2_struct {
03394     int    minFeaturesUsed;            //Specifies the minimum number of features the function uses when matching.
03395     int    maxFeaturesUsed;            //Specifies the maximum number of features the function uses when matching.
03396     int    subpixelIterations;         //Specifies the maximum number of incremental improvements used to refine matches with subpixel information.
03397     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.
03398     int    initialMatchListLength;     //Specifies the maximum size of the match list.
03399     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.
03400     int    correlationScore;           //Set this element to TRUE to specify that the function should calculate the correlation score and return it for each match result.
03401     double minMatchSeparationDistance; //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
03402     double minMatchSeparationAngle;    //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
03403     double minMatchSeparationScale;    //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
03404     double maxMatchOverlap;            //Specifies the maximum amount of overlap, expressed as a percentage, allowed between the bounding rectangles of two unique matches.
03405     int    coarseResult;               //Specifies whether you want the function to spend less time accurately estimating the location of a match.
03406     int    smoothContours;             //Set this element to TRUE to specify smoothing be done on the contours of the inspection image before feature extraction.
03407     int    enableCalibrationSupport;   //Set this element to TRUE to specify the algorithm treat the inspection image as a calibrated image.
03408 } MatchGeometricPatternAdvancedOptions2;
03409 
03410 typedef struct InspectionAlignment_struct {
03411     PointFloat position; //The location of the center of the golden template in the image under inspection.
03412     float      rotation; //The rotation of the golden template in the image under inspection, in degrees.
03413     float      scale;    //The percentage of the size of the area under inspection compared to the size of the golden template.
03414 } InspectionAlignment;
03415 
03416 typedef struct InspectionOptions_struct {
03417     RegistrationMethod  registrationMethod;    //Specifies how the function registers the golden template and the target image.
03418     NormalizationMethod normalizationMethod;   //Specifies how the function normalizes the golden template to the target image.
03419     int                 edgeThicknessToIgnore; //Specifies desired thickness of edges to be ignored.
03420     float               brightThreshold;       //Specifies the threshold for areas where the target image is brighter than the golden template.
03421     float               darkThreshold;         //Specifies the threshold for areas where the target image is darker than the golden template.
03422     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.
03423 } InspectionOptions;
03424 
03425 typedef struct CharReport2_struct {
03426     const char* character;           //The character value.
03427     PointFloat  corner[4];           //An array of four points that describes the rectangle that surrounds the character.
03428     int         lowThreshold;        //The minimum value of the threshold range used for this character.
03429     int         highThreshold;       //The maximum value of the threshold range used for this character.
03430     int         classificationScore; //The degree to which the assigned character class represents the object better than the other character classes in the character set.
03431     int         verificationScore;   //The similarity of the character and the reference character for the character class.
03432     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.
03433 } CharReport2;
03434 
03435 typedef struct CharInfo2_struct {
03436     const char*  charValue;       //Retrieves the character value of the corresponding character in the character set.
03437     const Image* charImage;       //The image you used to train this character.
03438     const Image* internalImage;   //The internal representation that NI Vision uses to match objects to this character.
03439     int          isReferenceChar; //This element is TRUE if the character is the reference character for the character class.
03440 } CharInfo2;
03441 
03442 typedef struct ReadTextReport2_struct {
03443     const char*  readString;          //The read string.
03444     CharReport2* characterReport;     //An array of reports describing the properties of each identified character.
03445     int          numCharacterReports; //The number of identified characters.
03446 } ReadTextReport2;
03447 
03448 typedef struct EllipseFeature_struct {
03449     PointFloat position;    //The location of the center of the ellipse.
03450     double     rotation;    //The orientation of the semi-major axis of the ellipse with respect to the horizontal.
03451     double     minorRadius; //The length of the semi-minor axis of the ellipse.
03452     double     majorRadius; //The length of the semi-major axis of the ellipse.
03453 } EllipseFeature;
03454 
03455 typedef struct CircleFeature_struct {
03456     PointFloat position; //The location of the center of the circle.
03457     double     radius;   //The radius of the circle.
03458 } CircleFeature;
03459 
03460 typedef struct ConstCurveFeature_struct {
03461     PointFloat position;   //The center of the circle that this constant curve lies upon.
03462     double     radius;     //The radius of the circle that this constant curve lies upon.
03463     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.
03464     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.
03465 } ConstCurveFeature;
03466 
03467 typedef struct RectangleFeature_struct {
03468     PointFloat position;  //The center of the rectangle.
03469     PointFloat corner[4]; //The four corners of the rectangle.
03470     double     rotation;  //The orientation of the rectangle with respect to the horizontal.
03471     double     width;     //The width of the rectangle.
03472     double     height;    //The height of the rectangle.
03473 } RectangleFeature;
03474 
03475 typedef struct LegFeature_struct {
03476     PointFloat position;  //The location of the leg feature.
03477     PointFloat corner[4]; //The four corners of the leg feature.
03478     double     rotation;  //The orientation of the leg with respect to the horizontal.
03479     double     width;     //The width of the leg.
03480     double     height;    //The height of the leg.
03481 } LegFeature;
03482 
03483 typedef struct CornerFeature_struct {
03484     PointFloat position;      //The location of the corner feature.
03485     double     rotation;      //The angular component of the vector bisecting the corner from position.
03486     double     enclosedAngle; //The measure of the enclosed angle of the corner.
03487     int        isVirtual;     
03488 } CornerFeature;
03489 
03490 typedef struct LineFeature_struct {
03491     PointFloat startPoint; //The starting point of the line.
03492     PointFloat endPoint;   //The ending point of the line.
03493     double     length;     //The length of the line measured in pixels from the start point to the end point.
03494     double     rotation;   //The orientation of the line with respect to the horizontal.
03495 } LineFeature;
03496 
03497 typedef struct ParallelLinePairFeature_struct {
03498     PointFloat firstStartPoint;  //The starting point of the first line of the pair.
03499     PointFloat firstEndPoint;    //The ending point of the first line of the pair.
03500     PointFloat secondStartPoint; //The starting point of the second line of the pair.
03501     PointFloat secondEndPoint;   //The ending point of the second line of the pair.
03502     double     rotation;         //The orientation of the feature with respect to the horizontal.
03503     double     distance;         //The distance from the first line to the second line.
03504 } ParallelLinePairFeature;
03505 
03506 typedef struct PairOfParallelLinePairsFeature_struct {
03507     ParallelLinePairFeature firstParallelLinePair;  //The first parallel line pair.
03508     ParallelLinePairFeature secondParallelLinePair; //The second parallel line pair.
03509     double                  rotation;               //The orientation of the feature with respect to the horizontal.
03510     double                  distance;               //The distance from the midline of the first parallel line pair to the midline of the second parallel line pair.
03511 } PairOfParallelLinePairsFeature;
03512 
03513 typedef union GeometricFeature_union {
03514     CircleFeature*                  circle;                  //A pointer to a CircleFeature.
03515     EllipseFeature*                 ellipse;                 //A pointer to an EllipseFeature.
03516     ConstCurveFeature*              constCurve;              //A pointer to a ConstCurveFeature.
03517     RectangleFeature*               rectangle;               //A pointer to a RectangleFeature.
03518     LegFeature*                     leg;                     //A pointer to a LegFeature.
03519     CornerFeature*                  corner;                  //A pointer to a CornerFeature.
03520     ParallelLinePairFeature*        parallelLinePair;        //A pointer to a ParallelLinePairFeature.
03521     PairOfParallelLinePairsFeature* pairOfParallelLinePairs; //A pointer to a PairOfParallelLinePairsFeature.
03522     LineFeature*                    line;                    //A pointer to a LineFeature.
03523     ClosedCurveFeature*             closedCurve;             //A pointer to a ClosedCurveFeature.
03524 } GeometricFeature;
03525 
03526 typedef struct FeatureData_struct {
03527     FeatureType      type;             //An enumeration representing the type of the feature.
03528     PointFloat*      contourPoints;    //A set of points describing the contour of the feature.
03529     int              numContourPoints; //The number of points in the contourPoints array.
03530     GeometricFeature feature;          //The feature data specific to this type of feature.
03531 } FeatureData;
03532 
03533 typedef struct GeometricPatternMatch2_struct {
03534     PointFloat   position;                //The location of the origin of the template in the match.
03535     float        rotation;                //The rotation of the match relative to the template image, in degrees.
03536     float        scale;                   //The size of the match relative to the size of the template image, expressed as a percentage.
03537     float        score;                   //The accuracy of the match.
03538     PointFloat   corner[4];               //An array of four points describing the rectangle surrounding the template image.
03539     int          inverse;                 //This element is TRUE if the match is an inverse of the template image.
03540     float        occlusion;               //The percentage of the match that is occluded.
03541     float        templateMatchCurveScore; //The accuracy of the match obtained by comparing the template curves to the curves in the match region.
03542     float        matchTemplateCurveScore; //The accuracy of the match obtained by comparing the curves in the match region to the template curves.
03543     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.
03544     String255    label;                   //The label corresponding to this match when the match is returned by imaqMatchMultipleGeometricPatterns().
03545     FeatureData* featureData;             //The features used in this match.
03546     int          numFeatureData;          //The size of the featureData array.
03547     PointFloat   calibratedPosition;      //The location of the origin of the template in the match.
03548     float        calibratedRotation;      //The rotation of the match relative to the template image, in degrees.
03549     PointFloat   calibratedCorner[4];     //An array of four points describing the rectangle surrounding the template image.
03550 } GeometricPatternMatch2;
03551 
03552 typedef struct ClosedCurveFeature_struct {
03553     PointFloat position;  //The center of the closed curve feature.
03554     double     arcLength; //The arc length of the closed curve feature.
03555 } ClosedCurveFeature;
03556 
03557 typedef struct LineMatch_struct {
03558     PointFloat startPoint; //The starting point of the matched line.
03559     PointFloat endPoint;   //The ending point of the matched line.
03560     double     length;     //The length of the line measured in pixels from the start point to the end point.
03561     double     rotation;   //The orientation of the matched line.
03562     double     score;      //The score of the matched line.
03563 } LineMatch;
03564 
03565 typedef struct LineDescriptor_struct {
03566     double minLength; //Specifies the minimum length of a line the function will return.
03567     double maxLength; //Specifies the maximum length of a line the function will return.
03568 } LineDescriptor;
03569 
03570 typedef struct RectangleDescriptor_struct {
03571     double minWidth;  //Specifies the minimum width of a rectangle the algorithm will return.
03572     double maxWidth;  //Specifies the maximum width of a rectangle the algorithm will return.
03573     double minHeight; //Specifies the minimum height of a rectangle the algorithm will return.
03574     double maxHeight; //Specifies the maximum height of a rectangle the algorithm will return.
03575 } RectangleDescriptor;
03576 
03577 typedef struct RectangleMatch_struct {
03578     PointFloat corner[4]; //The corners of the matched rectangle.
03579     double     rotation;  //The orientation of the matched rectangle.
03580     double     width;     //The width of the matched rectangle.
03581     double     height;    //The height of the matched rectangle.
03582     double     score;     //The score of the matched rectangle.
03583 } RectangleMatch;
03584 
03585 typedef struct EllipseDescriptor_struct {
03586     double minMajorRadius; //Specifies the minimum length of the semi-major axis of an ellipse the function will return.
03587     double maxMajorRadius; //Specifies the maximum length of the semi-major axis of an ellipse the function will return.
03588     double minMinorRadius; //Specifies the minimum length of the semi-minor axis of an ellipse the function will return.
03589     double maxMinorRadius; //Specifies the maximum length of the semi-minor axis of an ellipse the function will return.
03590 } EllipseDescriptor;
03591 
03592 typedef struct EllipseMatch_struct {
03593     PointFloat position;    //The location of the center of the matched ellipse.
03594     double     rotation;    //The orientation of the matched ellipse.
03595     double     majorRadius; //The length of the semi-major axis of the matched ellipse.
03596     double     minorRadius; //The length of the semi-minor axis of the matched ellipse.
03597     double     score;       //The score of the matched ellipse.
03598 } EllipseMatch;
03599 
03600 typedef struct CircleMatch_struct {
03601     PointFloat position; //The location of the center of the matched circle.
03602     double     radius;   //The radius of the matched circle.
03603     double     score;    //The score of the matched circle.
03604 } CircleMatch;
03605 
03606 typedef struct CircleDescriptor_struct {
03607     double minRadius; //Specifies the minimum radius of a circle the function will return.
03608     double maxRadius; //Specifies the maximum radius of a circle the function will return.
03609 } CircleDescriptor;
03610 
03611 typedef struct ShapeDetectionOptions_struct {
03612     unsigned int mode;           //Specifies the method used when looking for the shape in the image.
03613     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.
03614     int          numAngleRanges; //The size of the orientationRanges array.
03615     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.
03616     double       minMatchScore;  
03617 } ShapeDetectionOptions;
03618 
03619 typedef struct Curve_struct {
03620     PointFloat*  points;              //The points on the curve.
03621     unsigned int numPoints;           //The number of points in the curve.
03622     int          closed;              //This element is TRUE if the curve is closed and FALSE if the curve is open.
03623     double       curveLength;         //The length of the curve.
03624     double       minEdgeStrength;     //The lowest edge strength detected on the curve.
03625     double       maxEdgeStrength;     //The highest edge strength detected on the curve.
03626     double       averageEdgeStrength; //The average of all edge strengths detected on the curve.
03627 } Curve;
03628 
03629 typedef struct CurveOptions_struct {
03630     ExtractionMode extractionMode;   //Specifies the method the function uses to identify curves in the image.
03631     int            threshold;        //Specifies the minimum contrast a seed point must have in order to begin a curve.
03632     EdgeFilterSize filterSize;       //Specifies the width of the edge filter the function uses to identify curves in the image.
03633     int            minLength;        //Specifies the length, in pixels, of the smallest curve the function will extract.
03634     int            rowStepSize;      //Specifies the distance, in the y direction, between lines the function inspects for curve seed points.
03635     int            columnStepSize;   //Specifies the distance, in the x direction, between columns the function inspects for curve seed points.
03636     int            maxEndPointGap;   //Specifies the maximum gap, in pixels, between the endpoints of a curve that the function identifies as a closed curve.
03637     int            onlyClosed;       //Set this element to TRUE to specify that the function should only identify closed curves in the image.
03638     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.
03639 } CurveOptions;
03640 
03641 typedef struct Barcode2DInfo_struct {
03642     Barcode2DType  type;                 //The type of the 2D barcode.
03643     int            binary;               //This element is TRUE if the 2D barcode contains binary data and FALSE if the 2D barcode contains text data.
03644     unsigned char* data;                 //The data encoded in the 2D barcode.
03645     unsigned int   dataLength;           //The length of the data array.
03646     PointFloat     boundingBox[4];       //An array of four points describing the rectangle surrounding the 2D barcode.
03647     unsigned int   numErrorsCorrected;   //The number of errors the function corrected when decoding the 2D barcode.
03648     unsigned int   numErasuresCorrected; //The number of erasures the function corrected when decoding the 2D barcode.
03649     unsigned int   rows;                 //The number of rows in the 2D barcode.
03650     unsigned int   columns;              //The number of columns in the 2D barcode.
03651 } Barcode2DInfo;
03652 
03653 typedef struct DataMatrixOptions_struct {
03654     Barcode2DSearchMode searchMode;   //Specifies the mode the function uses to search for barcodes.
03655     Barcode2DContrast   contrast;     //Specifies the contrast of the barcodes that the function searches for.
03656     Barcode2DCellShape  cellShape;    //Specifies the shape of the barcode data cells, which affects how the function decodes the barcode.
03657     Barcode2DShape      barcodeShape; //Specifies the shape of the barcodes that the function searches for.
03658     DataMatrixSubtype   subtype;      //Specifies the Data Matrix subtypes of the barcodes that the function searches for.
03659 } DataMatrixOptions;
03660 
03661 typedef struct ClassifierAccuracyReport_struct {
03662     int     size;                       //The size of the arrays in this structure.
03663     float   accuracy;                   //The overall accuracy of the classifier, from 0 to 1000.
03664     char**  classNames;                 //The names of the classes of this classifier.
03665     double* classAccuracy;              //An array of size elements that contains accuracy information for each class.
03666     double* classPredictiveValue;       //An array containing size elements that contains the predictive values of each class.
03667     int**   classificationDistribution; //A two-dimensional array containing information about how the classifier classifies its samples.
03668 } ClassifierAccuracyReport;
03669 
03670 typedef struct NearestNeighborClassResult_struct {
03671     char* className;         //The name of the class.
03672     float standardDeviation; //The standard deviation of the members of this class.
03673     int   count;             //The number of samples in this class.
03674 } NearestNeighborClassResult;
03675 
03676 typedef struct NearestNeighborTrainingReport_struct {
03677     float**                     classDistancesTable; //The confidence in the training.
03678     NearestNeighborClassResult* allScores;           //All classes and their scores.
03679     int                         allScoresSize;       //The number of entries in allScores.
03680 } NearestNeighborTrainingReport;
03681 
03682 typedef struct ParticleClassifierPreprocessingOptions_struct {
03683     int             manualThreshold;      //Set this element to TRUE to specify the threshold range manually.
03684     RangeFloat      manualThresholdRange; //If a manual threshold is being done, the range of pixels to keep.
03685     ThresholdMethod autoThresholdMethod;  //If an automatic threshold is being done, the method used to calculate the threshold range.
03686     RangeFloat      limits;               //The limits on the automatic threshold range.
03687     ParticleType    particleType;         //Specifies what kind of particles to look for.
03688     int             rejectBorder;         //Set this element to TRUE to reject border particles.
03689     int             numErosions;          //The number of erosions to perform.
03690 } ParticleClassifierPreprocessingOptions;
03691 
03692 typedef struct ClassifierSampleInfo_struct {
03693     char*   className;         //The name of the class this sample is in.
03694     double* featureVector;     //The feature vector of this sample, or NULL if this is not a custom classifier session.
03695     int     featureVectorSize; //The number of elements in the feature vector.
03696     Image*  thumbnail;         //A thumbnail image of this sample, or NULL if no image was specified.
03697 } ClassifierSampleInfo;
03698 
03699 typedef struct ClassScore_struct {
03700     char* className; //The name of the class.
03701     float distance;  //The distance from the item to this class.
03702 } ClassScore;
03703 
03704 typedef struct ClassifierReport_struct {
03705     char*       bestClassName;       //The name of the best class for the sample.
03706     float       classificationScore; //The similarity of the sample and the two closest classes in the classifier.
03707     float       identificationScore; //The similarity of the sample and the assigned class.
03708     ClassScore* allScores;           //All classes and their scores.
03709     int         allScoresSize;       //The number of entries in allScores.
03710 } ClassifierReport;
03711 
03712 typedef struct NearestNeighborOptions_struct {
03713     NearestNeighborMethod method; //The method to use.
03714     NearestNeighborMetric metric; //The metric to use.
03715     int                   k;      //The value of k, if the IMAQ_K_NEAREST_NEIGHBOR method is used.
03716 } NearestNeighborOptions;
03717 
03718 typedef struct ParticleClassifierOptions_struct {
03719     float scaleDependence;  //The relative importance of scale when classifying particles.
03720     float mirrorDependence; //The relative importance of mirror symmetry when classifying particles.
03721 } ParticleClassifierOptions;
03722 
03723 typedef struct RGBU64Value_struct {
03724     unsigned short B;     //The blue value of the color.
03725     unsigned short G;     //The green value of the color.
03726     unsigned short R;     //The red value of the color.
03727     unsigned short alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
03728 } RGBU64Value;
03729 
03730 typedef struct GeometricPatternMatch_struct {
03731     PointFloat position;                //The location of the origin of the template in the match.
03732     float      rotation;                //The rotation of the match relative to the template image, in degrees.
03733     float      scale;                   //The size of the match relative to the size of the template image, expressed as a percentage.
03734     float      score;                   //The accuracy of the match.
03735     PointFloat corner[4];               //An array of four points describing the rectangle surrounding the template image.
03736     int        inverse;                 //This element is TRUE if the match is an inverse of the template image.
03737     float      occlusion;               //The percentage of the match that is occluded.
03738     float      templateMatchCurveScore; //The accuracy of the match obtained by comparing the template curves to the curves in the match region.
03739     float      matchTemplateCurveScore; //The accuracy of the match obtained by comparing the curves in the match region to the template curves.
03740     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.
03741 } GeometricPatternMatch;
03742 
03743 typedef struct MatchGeometricPatternAdvancedOptions_struct {
03744     int    minFeaturesUsed;            //Specifies the minimum number of features the function uses when matching.
03745     int    maxFeaturesUsed;            //Specifies the maximum number of features the function uses when matching.
03746     int    subpixelIterations;         //Specifies the maximum number of incremental improvements used to refine matches with subpixel information.
03747     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.
03748     int    initialMatchListLength;     //Specifies the maximum size of the match list.
03749     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.
03750     int    correlationScore;           //Set this element to TRUE to specify that the function should calculate the correlation score and return it for each match result.
03751     double minMatchSeparationDistance; //Specifies the minimum separation distance, in pixels, between the origins of two matches that have unique positions.
03752     double minMatchSeparationAngle;    //Specifies the minimum angular difference, in degrees, between two matches that have unique angles.
03753     double minMatchSeparationScale;    //Specifies the minimum difference in scale, expressed as a percentage, between two matches that have unique scales.
03754     double maxMatchOverlap;            //Specifies the maximum amount of overlap, expressed as a percentage, allowed between the bounding rectangles of two unique matches.
03755     int    coarseResult;               //Specifies whether you want the function to spend less time accurately estimating the location of a match.
03756 } MatchGeometricPatternAdvancedOptions;
03757 
03758 typedef struct MatchGeometricPatternOptions_struct {
03759     unsigned int mode;                //Specifies the method imaqMatchGeometricPattern() uses when looking for the pattern in the image.
03760     int          subpixelAccuracy;    //Set this element to TRUE to specify that the function should calculate match locations with subpixel accuracy.
03761     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.
03762     int          numAngleRanges;      //Number of angle ranges in the angleRanges array.
03763     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.
03764     RangeFloat   occlusionRange;      //A range that specifies the percentage of the pattern you expect to be occluded in the image.
03765     int          numMatchesRequested; //Number of valid matches expected.
03766     float        minMatchScore;       //The minimum score a match can have for the function to consider the match valid.
03767 } MatchGeometricPatternOptions;
03768 
03769 typedef struct LearnGeometricPatternAdvancedOptions_struct {
03770     int    minRectLength;            //Specifies the minimum length for each side of a rectangular feature.
03771     double minRectAspectRatio;       //Specifies the minimum aspect ratio of a rectangular feature.
03772     int    minRadius;                //Specifies the minimum radius for a circular feature.
03773     int    minLineLength;            //Specifies the minimum length for a linear feature.
03774     double minFeatureStrength;       //Specifies the minimum strength for a feature.
03775     int    maxFeaturesUsed;          //Specifies the maximum number of features the function uses when learning.
03776     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.
03777 } LearnGeometricPatternAdvancedOptions;
03778 
03779 typedef struct FitEllipseOptions_struct {
03780     int    rejectOutliers; //Whether to use every given point or only a subset of the points to fit the ellipse.
03781     double minScore;       //Specifies the required quality of the fitted ellipse.
03782     double pixelRadius;    //The acceptable distance, in pixels, that a point determined to belong to the ellipse can be from the circumference of the ellipse.
03783     int    maxIterations;  //Specifies the number of refinement iterations you allow the function to perform on the initial subset of points.
03784 } FitEllipseOptions;
03785 
03786 typedef struct FitCircleOptions_struct {
03787     int    rejectOutliers; //Whether to use every given point or only a subset of the points to fit the circle.
03788     double minScore;       //Specifies the required quality of the fitted circle.
03789     double pixelRadius;    //The acceptable distance, in pixels, that a point determined to belong to the circle can be from the circumference of the circle.
03790     int    maxIterations;  //Specifies the number of refinement iterations you allow the function to perform on the initial subset of points.
03791 } FitCircleOptions;
03792 
03793 typedef struct ConstructROIOptions2_struct {
03794     int          windowNumber; //The window number of the image window.
03795     const char*  windowTitle;  //Specifies the message string that the function displays in the title bar of the window.
03796     PaletteType  type;         //The palette type to use.
03797     RGBValue*    palette;      //If type is IMAQ_PALETTE_USER, this array is the palette of colors to use with the window.
03798     int          numColors;    //If type is IMAQ_PALETTE_USER, this element is the number of colors in the palette array.
03799     unsigned int maxContours;  //The maximum number of contours the user will be able to select.
03800 } ConstructROIOptions2;
03801 
03802 typedef struct HSLValue_struct {
03803     unsigned char L;     //The color luminance.
03804     unsigned char S;     //The color saturation.
03805     unsigned char H;     //The color hue.
03806     unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
03807 } HSLValue;
03808 
03809 typedef struct HSVValue_struct {
03810     unsigned char V;     //The color value.
03811     unsigned char S;     //The color saturation.
03812     unsigned char H;     //The color hue.
03813     unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
03814 } HSVValue;
03815 
03816 typedef struct HSIValue_struct {
03817     unsigned char I;     //The color intensity.
03818     unsigned char S;     //The color saturation.
03819     unsigned char H;     //The color hue.
03820     unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
03821 } HSIValue;
03822 
03823 typedef struct CIELabValue_struct {
03824     double        b;     //The yellow/blue information of the color.
03825     double        a;     //The red/green information of the color.
03826     double        L;     //The color lightness.
03827     unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
03828 } CIELabValue;
03829 
03830 typedef struct CIEXYZValue_struct {
03831     double        Z;     //The Z color information.
03832     double        Y;     //The color luminance.
03833     double        X;     //The X color information.
03834     unsigned char alpha; //The alpha value of the color, which represents extra information about a color image, such as gamma correction.
03835 } CIEXYZValue;
03836 
03837 typedef union Color2_union {
03838     RGBValue    rgb;      //The information needed to describe a color in the RGB (Red, Green, and Blue) color space.
03839     HSLValue    hsl;      //The information needed to describe a color in the HSL (Hue, Saturation, and Luminance) color space.
03840     HSVValue    hsv;      //The information needed to describe a color in the HSI (Hue, Saturation, and Value) color space.
03841     HSIValue    hsi;      //The information needed to describe a color in the HSI (Hue, Saturation, and Intensity) color space.
03842     CIELabValue cieLab;   //The information needed to describe a color in the CIE L*a*b* (L, a, b) color space.
03843     CIEXYZValue cieXYZ;   //The information needed to describe a color in the CIE XYZ (X, Y, Z) color space.
03844     int         rawValue; //The integer value for the data in the color union.
03845 } Color2;
03846 
03847 typedef struct BestEllipse2_struct {
03848     PointFloat center;         //The coordinate location of the center of the ellipse.
03849     PointFloat majorAxisStart; //The coordinate location of the start of the major axis of the ellipse.
03850     PointFloat majorAxisEnd;   //The coordinate location of the end of the major axis of the ellipse.
03851     PointFloat minorAxisStart; //The coordinate location of the start of the minor axis of the ellipse.
03852     PointFloat minorAxisEnd;   //The coordinate location of the end of the minor axis of the ellipse.
03853     double     area;           //The area of the ellipse.
03854     double     perimeter;      //The length of the perimeter of the ellipse.
03855     double     error;          //Represents the least square error of the fitted ellipse to the entire set of points.
03856     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.
03857     int*       pointsUsed;     //An array of the indexes for the points array indicating which points the function used to fit the ellipse.
03858     int        numPointsUsed;  //The number of points the function used to fit the ellipse.
03859 } BestEllipse2;
03860 
03861 typedef struct LearnPatternAdvancedOptions_struct {
03862     LearnPatternAdvancedShiftOptions*    shiftOptions;    //Use this element to control the behavior of imaqLearnPattern2() during the shift-invariant learning phase.
03863     LearnPatternAdvancedRotationOptions* rotationOptions; //Use this element to control the behavior of imaqLearnPattern2()during the rotation-invariant learning phase.
03864 } LearnPatternAdvancedOptions;
03865 
03866 typedef struct AVIInfo_struct {
03867     unsigned int width;           //The width of each frame.
03868     unsigned int height;          //The height of each frame.
03869     ImageType    imageType;       //The type of images this AVI contains.
03870     unsigned int numFrames;       //The number of frames in the AVI.
03871     unsigned int framesPerSecond; //The number of frames per second this AVI should be shown at.
03872     char*        filterName;      //The name of the compression filter used to create this AVI.
03873     int          hasData;         //Specifies whether this AVI has data attached to each frame or not.
03874     unsigned int maxDataSize;     //If this AVI has data, the maximum size of the data in each frame.
03875 } AVIInfo;
03876 
03877 typedef struct LearnPatternAdvancedShiftOptions_struct {
03878     int    initialStepSize;          //The largest number of image pixels to shift the sample across the inspection image during the initial phase of shift-invariant matching.
03879     int    initialSampleSize;        //Specifies the number of template pixels that you want to include in a sample for the initial phase of shift-invariant matching.
03880     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.
03881     int    finalSampleSize;          //Specifies the number of template pixels you want to add to initialSampleSize for the final phase of shift-invariant matching.
03882     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.
03883     int    subpixelSampleSize;       //Specifies the number of template pixels that you want to include in a sample for the subpixel phase of shift-invariant matching.
03884     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.
03885 } LearnPatternAdvancedShiftOptions;
03886 
03887 typedef struct LearnPatternAdvancedRotationOptions_struct {
03888     SearchStrategy searchStrategySupport;    //Specifies the aggressiveness of the rotation search strategy available during the matching phase.
03889     int            initialStepSize;          //The largest number of image pixels to shift the sample across the inspection image during the initial phase of matching.
03890     int            initialSampleSize;        //Specifies the number of template pixels that you want to include in a sample for the initial phase of rotation-invariant matching.
03891     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.
03892     int            initialAngularAccuracy;   //Sets the angle accuracy, in degrees, to use during the initial phase of rotation-invariant matching.
03893     int            finalSampleSize;          //Specifies the number of template pixels you want to add to initialSampleSize for the final phase of rotation-invariant matching.
03894     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.
03895     int            finalAngularAccuracy;     //Sets the angle accuracy, in degrees, to use during the final phase of the rotation-invariant matching.
03896     int            subpixelSampleSize;       //Specifies the number of template pixels that you want to include in a sample for the subpixel phase of rotation-invariant matching.
03897     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.
03898 } LearnPatternAdvancedRotationOptions;
03899 
03900 typedef struct MatchPatternAdvancedOptions_struct {
03901     int            subpixelIterations;          //Defines the maximum number of incremental improvements used to refine matching using subpixel information.
03902     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.
03903     int            initialMatchListLength;      //Specifies the maximum size of the match list.
03904     int            matchListReductionFactor;    //Specifies the reduction of the match list as matches are refined.
03905     int            initialStepSize;             //Specifies the number of pixels to shift the sample across the inspection image during the initial phase of shift-invariant matching.
03906     SearchStrategy searchStrategy;              //Specifies the aggressiveness of the rotation search strategy.
03907     int            intermediateAngularAccuracy; //Specifies the accuracy to use during the intermediate phase of rotation-invariant matching.
03908 } MatchPatternAdvancedOptions;
03909 
03910 typedef struct ParticleFilterCriteria2_struct {
03911     MeasurementType parameter;  //The morphological measurement that the function uses for filtering.
03912     float           lower;      //The lower bound of the criteria range.
03913     float           upper;      //The upper bound of the criteria range.
03914     int             calibrated; //Set this element to TRUE to take calibrated measurements.
03915     int             exclude;    //Set this element to TRUE to indicate that a match occurs when the measurement is outside the criteria range.
03916 } ParticleFilterCriteria2;
03917 
03918 typedef struct BestCircle2_struct {
03919     PointFloat center;        //The coordinate location of the center of the circle.
03920     double     radius;        //The radius of the circle.
03921     double     area;          //The area of the circle.
03922     double     perimeter;     //The length of the perimeter of the circle.
03923     double     error;         //Represents the least square error of the fitted circle to the entire set of points.
03924     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.
03925     int*       pointsUsed;    //An array of the indexes for the points array indicating which points the function used to fit the circle.
03926     int        numPointsUsed; //The number of points the function used to fit the circle.
03927 } BestCircle2;
03928 
03929 typedef struct OCRSpacingOptions_struct {
03930     int minCharSpacing;              //The minimum number of pixels that must be between two characters for NI Vision to train or read the characters separately.
03931     int minCharSize;                 //The minimum number of pixels required for an object to be a potentially identifiable character.
03932     int maxCharSize;                 //The maximum number of pixels required for an object to be a potentially identifiable character.
03933     int maxHorizontalElementSpacing; //The maximum horizontal spacing, in pixels, allowed between character elements to train or read the character elements as a single character.
03934     int maxVerticalElementSpacing;   //The maximum vertical element spacing in pixels.
03935     int minBoundingRectWidth;        //The minimum possible width, in pixels, for a character bounding rectangle.
03936     int maxBoundingRectWidth;        //The maximum possible width, in pixels, for a character bounding rectangle.
03937     int minBoundingRectHeight;       //The minimum possible height, in pixels, for a character bounding rectangle.
03938     int maxBoundingRectHeight;       //The maximum possible height, in pixels, for a character bounding rectangle.
03939     int autoSplit;                   //Set this element to TRUE to automatically adjust the location of the character bounding rectangle when characters overlap vertically.
03940 } OCRSpacingOptions;
03941 
03942 typedef struct OCRProcessingOptions_struct {
03943     ThresholdMode mode;                       //The thresholding mode.
03944     int           lowThreshold;               //The low threshold value when you set mode to IMAQ_FIXED_RANGE.
03945     int           highThreshold;              //The high threshold value when you set mode to IMAQ_FIXED_RANGE.
03946     int           blockCount;                 //The number of blocks for threshold calculation algorithms that require blocks.
03947     int           fastThreshold;              //Set this element to TRUE to use a faster, less accurate threshold calculation algorithm.
03948     int           biModalCalculation;         //Set this element to TRUE to calculate both the low and high threshold values when using the fast thresholding method.
03949     int           darkCharacters;             //Set this element to TRUE to read or train dark characters on a light background.
03950     int           removeParticlesTouchingROI; //Set this element to TRUE to remove the particles touching the ROI.
03951     int           erosionCount;               //The number of erosions to perform.
03952 } OCRProcessingOptions;
03953 
03954 typedef struct ReadTextOptions_struct {
03955     String255      validChars[255];  //An array of strings that specifies the valid characters.
03956     int            numValidChars;    //The number of strings in the validChars array that you have initialized.
03957     char           substitutionChar; //The character to substitute for objects that the function cannot match with any of the trained characters.
03958     ReadStrategy   readStrategy;     //The read strategy, which determines how closely the function analyzes images in the reading process to match objects with trained characters.
03959     int            acceptanceLevel;  //The minimum acceptance level at which an object is considered a trained character.
03960     int            aspectRatio;      //The maximum aspect ratio variance percentage for valid characters.
03961     ReadResolution readResolution;   //The read resolution, which determines how much of the trained character data the function uses to match objects to trained characters.
03962 } ReadTextOptions;
03963 
03964 typedef struct CharInfo_struct {
03965     const char*  charValue;     //Retrieves the character value of the corresponding character in the character set.
03966     const Image* charImage;     //The image you used to train this character.
03967     const Image* internalImage; //The internal representation that NI Vision uses to match objects to this character.
03968 } CharInfo;
03969 
03970 #if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
03971 typedef struct Rect_struct {
03972     int top;    //Location of the top edge of the rectangle.
03973     int left;   //Location of the left edge of the rectangle.
03974     int height; //Height of the rectangle.
03975     int width;  //Width of the rectangle.
03976 } Rect;
03977 #define _CVI_RECT_DEFINED
03978 #endif
03979 
03980 typedef struct CharReport_struct {
03981     const char* character;     //The character value.
03982     PointFloat  corner[4];     //An array of four points that describes the rectangle that surrounds the character.
03983     int         reserved;      //This element is reserved.
03984     int         lowThreshold;  //The minimum value of the threshold range used for this character.
03985     int         highThreshold; //The maximum value of the threshold range used for this character.
03986 } CharReport;
03987 
03988 typedef struct ReadTextReport_struct {
03989     const char*       readString;          //The read string.
03990     const CharReport* characterReport;     //An array of reports describing the properties of each identified character.
03991     int               numCharacterReports; //The number of identified characters.
03992 } ReadTextReport;
03993 
03994 #if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
03995 typedef struct Point_struct {
03996     int x; //The x-coordinate of the point.
03997     int y; //The y-coordinate of the point.
03998 } Point;
03999 #define _CVI_POINT_DEFINED
04000 #endif
04001 
04002 typedef struct Annulus_struct {
04003     Point  center;      //The coordinate location of the center of the annulus.
04004     int    innerRadius; //The internal radius of the annulus.
04005     int    outerRadius; //The external radius of the annulus.
04006     double startAngle;  //The start angle, in degrees, of the annulus.
04007     double endAngle;    //The end angle, in degrees, of the annulus.
04008 } Annulus;
04009 
04010 typedef struct EdgeLocationReport_struct {
04011     PointFloat* edges;    //The coordinate location of all edges detected by the search line.
04012     int         numEdges; //The number of points in the edges array.
04013 } EdgeLocationReport;
04014 
04015 typedef struct EdgeOptions_struct {
04016     unsigned            threshold;         //Specifies the threshold value for the contrast of the edge.
04017     unsigned            width;             //The number of pixels that the function averages to find the contrast at either side of the edge.
04018     unsigned            steepness;         //The span, in pixels, of the slope of the edge projected along the path specified by the input points.
04019     InterpolationMethod subpixelType;      //The method for interpolating.
04020     unsigned            subpixelDivisions; //The number of samples the function obtains from a pixel.
04021 } EdgeOptions;
04022 
04023 typedef struct EdgeReport_struct {
04024     float        location;   //The location of the edge from the first point in the points array.
04025     float        contrast;   //The contrast at the edge.
04026     PolarityType polarity;   //The polarity of the edge.
04027     float        reserved;   //This element is reserved.
04028     PointFloat   coordinate; //The coordinates of the edge.
04029 } EdgeReport;
04030 
04031 typedef struct ExtremeReport_struct {
04032     double location;         //The locations of the extreme.
04033     double amplitude;        //The amplitude of the extreme.
04034     double secondDerivative; //The second derivative of the extreme.
04035 } ExtremeReport;
04036 
04037 typedef struct FitLineOptions_struct {
04038     float minScore;       //Specifies the required quality of the fitted line.
04039     float pixelRadius;    //Specifies the neighborhood pixel relationship for the initial subset of points being used.
04040     int   numRefinements; //Specifies the number of refinement iterations you allow the function to perform on the initial subset of points.
04041 } FitLineOptions;
04042 
04043 typedef struct DisplayMapping_struct {
04044     MappingMethod method;       //Describes the method for converting 16-bit pixels to 8-bit pixels.
04045     int           minimumValue; //When method is IMAQ_RANGE, minimumValue represents the value that is mapped to 0.
04046     int           maximumValue; //When method is IMAQ_RANGE, maximumValue represents the value that is mapped to 255.
04047     int           shiftCount;   //When method is IMAQ_DOWNSHIFT, shiftCount represents the number of bits the function right-shifts the 16-bit pixel values.
04048 } DisplayMapping;
04049 
04050 typedef struct DetectExtremesOptions_struct {
04051     double threshold; //Defines which extremes are too small.
04052     int    width;     //Specifies the number of consecutive data points the function uses in the quadratic least-squares fit.
04053 } DetectExtremesOptions;
04054 
04055 typedef struct ImageInfo_struct {
04056     CalibrationUnit imageUnit;     //If you set calibration information with imaqSetSimpleCalibrationInfo(), imageUnit is the calibration unit.
04057     float           stepX;         //If you set calibration information with imaqSetCalibrationInfo(), stepX is the distance in the calibration unit between two pixels in the x direction.
04058     float           stepY;         //If you set calibration information with imaqSetCalibrationInfo(), stepY is the distance in the calibration unit between two pixels in the y direction.
04059     ImageType       imageType;     //The type of the image.
04060     int             xRes;          //The number of columns in the image.
04061     int             yRes;          //The number of rows in the image.
04062     int             xOffset;       //If you set mask offset information with imaqSetMaskOffset(), xOffset is the offset of the mask origin in the x direction.
04063     int             yOffset;       //If you set mask offset information with imaqSetMaskOffset(), yOffset is the offset of the mask origin in the y direction.
04064     int             border;        //The number of border pixels around the image.
04065     int             pixelsPerLine; //The number of pixels stored for each line of the image.
04066     void*           reserved0;     //This element is reserved.
04067     void*           reserved1;     //This element is reserved.
04068     void*           imageStart;    //A pointer to pixel (0,0).
04069 } ImageInfo;
04070 
04071 typedef struct LCDOptions_struct {
04072     int   litSegments;  //Set this parameter to TRUE if the segments are brighter than the background.
04073     float threshold;    //Determines whether a segment is ON or OFF.
04074     int   sign;         //Indicates whether the function must read the sign of the indicator.
04075     int   decimalPoint; //Determines whether to look for a decimal separator after each digit.
04076 } LCDOptions;
04077 
04078 typedef struct LCDReport_struct {
04079     const char*  text;          //A string of the characters of the LCD.
04080     LCDSegments* segmentInfo;   //An array of LCDSegment structures describing which segments of each digit are on.
04081     int          numCharacters; //The number of characters that the function reads.
04082     int          reserved;      //This element is reserved.
04083 } LCDReport;
04084 
04085 typedef struct LCDSegments_struct {
04086     unsigned a:1;         //True if the a segment is on.
04087     unsigned b:1;         //True if the b segment is on.
04088     unsigned c:1;         //True if the c segment is on.
04089     unsigned d:1;         //True if the d segment is on.
04090     unsigned e:1;         //True if the e segment is on.
04091     unsigned f:1;         //True if the f segment is on.
04092     unsigned g:1;         //True if the g segment is on.
04093     unsigned reserved:25; //This element is reserved.
04094 } LCDSegments;
04095 
04096 typedef struct LearnCalibrationOptions_struct {
04097     CalibrationMode mode;       //Specifies the type of algorithm you want to use to reduce distortion in your image.
04098     ScalingMethod   method;     //Defines the scaling method correction functions use to correct the image.
04099     CalibrationROI  roi;        //Specifies the ROI correction functions use when correcting an image.
04100     int             learnMap;   //Set this element to TRUE if you want the function to calculate and store an error map during the learning process.
04101     int             learnTable; //Set this element to TRUE if you want the function to calculate and store the correction table.
04102 } LearnCalibrationOptions;
04103 
04104 typedef struct LearnColorPatternOptions_struct {
04105     LearningMode      learnMode;         //Specifies the invariance mode the function uses when learning the pattern.
04106     ImageFeatureMode  featureMode;       //Specifies the features the function uses when learning the color pattern.
04107     int               threshold;         //Specifies the saturation threshold the function uses to distinguish between two colors that have the same hue values.
04108     ColorIgnoreMode   ignoreMode;        //Specifies whether the function excludes certain colors from the color features of the template image.
04109     ColorInformation* colorsToIgnore;    //An array of ColorInformation structures providing a set of colors to exclude from the color features of the template image.
04110     int               numColorsToIgnore; //The number of ColorInformation structures in the colorsToIgnore array.
04111 } LearnColorPatternOptions;
04112 
04113 typedef struct Line_struct {
04114     Point start; //The coordinate location of the start of the line.
04115     Point end;   //The coordinate location of the end of the line.
04116 } Line;
04117 
04118 typedef struct LinearAverages_struct {
04119     float* columnAverages;      //An array containing the mean pixel value of each column.
04120     int    columnCount;         //The number of elements in the columnAverages array.
04121     float* rowAverages;         //An array containing the mean pixel value of each row.
04122     int    rowCount;            //The number of elements in the rowAverages array.
04123     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.
04124     int    risingDiagCount;     //The number of elements in the risingDiagAverages array.
04125     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.
04126     int    fallingDiagCount;    //The number of elements in the fallingDiagAverages array.
04127 } LinearAverages;
04128 
04129 typedef struct LineProfile_struct {
04130     float* profileData; //An array containing the value of each pixel in the line.
04131     Rect   boundingBox; //The bounding rectangle of the line.
04132     float  min;         //The smallest pixel value in the line profile.
04133     float  max;         //The largest pixel value in the line profile.
04134     float  mean;        //The mean value of the pixels in the line profile.
04135     float  stdDev;      //The standard deviation of the line profile.
04136     int    dataCount;   //The size of the profileData array.
04137 } LineProfile;
04138 
04139 typedef struct MatchColorPatternOptions_struct {
04140     MatchingMode        matchMode;           //Specifies the method to use when looking for the color pattern in the image.
04141     ImageFeatureMode    featureMode;         //Specifies the features to use when looking for the color pattern in the image.
04142     int                 minContrast;         //Specifies the minimum contrast expected in the image.
04143     int                 subpixelAccuracy;    //Set this parameter to TRUE to return areas in the image that match the pattern area with subpixel accuracy.
04144     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.
04145     int                 numRanges;           //Number of angle ranges in the angleRanges array.
04146     double              colorWeight;         //Determines the percent contribution of the color score to the final color pattern matching score.
04147     ColorSensitivity    sensitivity;         //Specifies the sensitivity of the color information in the image.
04148     SearchStrategy      strategy;            //Specifies how the color features of the image are used during the search phase.
04149     int                 numMatchesRequested; //Number of valid matches expected.
04150     float               minMatchScore;       //The minimum score a match can have for the function to consider the match valid.
04151 } MatchColorPatternOptions;
04152 
04153 typedef struct HistogramReport_struct {
04154     int*  histogram;      //An array describing the number of pixels that fell into each class.
04155     int   histogramCount; //The number of elements in the histogram array.
04156     float min;            //The smallest pixel value that the function classified.
04157     float max;            //The largest pixel value that the function classified.
04158     float start;          //The smallest pixel value that fell into the first class.
04159     float width;          //The size of each class.
04160     float mean;           //The mean value of the pixels that the function classified.
04161     float stdDev;         //The standard deviation of the pixels that the function classified.
04162     int   numPixels;      //The number of pixels that the function classified.
04163 } HistogramReport;
04164 
04165 typedef struct ArcInfo_struct {
04166     Rect   boundingBox; //The coordinate location of the bounding box of the arc.
04167     double startAngle;  //The counterclockwise angle from the x-axis in degrees to the start of the arc.
04168     double endAngle;    //The counterclockwise angle from the x-axis in degrees to the end of the arc.
04169 } ArcInfo;
04170 
04171 typedef struct AxisReport_struct {
04172     PointFloat origin;           //The origin of the coordinate system, which is the intersection of the two axes of the coordinate system.
04173     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.
04174     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.
04175 } AxisReport;
04176 
04177 typedef struct BarcodeInfo_struct {
04178     const char* outputString;    //A string containing the decoded barcode data.
04179     int         size;            //The size of the output string.
04180     char        outputChar1;     //The contents of this character depend on the barcode type.
04181     char        outputChar2;     //The contents of this character depend on the barcode type.
04182     double      confidenceLevel; //A quality measure of the decoded barcode ranging from 0 to 100, with 100 being the best.
04183     BarcodeType type;            //The type of barcode.
04184 } BarcodeInfo;
04185 
04186 typedef struct BCGOptions_struct {
04187     float brightness; //Adjusts the brightness of the image.
04188     float contrast;   //Adjusts the contrast of the image.
04189     float gamma;      //Performs gamma correction.
04190 } BCGOptions;
04191 
04192 typedef struct BestCircle_struct {
04193     PointFloat center;    //The coordinate location of the center of the circle.
04194     double     radius;    //The radius of the circle.
04195     double     area;      //The area of the circle.
04196     double     perimeter; //The length of the perimeter of the circle.
04197     double     error;     //Represents the least square error of the fitted circle to the entire set of points.
04198 } BestCircle;
04199 
04200 typedef struct BestEllipse_struct {
04201     PointFloat center;         //The coordinate location of the center of the ellipse.
04202     PointFloat majorAxisStart; //The coordinate location of the start of the major axis of the ellipse.
04203     PointFloat majorAxisEnd;   //The coordinate location of the end of the major axis of the ellipse.
04204     PointFloat minorAxisStart; //The coordinate location of the start of the minor axis of the ellipse.
04205     PointFloat minorAxisEnd;   //The coordinate location of the end of the minor axis of the ellipse.
04206     double     area;           //The area of the ellipse.
04207     double     perimeter;      //The length of the perimeter of the ellipse.
04208 } BestEllipse;
04209 
04210 typedef struct BestLine_struct {
04211     PointFloat   start;         //The coordinate location of the start of the line.
04212     PointFloat   end;           //The coordinate location of the end of the line.
04213     LineEquation equation;      //Defines the three coefficients of the equation of the best fit line.
04214     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.
04215     double       error;         //Represents the least square error of the fitted line to the entire set of points.
04216     int*         pointsUsed;    //An array of the indexes for the points array indicating which points the function used to fit the line.
04217     int          numPointsUsed; //The number of points the function used to fit the line.
04218 } BestLine;
04219 
04220 typedef struct BrowserOptions_struct {
04221     int               width;           //The width to make the browser.
04222     int               height;          //The height to make the browser image.
04223     int               imagesPerLine;   //The number of images to place on a single line.
04224     RGBValue          backgroundColor; //The background color of the browser.
04225     int               frameSize;       //Specifies the number of pixels with which to border each thumbnail.
04226     BrowserFrameStyle style;           //The style for the frame around each thumbnail.
04227     float             ratio;           //Specifies the width to height ratio of each thumbnail.
04228     RGBValue          focusColor;      //The color to use to display focused cells.
04229 } BrowserOptions;
04230 
04231 typedef struct CoordinateSystem_struct {
04232     PointFloat      origin;          //The origin of the coordinate system.
04233     float           angle;           //The angle, in degrees, of the x-axis of the coordinate system relative to the image x-axis.
04234     AxisOrientation axisOrientation; //The direction of the y-axis of the coordinate reference system.
04235 } CoordinateSystem;
04236 
04237 typedef struct CalibrationInfo_struct {
04238     float*                  errorMap;       //The error map for the calibration.
04239     int                     mapColumns;     //The number of columns in the error map.
04240     int                     mapRows;        //The number of rows in the error map.
04241     ROI*                    userRoi;        //Specifies the ROI the user provided when learning the calibration.
04242     ROI*                    calibrationRoi; //Specifies the ROI that corresponds to the region of the image where the calibration information is accurate.
04243     LearnCalibrationOptions options;        //Specifies the calibration options the user provided when learning the calibration.
04244     GridDescriptor          grid;           //Specifies the scaling constants for the image.
04245     CoordinateSystem        system;         //Specifies the coordinate system for the real world coordinates.
04246     RangeFloat              range;          //The range of the grayscale the function used to represent the circles in the grid image.
04247     float                   quality;        //The quality score of the learning process, which is a value between 0-1000.
04248 } CalibrationInfo;
04249 
04250 typedef struct CalibrationPoints_struct {
04251     PointFloat* pixelCoordinates;     //The array of pixel coordinates.
04252     PointFloat* realWorldCoordinates; //The array of corresponding real-world coordinates.
04253     int         numCoordinates;       //The number of coordinates in both of the arrays.
04254 } CalibrationPoints;
04255 
04256 typedef struct CaliperOptions_struct {
04257     TwoEdgePolarityType polarity;            //Specifies the edge polarity of the edge pairs.
04258     float               separation;          //The distance between edge pairs.
04259     float               separationDeviation; //Sets the range around the separation value.
04260 } CaliperOptions;
04261 
04262 typedef struct CaliperReport_struct {
04263     float      edge1Contrast; //The contrast of the first edge.
04264     PointFloat edge1Coord;    //The coordinates of the first edge.
04265     float      edge2Contrast; //The contrast of the second edge.
04266     PointFloat edge2Coord;    //The coordinates of the second edge.
04267     float      separation;    //The distance between the two edges.
04268     float      reserved;      //This element is reserved.
04269 } CaliperReport;
04270 
04271 typedef struct DrawTextOptions_struct {
04272     char          fontName[32];  //The font name to use.
04273     int           fontSize;      //The size of the font.
04274     int           bold;          //Set this parameter to TRUE to bold text.
04275     int           italic;        //Set this parameter to TRUE to italicize text.
04276     int           underline;     //Set this parameter to TRUE to underline text.
04277     int           strikeout;     //Set this parameter to TRUE to strikeout text.
04278     TextAlignment textAlignment; //Sets the alignment of text.
04279     FontColor     fontColor;     //Sets the font color.
04280 } DrawTextOptions;
04281 
04282 typedef struct CircleReport_struct {
04283     Point center; //The coordinate point of the center of the circle.
04284     int   radius; //The radius of the circle, in pixels.
04285     int   area;   //The area of the circle, in pixels.
04286 } CircleReport;
04287 
04288 typedef struct ClosedContour_struct {
04289     Point* points;    //The points that make up the closed contour.
04290     int    numPoints; //The number of points in the array.
04291 } ClosedContour;
04292 
04293 typedef struct ColorHistogramReport_struct {
04294     HistogramReport plane1; //The histogram report of the first color plane.
04295     HistogramReport plane2; //The histogram report of the second plane.
04296     HistogramReport plane3; //The histogram report of the third plane.
04297 } ColorHistogramReport;
04298 
04299 typedef struct ColorInformation_struct {
04300     int     infoCount;  //The size of the info array.
04301     int     saturation; //The saturation level the function uses to learn the color information.
04302     double* info;       //An array of color information that represents the color spectrum analysis of a region of an image in a compact form.
04303 } ColorInformation;
04304 
04305 typedef struct Complex_struct {
04306     float r; //The real part of the value.
04307     float i; //The imaginary part of the value.
04308 } Complex;
04309 
04310 typedef struct ConcentricRakeReport_struct {
04311     ArcInfo*            rakeArcs;          //An array containing the location of each concentric arc line used for edge detection.
04312     int                 numArcs;           //The number of arc lines in the rakeArcs array.
04313     PointFloat*         firstEdges;        //The coordinate location of all edges detected as first edges.
04314     int                 numFirstEdges;     //The number of points in the first edges array.
04315     PointFloat*         lastEdges;         //The coordinate location of all edges detected as last edges.
04316     int                 numLastEdges;      //The number of points in the last edges array.
04317     EdgeLocationReport* allEdges;          //An array of reports describing the location of the edges located by each concentric rake arc line.
04318     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.
04319     int                 numLinesWithEdges; //The number of concentric rake arc lines along which the function detected edges.
04320 } ConcentricRakeReport;
04321 
04322 typedef struct ConstructROIOptions_struct {
04323     int         windowNumber; //The window number of the image window.
04324     const char* windowTitle;  //Specifies the message string that the function displays in the title bar of the window.
04325     PaletteType type;         //The palette type to use.
04326     RGBValue*   palette;      //If type is IMAQ_PALETTE_USER, this array is the palette of colors to use with the window.
04327     int         numColors;    //If type is IMAQ_PALETTE_USER, this element is the number of colors in the palette array.
04328 } ConstructROIOptions;
04329 
04330 typedef struct ContourInfo_struct {
04331     ContourType type;         //The contour type.
04332     unsigned    numPoints;    //The number of points that make up the contour.
04333     Point*      points;       //The points describing the contour.
04334     RGBValue    contourColor; //The contour color.
04335 } ContourInfo;
04336 
04337 typedef union ContourUnion_union {
04338     Point*         point;           //Use this member when the contour is of type IMAQ_POINT.
04339     Line*          line;            //Use this member when the contour is of type IMAQ_LINE.
04340     Rect*          rect;            //Use this member when the contour is of type IMAQ_RECT.
04341     Rect*          ovalBoundingBox; //Use this member when the contour is of type IMAQ_OVAL.
04342     ClosedContour* closedContour;   //Use this member when the contour is of type IMAQ_CLOSED_CONTOUR.
04343     OpenContour*   openContour;     //Use this member when the contour is of type IMAQ_OPEN_CONTOUR.
04344     Annulus*       annulus;         //Use this member when the contour is of type IMAQ_ANNULUS.
04345     RotatedRect*   rotatedRect;     //Use this member when the contour is of type IMAQ_ROTATED_RECT.
04346 } ContourUnion;
04347 
04348 typedef struct ContourInfo2_struct {
04349     ContourType  type;      //The contour type.
04350     RGBValue     color;     //The contour color.
04351     ContourUnion structure; //The information necessary to describe the contour in coordinate space.
04352 } ContourInfo2;
04353 
04354 typedef struct ContourPoint_struct {
04355     double x;             //The x-coordinate value in the image.
04356     double y;             //The y-coordinate value in the image.
04357     double curvature;     //The change in slope at this edge point of the segment.
04358     double xDisplacement; //The x displacement of the current edge pixel from a cubic spline fit of the current edge segment.
04359     double yDisplacement; //The y displacement of the current edge pixel from a cubic spline fit of the current edge segment.
04360 } ContourPoint;
04361 
04362 typedef struct CoordinateTransform_struct {
04363     Point initialOrigin; //The origin of the initial coordinate system.
04364     float initialAngle;  //The angle, in degrees, of the x-axis of the initial coordinate system relative to the image x-axis.
04365     Point finalOrigin;   //The origin of the final coordinate system.
04366     float finalAngle;    //The angle, in degrees, of the x-axis of the final coordinate system relative to the image x-axis.
04367 } CoordinateTransform;
04368 
04369 typedef struct CoordinateTransform2_struct {
04370     CoordinateSystem referenceSystem;   //Defines the coordinate system for input coordinates.
04371     CoordinateSystem measurementSystem; //Defines the coordinate system in which the function should perform measurements.
04372 } CoordinateTransform2;
04373 
04374 typedef struct CannyOptions_struct {
04375     float sigma;          //The sigma of the Gaussian smoothing filter that the function applies to the image before edge detection.
04376     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.
04377     float lowerThreshold; //The function multiplies this value by upperThreshold to determine the lower threshold for all the pixels in an edge segment.
04378     int   windowSize;     //The window size of the Gaussian filter that the function applies to the image.
04379 } CannyOptions;
04380 
04381 typedef struct Range_struct {
04382     int minValue; //The minimum value of the range.
04383     int maxValue; //The maximum value of the range.
04384 } Range;
04385 
04386 typedef struct UserPointSymbol_struct {
04387     int  cols;   //Number of columns in the symbol.
04388     int  rows;   //Number of rows in the symbol.
04389     int* pixels; //The pixels of the symbol.
04390 } UserPointSymbol;
04391 
04392 typedef struct View3DOptions_struct {
04393     int         sizeReduction; //A divisor the function uses when determining the final height and width of the 3D image.
04394     int         maxHeight;     //Defines the maximum height of a pixel from the image source drawn in 3D.
04395     Direction3D direction;     //Defines the 3D orientation.
04396     float       alpha;         //Determines the angle between the horizontal and the baseline.
04397     float       beta;          //Determines the angle between the horizontal and the second baseline.
04398     int         border;        //Defines the border size.
04399     int         background;    //Defines the background color.
04400     Plane3D     plane;         //Indicates the view a function uses to show complex images.
04401 } View3DOptions;
04402 
04403 typedef struct MatchPatternOptions_struct {
04404     MatchingMode        mode;                //Specifies the method to use when looking for the pattern in the image.
04405     int                 minContrast;         //Specifies the minimum contrast expected in the image.
04406     int                 subpixelAccuracy;    //Set this element to TRUE to return areas in the image that match the pattern area with subpixel accuracy.
04407     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.
04408     int                 numRanges;           //Number of angle ranges in the angleRanges array.
04409     int                 numMatchesRequested; //Number of valid matches expected.
04410     int                 matchFactor;         //Controls the number of potential matches that the function examines.
04411     float               minMatchScore;       //The minimum score a match can have for the function to consider the match valid.
04412 } MatchPatternOptions;
04413 
04414 typedef struct TIFFFileOptions_struct {
04415     int                 rowsPerStrip;    //Indicates the number of rows that the function writes per strip.
04416     PhotometricMode     photoInterp;     //Designates which photometric interpretation to use.
04417     TIFFCompressionType compressionType; //Indicates the type of compression to use on the TIFF file.
04418 } TIFFFileOptions;
04419 
04420 typedef union Color_union {
04421     RGBValue rgb;      //The information needed to describe a color in the RGB (Red, Green, and Blue) color space.
04422     HSLValue hsl;      //The information needed to describe a color in the HSL (Hue, Saturation, and Luminance) color space.
04423     HSVValue hsv;      //The information needed to describe a color in the HSI (Hue, Saturation, and Value) color space.
04424     HSIValue hsi;      //The information needed to describe a color in the HSI (Hue, Saturation, and Intensity) color space.
04425     int      rawValue; //The integer value for the data in the color union.
04426 } Color;
04427 
04428 typedef union PixelValue_union {
04429     float       grayscale; //A grayscale pixel value.
04430     RGBValue    rgb;       //A RGB pixel value.
04431     HSLValue    hsl;       //A HSL pixel value.
04432     Complex     complex;   //A complex pixel value.
04433     RGBU64Value rgbu64;    //An unsigned 64-bit RGB pixel value.
04434 } PixelValue;
04435 
04436 typedef struct OpenContour_struct {
04437     Point* points;    //The points that make up the open contour.
04438     int    numPoints; //The number of points in the array.
04439 } OpenContour;
04440 
04441 typedef struct OverlayTextOptions_struct {
04442     const char*           fontName;                //The name of the font to use.
04443     int                   fontSize;                //The size of the font.
04444     int                   bold;                    //Set this element to TRUE to bold the text.
04445     int                   italic;                  //Set this element to TRUE to italicize the text.
04446     int                   underline;               //Set this element to TRUE to underline the text.
04447     int                   strikeout;               //Set this element to TRUE to strikeout the text.
04448     TextAlignment         horizontalTextAlignment; //Sets the alignment of the text.
04449     VerticalTextAlignment verticalTextAlignment;   //Sets the vertical alignment for the text.
04450     RGBValue              backgroundColor;         //Sets the color for the text background pixels.
04451     double                angle;                   //The counterclockwise angle, in degrees, of the text relative to the x-axis.
04452 } OverlayTextOptions;
04453 
04454 typedef struct ParticleFilterCriteria_struct {
04455     MeasurementValue parameter; //The morphological measurement that the function uses for filtering.
04456     float            lower;     //The lower bound of the criteria range.
04457     float            upper;     //The upper bound of the criteria range.
04458     int              exclude;   //Set this element to TRUE to indicate that a match occurs when the value is outside the criteria range.
04459 } ParticleFilterCriteria;
04460 
04461 typedef struct ParticleReport_struct {
04462     int   area;             //The number of pixels in the particle.
04463     float calibratedArea;   //The size of the particle, calibrated to the calibration information of the image.
04464     float perimeter;        //The length of the perimeter, calibrated to the calibration information of the image.
04465     int   numHoles;         //The number of holes in the particle.
04466     int   areaOfHoles;      //The total surface area, in pixels, of all the holes in a particle.
04467     float perimeterOfHoles; //The length of the perimeter of all the holes in the particle calibrated to the calibration information of the image.
04468     Rect  boundingBox;      //The smallest rectangle that encloses the particle.
04469     float sigmaX;           //The sum of the particle pixels on the x-axis.
04470     float sigmaY;           //The sum of the particle pixels on the y-axis.
04471     float sigmaXX;          //The sum of the particle pixels on the x-axis, squared.
04472     float sigmaYY;          //The sum of the particle pixels on the y-axis, squared.
04473     float sigmaXY;          //The sum of the particle pixels on the x-axis and y-axis.
04474     int   longestLength;    //The length of the longest horizontal line segment.
04475     Point longestPoint;     //The location of the leftmost pixel of the longest segment in the particle.
04476     int   projectionX;      //The length of the particle when projected onto the x-axis.
04477     int   projectionY;      //The length of the particle when projected onto the y-axis.
04478     int   connect8;         //This element is TRUE if the function used connectivity-8 to determine if particles are touching.
04479 } ParticleReport;
04480 
04481 typedef struct PatternMatch_struct {
04482     PointFloat position;  //The location of the center of the match.
04483     float      rotation;  //The rotation of the match relative to the template image, in degrees.
04484     float      scale;     //The size of the match relative to the size of the template image, expressed as a percentage.
04485     float      score;     //The accuracy of the match.
04486     PointFloat corner[4]; //An array of four points describing the rectangle surrounding the template image.
04487 } PatternMatch;
04488 
04489 typedef struct QuantifyData_struct {
04490     float mean;           //The mean value of the pixel values.
04491     float stdDev;         //The standard deviation of the pixel values.
04492     float min;            //The smallest pixel value.
04493     float max;            //The largest pixel value.
04494     float calibratedArea; //The area, calibrated to the calibration information of the image.
04495     int   pixelArea;      //The area, in number of pixels.
04496     float relativeSize;   //The proportion, expressed as a percentage, of the associated region relative to the whole image.
04497 } QuantifyData;
04498 
04499 typedef struct QuantifyReport_struct {
04500     QuantifyData  global;      //Statistical data of the whole image.
04501     QuantifyData* regions;     //An array of QuantifyData structures containing statistical data of each region of the image.
04502     int           regionCount; //The number of regions.
04503 } QuantifyReport;
04504 
04505 typedef struct RakeOptions_struct {
04506     int                 threshold;         //Specifies the threshold value for the contrast of the edge.
04507     int                 width;             //The number of pixels that the function averages to find the contrast at either side of the edge.
04508     int                 steepness;         //The span, in pixels, of the slope of the edge projected along the path specified by the input points.
04509     int                 subsamplingRatio;  //Specifies the number of pixels that separate two consecutive search lines.
04510     InterpolationMethod subpixelType;      //The method for interpolating.
04511     int                 subpixelDivisions; //The number of samples the function obtains from a pixel.
04512 } RakeOptions;
04513 
04514 typedef struct RakeReport_struct {
04515     LineFloat*          rakeLines;         //The coordinate location of each of the rake lines used by the function.
04516     int                 numRakeLines;      //The number of lines in the rakeLines array.
04517     PointFloat*         firstEdges;        //The coordinate location of all edges detected as first edges.
04518     unsigned int        numFirstEdges;     //The number of points in the firstEdges array.
04519     PointFloat*         lastEdges;         //The coordinate location of all edges detected as last edges.
04520     unsigned int        numLastEdges;      //The number of points in the lastEdges array.
04521     EdgeLocationReport* allEdges;          //An array of reports describing the location of the edges located by each rake line.
04522     int*                linesWithEdges;    //An array of indices into the rakeLines array indicating the rake lines on which the function detected at least one edge.
04523     int                 numLinesWithEdges; //The number of rake lines along which the function detected edges.
04524 } RakeReport;
04525 
04526 typedef struct TransformReport_struct {
04527     PointFloat* points;      //An array of transformed coordinates.
04528     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().
04529     int         numPoints;   //The length of both the points array and the validPoints array.
04530 } TransformReport;
04531 
04532 typedef struct ShapeReport_struct {
04533     Rect   coordinates; //The bounding rectangle of the object.
04534     Point  centroid;    //The coordinate location of the centroid of the object.
04535     int    size;        //The size, in pixels, of the object.
04536     double score;       //A value ranging between 1 and 1,000 that specifies how similar the object in the image is to the template.
04537 } ShapeReport;
04538 
04539 typedef struct MeterArc_struct {
04540     PointFloat  needleBase;          //The coordinate location of the base of the meter needle.
04541     PointFloat* arcCoordPoints;      //An array of points describing the coordinate location of the meter arc.
04542     int         numOfArcCoordPoints; //The number of points in the arcCoordPoints array.
04543     int         needleColor;         //This element is TRUE when the meter has a light-colored needle on a dark background.
04544 } MeterArc;
04545 
04546 typedef struct ThresholdData_struct {
04547     float rangeMin;    //The lower boundary of the range to keep.
04548     float rangeMax;    //The upper boundary of the range to keep.
04549     float newValue;    //If useNewValue is TRUE, newValue is the replacement value for pixels within the range.
04550     int   useNewValue; //If TRUE, the function sets pixel values within [rangeMin, rangeMax] to the value specified in newValue.
04551 } ThresholdData;
04552 
04553 typedef struct StructuringElement_struct {
04554     int  matrixCols; //Number of columns in the matrix.
04555     int  matrixRows; //Number of rows in the matrix.
04556     int  hexa;       //Set this element to TRUE if you specify a hexagonal structuring element in kernel.
04557     int* kernel;     //The values of the structuring element.
04558 } StructuringElement;
04559 
04560 typedef struct SpokeReport_struct {
04561     LineFloat*          spokeLines;        //The coordinate location of each of the spoke lines used by the function.
04562     int                 numSpokeLines;     //The number of lines in the spokeLines array.
04563     PointFloat*         firstEdges;        //The coordinate location of all edges detected as first edges.
04564     int                 numFirstEdges;     //The number of points in the firstEdges array.
04565     PointFloat*         lastEdges;         //The coordinate location of all edges detected as last edges.
04566     int                 numLastEdges;      //The number of points in the lastEdges array.
04567     EdgeLocationReport* allEdges;          //An array of reports describing the location of the edges located by each spoke line.
04568     int*                linesWithEdges;    //An array of indices into the spokeLines array indicating the rake lines on which the function detected at least one edge.
04569     int                 numLinesWithEdges; //The number of spoke lines along which the function detects edges.
04570 } SpokeReport;
04571 
04572 typedef struct SimpleEdgeOptions_struct {
04573     LevelType   type;       //Determines how the function evaluates the threshold and hysteresis values.
04574     int         threshold;  //The pixel value at which an edge occurs.
04575     int         hysteresis; //A value that helps determine edges in noisy images.
04576     EdgeProcess process;    //Determines which edges the function looks for.
04577     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.
04578 } SimpleEdgeOptions;
04579 
04580 typedef struct SelectParticleCriteria_struct {
04581     MeasurementValue parameter; //The morphological measurement that the function uses for filtering.
04582     float            lower;     //The lower boundary of the criteria range.
04583     float            upper;     //The upper boundary of the criteria range.
04584 } SelectParticleCriteria;
04585 
04586 typedef struct SegmentInfo_struct {
04587     int           numberOfPoints; //The number of points in the segment.
04588     int           isOpen;         //If TRUE, the contour is open.
04589     double        weight;         //The significance of the edge in terms of the gray values that constitute the edge.
04590     ContourPoint* points;         //The points of the segment.
04591 } SegmentInfo;
04592 
04593 typedef struct RotationAngleRange_struct {
04594     float lower; //The lowest amount of rotation, in degrees, a valid pattern can have.
04595     float upper; //The highest amount of rotation, in degrees, a valid pattern can have.
04596 } RotationAngleRange;
04597 
04598 typedef struct RotatedRect_struct {
04599     int    top;    //Location of the top edge of the rectangle before rotation.
04600     int    left;   //Location of the left edge of the rectangle before rotation.
04601     int    height; //Height of the rectangle.
04602     int    width;  //Width of the rectangle.
04603     double angle;  //The rotation, in degrees, of the rectangle.
04604 } RotatedRect;
04605 
04606 typedef struct ROIProfile_struct {
04607     LineProfile report; //Quantifying information about the points along the edge of each contour in the ROI.
04608     Point*      pixels; //An array of the points along the edge of each contour in the ROI.
04609 } ROIProfile;
04610 
04611 typedef struct ToolWindowOptions_struct {
04612     int showSelectionTool;        //If TRUE, the selection tool becomes visible.
04613     int showZoomTool;             //If TRUE, the zoom tool becomes visible.
04614     int showPointTool;            //If TRUE, the point tool becomes visible.
04615     int showLineTool;             //If TRUE, the line tool becomes visible.
04616     int showRectangleTool;        //If TRUE, the rectangle tool becomes visible.
04617     int showOvalTool;             //If TRUE, the oval tool becomes visible.
04618     int showPolygonTool;          //If TRUE, the polygon tool becomes visible.
04619     int showClosedFreehandTool;   //If TRUE, the closed freehand tool becomes visible.
04620     int showPolyLineTool;         //If TRUE, the polyline tool becomes visible.
04621     int showFreehandTool;         //If TRUE, the freehand tool becomes visible.
04622     int showAnnulusTool;          //If TRUE, the annulus becomes visible.
04623     int showRotatedRectangleTool; //If TRUE, the rotated rectangle tool becomes visible.
04624     int showPanTool;              //If TRUE, the pan tool becomes visible.
04625     int showZoomOutTool;          //If TRUE, the zoom out tool becomes visible.
04626     int reserved2;                //This element is reserved and should be set to FALSE.
04627     int reserved3;                //This element is reserved and should be set to FALSE.
04628     int reserved4;                //This element is reserved and should be set to FALSE.
04629 } ToolWindowOptions;
04630 
04631 typedef struct SpokeOptions_struct {
04632     int                 threshold;         //Specifies the threshold value for the contrast of the edge.
04633     int                 width;             //The number of pixels that the function averages to find the contrast at either side of the edge.
04634     int                 steepness;         //The span, in pixels, of the slope of the edge projected along the path specified by the input points.
04635     double              subsamplingRatio;  //The angle, in degrees, between each radial search line in the spoke.
04636     InterpolationMethod subpixelType;      //The method for interpolating.
04637     int                 subpixelDivisions; //The number of samples the function obtains from a pixel.
04638 } SpokeOptions;
04639 
04640 #if !defined __GNUC__ && !defined _M_X64
04641 #pragma pack(pop)
04642 #endif
04643 
04644 //============================================================================
04645 // Callback Function Type
04646 //============================================================================
04647 #ifndef __GNUC__
04648 typedef void (IMAQ_CALLBACK* EventCallback)(WindowEventType event, int windowNumber, Tool tool, Rect rect);
04649 #endif
04650 
04651 //============================================================================
04652 //  Globals
04653 //============================================================================
04654 #ifndef __GNUC__
04655 #pragma const_seg("IMAQVisionColorConstants")
04656 #endif
04657 static const RGBValue IMAQ_RGB_TRANSPARENT = {   0,   0,   0, 1 };
04658 static const RGBValue IMAQ_RGB_RED         = {   0,   0, 255, 0 };
04659 static const RGBValue IMAQ_RGB_BLUE        = { 255,   0,   0, 0 };
04660 static const RGBValue IMAQ_RGB_GREEN       = {   0, 255,   0, 0 };
04661 static const RGBValue IMAQ_RGB_YELLOW      = {   0, 255, 255, 0 };
04662 static const RGBValue IMAQ_RGB_WHITE       = { 255, 255, 255, 0 };
04663 static const RGBValue IMAQ_RGB_BLACK       = {   0,   0,   0, 0 };
04664 #ifndef __GNUC__
04665 #pragma const_seg()
04666 #endif
04667 
04668 //============================================================================
04669 //  Backwards Compatibility
04670 //============================================================================
04671 typedef ColorSensitivity                ColorComplexity;
04672 #define IMAQ_COMPLEXITY_LOW             IMAQ_SENSITIVITY_LOW
04673 #define IMAQ_COMPLEXITY_MED             IMAQ_SENSITIVITY_MED     
04674 #define IMAQ_COMPLEXITY_HIGH            IMAQ_SENSITIVITY_HIGH
04675 #define ERR_INVALID_COLORCOMPLEXITY     ERR_INVALID_COLORSENSITIVITY
04676 
04677 //============================================================================
04678 //  Logical functions
04679 //============================================================================
04680 IMAQ_FUNC int IMAQ_STDCALL imaqAnd(Image* dest, const Image* sourceA, const Image* sourceB);
04681 IMAQ_FUNC int IMAQ_STDCALL imaqAndConstant(Image* dest, const Image* source, PixelValue value);
04682 IMAQ_FUNC int IMAQ_STDCALL imaqCompare(Image* dest, const Image* source, const Image* compareImage, ComparisonFunction compare);
04683 IMAQ_FUNC int IMAQ_STDCALL imaqCompareConstant(Image* dest, const Image* source, PixelValue value, ComparisonFunction compare);
04684 IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifference(Image* dest, const Image* sourceA, const Image* sourceB);
04685 IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifferenceConstant(Image* dest, const Image* source, PixelValue value);
04686 IMAQ_FUNC int IMAQ_STDCALL imaqNand(Image* dest, const Image* sourceA, const Image* sourceB);
04687 IMAQ_FUNC int IMAQ_STDCALL imaqNandConstant(Image* dest, const Image* source, PixelValue value);
04688 IMAQ_FUNC int IMAQ_STDCALL imaqNor(Image* dest, const Image* sourceA, const Image* sourceB);
04689 IMAQ_FUNC int IMAQ_STDCALL imaqNorConstant(Image* dest, const Image* source, PixelValue value);
04690 IMAQ_FUNC int IMAQ_STDCALL imaqOr(Image* dest, const Image* sourceA, const Image* sourceB);
04691 IMAQ_FUNC int IMAQ_STDCALL imaqOrConstant(Image* dest, const Image* source, PixelValue value);
04692 IMAQ_FUNC int IMAQ_STDCALL imaqXnor(Image* dest, const Image* sourceA, const Image* sourceB);
04693 IMAQ_FUNC int IMAQ_STDCALL imaqXnorConstant(Image* dest, const Image* source, PixelValue value);
04694 IMAQ_FUNC int IMAQ_STDCALL imaqXor(Image* dest, const Image* sourceA, const Image* sourceB);
04695 IMAQ_FUNC int IMAQ_STDCALL imaqXorConstant(Image* dest, const Image* source, PixelValue value);
04696 
04697 //============================================================================
04698 //  Particle Analysis functions
04699 //============================================================================
04700 IMAQ_FUNC int                     IMAQ_STDCALL imaqCountParticles(Image* image, int connectivity8, int* numParticles);
04701 IMAQ_FUNC int                     IMAQ_STDCALL imaqMeasureParticle(Image* image, int particleNumber, int calibrated, MeasurementType measurement, double* value);
04702 IMAQ_FUNC MeasureParticlesReport* IMAQ_STDCALL imaqMeasureParticles(Image* image, MeasureParticlesCalibrationMode calibrationMode, const MeasurementType* measurements, size_t numMeasurements);
04703 IMAQ_FUNC int                     IMAQ_STDCALL imaqParticleFilter4(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, const ParticleFilterOptions2* options, const ROI* roi, int* numParticles);
04704 
04705 //============================================================================
04706 //  Morphology functions
04707 //============================================================================
04708 IMAQ_FUNC int           IMAQ_STDCALL imaqConvexHull(Image* dest, Image* source, int connectivity8);
04709 IMAQ_FUNC int           IMAQ_STDCALL imaqDanielssonDistance(Image* dest, Image* source);
04710 IMAQ_FUNC int           IMAQ_STDCALL imaqFillHoles(Image* dest, const Image* source, int connectivity8);
04711 IMAQ_FUNC CircleReport* IMAQ_STDCALL imaqFindCircles(Image* dest, Image* source, float minRadius, float maxRadius, int* numCircles);
04712 IMAQ_FUNC int           IMAQ_STDCALL imaqLabel2(Image* dest, Image* source, int connectivity8, int* particleCount);
04713 IMAQ_FUNC int           IMAQ_STDCALL imaqMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
04714 IMAQ_FUNC int           IMAQ_STDCALL imaqRejectBorder(Image* dest, Image* source, int connectivity8);
04715 IMAQ_FUNC int           IMAQ_STDCALL imaqSegmentation(Image* dest, Image* source);
04716 IMAQ_FUNC int           IMAQ_STDCALL imaqSeparation(Image* dest, Image* source, int erosions, const StructuringElement* structuringElement);
04717 IMAQ_FUNC int           IMAQ_STDCALL imaqSimpleDistance(Image* dest, Image* source, const StructuringElement* structuringElement);
04718 IMAQ_FUNC int           IMAQ_STDCALL imaqSizeFilter(Image* dest, Image* source, int connectivity8, int erosions, SizeType keepSize, const StructuringElement* structuringElement);
04719 IMAQ_FUNC int           IMAQ_STDCALL imaqSkeleton(Image* dest, Image* source, SkeletonMethod method);
04720 
04721 
04722 //============================================================================
04723 //  Acquisition functions
04724 //============================================================================
04725 IMAQ_FUNC Image* IMAQ_STDCALL imaqCopyFromRing(SESSION_ID sessionID, Image* image, int imageToCopy, int* imageNumber, Rect rect);
04726 IMAQ_FUNC Image* IMAQ_STDCALL imaqEasyAcquire(const char* interfaceName);
04727 IMAQ_FUNC Image* IMAQ_STDCALL imaqExtractFromRing(SESSION_ID sessionID, int imageToExtract, int* imageNumber);
04728 IMAQ_FUNC Image* IMAQ_STDCALL imaqGrab(SESSION_ID sessionID, Image* image, int immediate);
04729 IMAQ_FUNC int    IMAQ_STDCALL imaqReleaseImage(SESSION_ID sessionID);
04730 IMAQ_FUNC int    IMAQ_STDCALL imaqSetupGrab(SESSION_ID sessionID, Rect rect);
04731 IMAQ_FUNC int    IMAQ_STDCALL imaqSetupRing(SESSION_ID sessionID, Image** images, int numImages, int skipCount, Rect rect);
04732 IMAQ_FUNC int    IMAQ_STDCALL imaqSetupSequence(SESSION_ID sessionID, Image** images, int numImages, int skipCount, Rect rect);
04733 IMAQ_FUNC Image* IMAQ_STDCALL imaqSnap(SESSION_ID sessionID, Image* image, Rect rect);
04734 IMAQ_FUNC int    IMAQ_STDCALL imaqStartAcquisition(SESSION_ID sessionID);
04735 IMAQ_FUNC int    IMAQ_STDCALL imaqStopAcquisition(SESSION_ID sessionID);
04736 
04737 //============================================================================
04738 //  Arithmetic functions
04739 //============================================================================
04740 IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifference(Image* dest, const Image* sourceA, const Image* sourceB);
04741 IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifferenceConstant(Image* dest, const Image* source, PixelValue value);
04742 IMAQ_FUNC int IMAQ_STDCALL imaqAdd(Image* dest, const Image* sourceA, const Image* sourceB);
04743 IMAQ_FUNC int IMAQ_STDCALL imaqAddConstant(Image* dest, const Image* source, PixelValue value);
04744 IMAQ_FUNC int IMAQ_STDCALL imaqAverage(Image* dest, const Image* sourceA, const Image* sourceB);
04745 IMAQ_FUNC int IMAQ_STDCALL imaqAverageConstant(Image* dest, const Image* source, PixelValue value);
04746 IMAQ_FUNC int IMAQ_STDCALL imaqDivide2(Image* dest, const Image* sourceA, const Image* sourceB, RoundingMode roundingMode);
04747 IMAQ_FUNC int IMAQ_STDCALL imaqDivideConstant2(Image* dest, const Image* source, PixelValue value, RoundingMode roundingMode);
04748 IMAQ_FUNC int IMAQ_STDCALL imaqMax(Image* dest, const Image* sourceA, const Image* sourceB);
04749 IMAQ_FUNC int IMAQ_STDCALL imaqMaxConstant(Image* dest, const Image* source, PixelValue value);
04750 IMAQ_FUNC int IMAQ_STDCALL imaqMin(Image* dest, const Image* sourceA, const Image* sourceB);
04751 IMAQ_FUNC int IMAQ_STDCALL imaqMinConstant(Image* dest, const Image* source, PixelValue value);
04752 IMAQ_FUNC int IMAQ_STDCALL imaqModulo(Image* dest, const Image* sourceA, const Image* sourceB);
04753 IMAQ_FUNC int IMAQ_STDCALL imaqModuloConstant(Image* dest, const Image* source, PixelValue value);
04754 IMAQ_FUNC int IMAQ_STDCALL imaqMulDiv(Image* dest, const Image* sourceA, const Image* sourceB, float value);
04755 IMAQ_FUNC int IMAQ_STDCALL imaqMultiply(Image* dest, const Image* sourceA, const Image* sourceB);
04756 IMAQ_FUNC int IMAQ_STDCALL imaqMultiplyConstant(Image* dest, const Image* source, PixelValue value);
04757 IMAQ_FUNC int IMAQ_STDCALL imaqSubtract(Image* dest, const Image* sourceA, const Image* sourceB);
04758 IMAQ_FUNC int IMAQ_STDCALL imaqSubtractConstant(Image* dest, const Image* source, PixelValue value);
04759 
04760 //============================================================================
04761 //  Caliper functions
04762 //============================================================================
04763 IMAQ_FUNC CaliperReport*         IMAQ_STDCALL imaqCaliperTool(const Image* image, const Point* points, int numPoints, const EdgeOptions* edgeOptions, const CaliperOptions* caliperOptions, int* numEdgePairs);
04764 IMAQ_FUNC ConcentricRakeReport2* IMAQ_STDCALL imaqConcentricRake2(Image* image, ROI* roi, ConcentricRakeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
04765 IMAQ_FUNC ExtremeReport*         IMAQ_STDCALL imaqDetectExtremes(const double* pixels, int numPixels, DetectionMode mode, const DetectExtremesOptions* options, int* numExtremes);
04766 IMAQ_FUNC int                    IMAQ_STDCALL imaqDetectRotation(const Image* referenceImage, const Image* testImage, PointFloat referenceCenter, PointFloat testCenter, int radius, float precision, double* angle);
04767 IMAQ_FUNC EdgeReport2*           IMAQ_STDCALL imaqEdgeTool4(Image* image, ROI* roi, EdgeProcess processType, EdgeOptions2* edgeOptions, const unsigned int reverseDirection);
04768 IMAQ_FUNC FindEdgeReport*        IMAQ_STDCALL imaqFindEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindEdgeOptions2* findEdgeOptions, const StraightEdgeOptions* straightEdgeOptions);
04769 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);
04770 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);
04771 IMAQ_FUNC int                    IMAQ_STDCALL imaqLineGaugeTool2(const Image* image, Point start, Point end, LineGaugeMethod method, const EdgeOptions* edgeOptions, const CoordinateTransform2* transform, float* distance);
04772 IMAQ_FUNC RakeReport2*           IMAQ_STDCALL imaqRake2(Image* image, ROI* roi, RakeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
04773 IMAQ_FUNC PointFloat*            IMAQ_STDCALL imaqSimpleEdge(const Image* image, const Point* points, int numPoints, const SimpleEdgeOptions* options, int* numEdges);
04774 IMAQ_FUNC SpokeReport2*          IMAQ_STDCALL imaqSpoke2(Image* image, ROI* roi, SpokeDirection direction, EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
04775 IMAQ_FUNC StraightEdgeReport2*   IMAQ_STDCALL imaqStraightEdge(const Image* image, const ROI* roi, SearchDirection searchDirection, const EdgeOptions2* edgeOptions, const StraightEdgeOptions* straightEdgeOptions);
04776 IMAQ_FUNC StraightEdgeReport2*   IMAQ_STDCALL imaqStraightEdge2(const Image* image, const ROI* roi, SearchDirection searchDirection, const EdgeOptions2* edgeOptions, const StraightEdgeOptions* straightEdgeOptions, unsigned int optimizedMode);
04777 
04778 //============================================================================
04779 //  Spatial Filters functions
04780 //============================================================================
04781 IMAQ_FUNC int IMAQ_STDCALL imaqCannyEdgeFilter(Image* dest, const Image* source, const CannyOptions* options);
04782 IMAQ_FUNC int IMAQ_STDCALL imaqConvolve2(Image* dest, Image* source, float* kernel, int matrixRows, int matrixCols, float normalize, Image* mask, RoundingMode roundingMode);
04783 IMAQ_FUNC int IMAQ_STDCALL imaqCorrelate(Image* dest, Image* source, const Image* templateImage, Rect rect);
04784 IMAQ_FUNC int IMAQ_STDCALL imaqEdgeFilter(Image* dest, Image* source, OutlineMethod method, const Image* mask);
04785 IMAQ_FUNC int IMAQ_STDCALL imaqLowPass(Image* dest, Image* source, int width, int height, float tolerance, const Image* mask);
04786 IMAQ_FUNC int IMAQ_STDCALL imaqMedianFilter(Image* dest, Image* source, int width, int height, const Image* mask);
04787 IMAQ_FUNC int IMAQ_STDCALL imaqNthOrderFilter(Image* dest, Image* source, int width, int height, int n, const Image* mask);
04788 
04789 //============================================================================
04790 //  Drawing functions
04791 //============================================================================
04792 IMAQ_FUNC int IMAQ_STDCALL imaqDrawLineOnImage(Image* dest, const Image* source, DrawMode mode, Point start, Point end, float newPixelValue);
04793 IMAQ_FUNC int IMAQ_STDCALL imaqDrawShapeOnImage(Image* dest, const Image* source, Rect rect, DrawMode mode, ShapeMode shape, float newPixelValue);
04794 IMAQ_FUNC int IMAQ_STDCALL imaqDrawTextOnImage(Image* dest, const Image* source, Point coord, const char* text, const DrawTextOptions* options, int* fontNameUsed);
04795 
04796 //============================================================================
04797 //  Interlacing functions
04798 //============================================================================
04799 IMAQ_FUNC int IMAQ_STDCALL imaqInterlaceCombine(Image* frame, const Image* odd, const Image* even);
04800 IMAQ_FUNC int IMAQ_STDCALL imaqInterlaceSeparate(const Image* frame, Image* odd, Image* even);
04801 
04802 //============================================================================
04803 //  Image Information functions
04804 //============================================================================
04805 IMAQ_FUNC char** IMAQ_STDCALL imaqEnumerateCustomKeys(const Image* image, unsigned int* size);
04806 IMAQ_FUNC int    IMAQ_STDCALL imaqGetBitDepth(const Image* image, unsigned int* bitDepth);
04807 IMAQ_FUNC int    IMAQ_STDCALL imaqGetBytesPerPixel(const Image* image, int* byteCount);
04808 IMAQ_FUNC int    IMAQ_STDCALL imaqGetImageInfo(const Image* image, ImageInfo* info);
04809 IMAQ_FUNC int    IMAQ_STDCALL imaqGetImageSize(const Image* image, int* width, int* height);
04810 IMAQ_FUNC int    IMAQ_STDCALL imaqGetImageType(const Image* image, ImageType* type);
04811 IMAQ_FUNC int    IMAQ_STDCALL imaqGetMaskOffset(const Image* image, Point* offset);
04812 IMAQ_FUNC void*  IMAQ_STDCALL imaqGetPixelAddress(const Image* image, Point pixel);
04813 IMAQ_FUNC int    IMAQ_STDCALL imaqGetVisionInfoTypes(const Image* image, unsigned int* present);
04814 IMAQ_FUNC int    IMAQ_STDCALL imaqIsImageEmpty(const Image* image, int* empty);
04815 IMAQ_FUNC void*  IMAQ_STDCALL imaqReadCustomData(const Image* image, const char* key, unsigned int* size);
04816 IMAQ_FUNC int    IMAQ_STDCALL imaqRemoveCustomData(Image* image, const char* key);
04817 IMAQ_FUNC int    IMAQ_STDCALL imaqRemoveVisionInfo2(const Image* image, unsigned int info);
04818 IMAQ_FUNC int    IMAQ_STDCALL imaqSetBitDepth(Image* image, unsigned int bitDepth);
04819 IMAQ_FUNC int    IMAQ_STDCALL imaqSetImageSize(Image* image, int width, int height);
04820 IMAQ_FUNC int    IMAQ_STDCALL imaqSetMaskOffset(Image* image, Point offset);
04821 IMAQ_FUNC int    IMAQ_STDCALL imaqWriteCustomData(Image* image, const char* key, const void* data, unsigned int size);
04822 
04823 //============================================================================
04824 //  Display functions
04825 //============================================================================
04826 IMAQ_FUNC int   IMAQ_STDCALL imaqAreToolsContextSensitive(int* sensitive);
04827 IMAQ_FUNC int   IMAQ_STDCALL imaqCloseWindow(int windowNumber);
04828 IMAQ_FUNC int   IMAQ_STDCALL imaqDisplayImage(const Image* image, int windowNumber, int resize);
04829 IMAQ_FUNC int   IMAQ_STDCALL imaqGetLastKey(char* keyPressed, int* windowNumber, int* modifiers);
04830 IMAQ_FUNC void* IMAQ_STDCALL imaqGetSystemWindowHandle(int windowNumber);
04831 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowCenterPos(int windowNumber, Point* centerPosition);
04832 IMAQ_FUNC int   IMAQ_STDCALL imaqSetToolContextSensitivity(int sensitive);
04833 IMAQ_FUNC int   IMAQ_STDCALL imaqShowWindow(int windowNumber, int visible);
04834 
04835 //============================================================================
04836 //  Image Manipulation functions
04837 //============================================================================
04838 IMAQ_FUNC int   IMAQ_STDCALL imaqCast(Image* dest, const Image* source, ImageType type, const float* lookup, int shift);
04839 IMAQ_FUNC int   IMAQ_STDCALL imaqCopyRect(Image* dest, const Image* source, Rect rect, Point destLoc);
04840 IMAQ_FUNC int   IMAQ_STDCALL imaqDuplicate(Image* dest, const Image* source);
04841 IMAQ_FUNC void* IMAQ_STDCALL imaqFlatten(const Image* image, FlattenType type, CompressionType compression, int quality, unsigned int* size);
04842 IMAQ_FUNC int   IMAQ_STDCALL imaqFlip(Image* dest, const Image* source, FlipAxis axis);
04843 IMAQ_FUNC int   IMAQ_STDCALL imaqMask(Image* dest, const Image* source, const Image* mask);
04844 IMAQ_FUNC int   IMAQ_STDCALL imaqResample(Image* dest, const Image* source, int newWidth, int newHeight, InterpolationMethod method, Rect rect);
04845 IMAQ_FUNC int   IMAQ_STDCALL imaqRotate2(Image* dest, const Image* source, float angle, PixelValue fill, InterpolationMethod method, int maintainSize);
04846 IMAQ_FUNC int   IMAQ_STDCALL imaqScale(Image* dest, const Image* source, int xScale, int yScale, ScalingMode scaleMode, Rect rect);
04847 IMAQ_FUNC int   IMAQ_STDCALL imaqShift(Image* dest, const Image* source, int shiftX, int shiftY, PixelValue fill);
04848 IMAQ_FUNC int   IMAQ_STDCALL imaqTranspose(Image* dest, const Image* source);
04849 IMAQ_FUNC int   IMAQ_STDCALL imaqUnflatten(Image* image, const void* data, unsigned int size);
04850 IMAQ_FUNC int   IMAQ_STDCALL imaqUnwrapImage(Image* dest, const Image* source, Annulus annulus, RectOrientation orientation, InterpolationMethod method);
04851 IMAQ_FUNC int   IMAQ_STDCALL imaqView3D(Image* dest, Image* source, const View3DOptions* options);
04852 
04853 //============================================================================
04854 //  File I/O functions
04855 //============================================================================
04856 IMAQ_FUNC int         IMAQ_STDCALL imaqCloseAVI(AVISession session);
04857 IMAQ_FUNC AVISession  IMAQ_STDCALL imaqCreateAVI(const char* fileName, const char* compressionFilter, int quality, unsigned int framesPerSecond, unsigned int maxDataSize);
04858 IMAQ_FUNC int         IMAQ_STDCALL imaqGetAVIInfo(AVISession session, AVIInfo* info);
04859 IMAQ_FUNC int         IMAQ_STDCALL imaqGetFileInfo(const char* fileName, CalibrationUnit* calibrationUnit, float* calibrationX, float* calibrationY, int* width, int* height, ImageType* imageType);
04860 IMAQ_FUNC FilterName* IMAQ_STDCALL imaqGetFilterNames(int* numFilters);
04861 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);
04862 IMAQ_FUNC AVISession  IMAQ_STDCALL imaqOpenAVI(const char* fileName);
04863 IMAQ_FUNC int         IMAQ_STDCALL imaqReadAVIFrame(Image* image, AVISession session, unsigned int frameNum, void* data, unsigned int* dataSize);
04864 IMAQ_FUNC int         IMAQ_STDCALL imaqReadFile(Image* image, const char* fileName, RGBValue* colorTable, int* numColors);
04865 IMAQ_FUNC int         IMAQ_STDCALL imaqReadVisionFile(Image* image, const char* fileName, RGBValue* colorTable, int* numColors);
04866 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteAVIFrame(Image* image, AVISession session, const void* data, unsigned int dataLength);
04867 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteBMPFile(const Image* image, const char* fileName, int compress, const RGBValue* colorTable);
04868 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteFile(const Image* image, const char* fileName, const RGBValue* colorTable);
04869 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteJPEGFile(const Image* image, const char* fileName, unsigned int quality, void* colorTable);
04870 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteJPEG2000File(const Image* image, const char* fileName, int lossless, float compressionRatio, const JPEG2000FileAdvancedOptions* advancedOptions, const RGBValue* colorTable);
04871 IMAQ_FUNC int         IMAQ_STDCALL imaqWritePNGFile2(const Image* image, const char* fileName, unsigned int compressionSpeed, const RGBValue* colorTable, int useBitDepth);
04872 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteTIFFFile(const Image* image, const char* fileName, const TIFFFileOptions* options, const RGBValue* colorTable);
04873 IMAQ_FUNC int         IMAQ_STDCALL imaqWriteVisionFile(const Image* image, const char* fileName, const RGBValue* colorTable);
04874 
04875 
04876 //============================================================================
04877 //  Analytic Geometry functions
04878 //============================================================================
04879 IMAQ_FUNC int           IMAQ_STDCALL imaqBuildCoordinateSystem(const Point* points, ReferenceMode mode, AxisOrientation orientation, CoordinateSystem* system);
04880 IMAQ_FUNC BestCircle2*  IMAQ_STDCALL imaqFitCircle2(const PointFloat* points, int numPoints, const FitCircleOptions* options);
04881 IMAQ_FUNC BestEllipse2* IMAQ_STDCALL imaqFitEllipse2(const PointFloat* points, int numPoints, const FitEllipseOptions* options);
04882 IMAQ_FUNC BestLine*     IMAQ_STDCALL imaqFitLine(const PointFloat* points, int numPoints, const FitLineOptions* options);
04883 IMAQ_FUNC int           IMAQ_STDCALL imaqGetAngle(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, float* angle);
04884 IMAQ_FUNC int           IMAQ_STDCALL imaqGetBisectingLine(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, PointFloat* bisectStart, PointFloat* bisectEnd);
04885 IMAQ_FUNC int           IMAQ_STDCALL imaqGetDistance(PointFloat point1, PointFloat point2, float* distance);
04886 IMAQ_FUNC int           IMAQ_STDCALL imaqGetIntersection(PointFloat start1, PointFloat end1, PointFloat start2, PointFloat end2, PointFloat* intersection);
04887 IMAQ_FUNC int           IMAQ_STDCALL imaqGetMidLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point, PointFloat* midLineStart, PointFloat* midLineEnd);
04888 IMAQ_FUNC int           IMAQ_STDCALL imaqGetPerpendicularLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point, PointFloat* perpLineStart, PointFloat* perpLineEnd, double* distance);
04889 IMAQ_FUNC SegmentInfo*  IMAQ_STDCALL imaqGetPointsOnContour(const Image* image, int* numSegments);
04890 IMAQ_FUNC Point*        IMAQ_STDCALL imaqGetPointsOnLine(Point start, Point end, int* numPoints);
04891 IMAQ_FUNC int           IMAQ_STDCALL imaqGetPolygonArea(const PointFloat* points, int numPoints, float* area);
04892 IMAQ_FUNC float*        IMAQ_STDCALL imaqInterpolatePoints(const Image* image, const Point* points, int numPoints, InterpolationMethod method, int subpixel, int* interpCount);
04893 
04894 //============================================================================
04895 //  Clipboard functions
04896 //============================================================================
04897 IMAQ_FUNC int IMAQ_STDCALL imaqClipboardToImage(Image* dest, RGBValue* palette);
04898 IMAQ_FUNC int IMAQ_STDCALL imaqImageToClipboard(const Image* image, const RGBValue* palette);
04899 
04900 //============================================================================
04901 //  Border functions
04902 //============================================================================
04903 IMAQ_FUNC int IMAQ_STDCALL imaqFillBorder(Image* image, BorderMethod method);
04904 IMAQ_FUNC int IMAQ_STDCALL imaqGetBorderSize(const Image* image, int* borderSize);
04905 IMAQ_FUNC int IMAQ_STDCALL imaqSetBorderSize(Image* image, int size);
04906 
04907 //============================================================================
04908 //  Image Management functions
04909 //============================================================================
04910 IMAQ_FUNC int    IMAQ_STDCALL imaqArrayToImage(Image* image, const void* array, int numCols, int numRows);
04911 IMAQ_FUNC Image* IMAQ_STDCALL imaqCreateImage(ImageType type, int borderSize);
04912 IMAQ_FUNC void*  IMAQ_STDCALL imaqImageToArray(const Image* image, Rect rect, int* columns, int* rows);
04913 
04914 //============================================================================
04915 //  Color Processing functions
04916 //============================================================================
04917 IMAQ_FUNC Color2                             IMAQ_STDCALL imaqChangeColorSpace2(const Color2* sourceColor, ColorMode sourceSpace, ColorMode destSpace, double offset, const CIEXYZValue* whiteReference);
04918 IMAQ_FUNC int                                IMAQ_STDCALL imaqColorBCGTransform(Image* dest, const Image* source, const BCGOptions* redOptions, const BCGOptions* greenOptions, const BCGOptions* blueOptions, const Image* mask);
04919 IMAQ_FUNC int                                IMAQ_STDCALL imaqColorEqualize(Image* dest, const Image* source, int colorEqualization);
04920 IMAQ_FUNC ColorHistogramReport*              IMAQ_STDCALL imaqColorHistogram2(Image* image, int numClasses, ColorMode mode, const CIEXYZValue* whiteReference, Image* mask);
04921 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);
04922 IMAQ_FUNC int                                IMAQ_STDCALL imaqColorThreshold(Image* dest, const Image* source, int replaceValue, ColorMode mode, const Range* plane1Range, const Range* plane2Range, const Range* plane3Range);
04923 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);
04924 IMAQ_FUNC int                                IMAQ_STDCALL imaqGetColorSegmentationMaxDistance(ClassifierSession* session, const ColorSegmenationOptions* segmentOptions, SegmentationDistanceLevel distLevel, int* maxDistance);
04925 
04926 //============================================================================
04927 //  Transform functions
04928 //============================================================================
04929 IMAQ_FUNC int IMAQ_STDCALL imaqBCGTransform(Image* dest, const Image* source, const BCGOptions* options, const Image* mask);
04930 IMAQ_FUNC int IMAQ_STDCALL imaqEqualize(Image* dest, const Image* source, float min, float max, const Image* mask);
04931 IMAQ_FUNC int IMAQ_STDCALL imaqInverse(Image* dest, const Image* source, const Image* mask);
04932 IMAQ_FUNC int IMAQ_STDCALL imaqMathTransform(Image* dest, const Image* source, MathTransformMethod method, float rangeMin, float rangeMax, float power, const Image* mask);
04933 IMAQ_FUNC int IMAQ_STDCALL imaqWatershedTransform(Image* dest, const Image* source, int connectivity8, int* zoneCount);
04934 IMAQ_FUNC int IMAQ_STDCALL imaqLookup2(Image* dest, const Image* source, const int* table, const Image* mask);
04935 
04936 
04937 //============================================================================
04938 //  Window Management functions
04939 //============================================================================
04940 IMAQ_FUNC int   IMAQ_STDCALL imaqAreScrollbarsVisible(int windowNumber, int* visible);
04941 IMAQ_FUNC int   IMAQ_STDCALL imaqBringWindowToTop(int windowNumber);
04942 IMAQ_FUNC int   IMAQ_STDCALL imaqGetMousePos(Point* position, int* windowNumber);
04943 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowBackground(int windowNumber, WindowBackgroundFillStyle* fillStyle, WindowBackgroundHatchStyle* hatchStyle, RGBValue* fillColor, RGBValue* backgroundColor);
04944 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowDisplayMapping(int windowNum, DisplayMapping* mapping);
04945 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowGrid(int windowNumber, int* xResolution, int* yResolution);
04946 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowHandle(int* handle);
04947 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowPos(int windowNumber, Point* position);
04948 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowSize(int windowNumber, int* width, int* height);
04949 IMAQ_FUNC char* IMAQ_STDCALL imaqGetWindowTitle(int windowNumber);
04950 IMAQ_FUNC int   IMAQ_STDCALL imaqGetWindowZoom2(int windowNumber, float* xZoom, float* yZoom);
04951 IMAQ_FUNC int   IMAQ_STDCALL imaqIsWindowNonTearing(int windowNumber, int* nonTearing);
04952 IMAQ_FUNC int   IMAQ_STDCALL imaqIsWindowVisible(int windowNumber, int* visible);
04953 IMAQ_FUNC int   IMAQ_STDCALL imaqMoveWindow(int windowNumber, Point position);
04954 IMAQ_FUNC int   IMAQ_STDCALL imaqSetupWindow(int windowNumber, int configuration);
04955 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowBackground(int windowNumber, WindowBackgroundFillStyle fillStyle, WindowBackgroundHatchStyle hatchStyle, const RGBValue* fillColor, const RGBValue* backgroundColor);
04956 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowDisplayMapping(int windowNumber, const DisplayMapping* mapping);
04957 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowGrid(int windowNumber, int xResolution, int yResolution);
04958 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowMaxContourCount(int windowNumber, unsigned int maxContourCount);
04959 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowNonTearing(int windowNumber, int nonTearing);
04960 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowPalette(int windowNumber, PaletteType type, const RGBValue* palette, int numColors);
04961 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowSize(int windowNumber, int width, int height);
04962 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowThreadPolicy(WindowThreadPolicy policy);
04963 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowTitle(int windowNumber, const char* title);
04964 IMAQ_FUNC int   IMAQ_STDCALL imaqSetWindowZoomToFit(int windowNumber, int zoomToFit);
04965 IMAQ_FUNC int   IMAQ_STDCALL imaqShowScrollbars(int windowNumber, int visible);
04966 IMAQ_FUNC int   IMAQ_STDCALL imaqZoomWindow2(int windowNumber, float xZoom, float yZoom, Point center);
04967 
04968 //============================================================================
04969 //  Utilities functions
04970 //============================================================================
04971 IMAQ_FUNC const float* IMAQ_STDCALL imaqGetKernel(KernelFamily family, int size, int number);
04972 IMAQ_FUNC Annulus      IMAQ_STDCALL imaqMakeAnnulus(Point center, int innerRadius, int outerRadius, double startAngle, double endAngle);
04973 IMAQ_FUNC Point        IMAQ_STDCALL imaqMakePoint(int xCoordinate, int yCoordinate);
04974 IMAQ_FUNC PointFloat   IMAQ_STDCALL imaqMakePointFloat(float xCoordinate, float yCoordinate);
04975 IMAQ_FUNC Rect         IMAQ_STDCALL imaqMakeRect(int top, int left, int height, int width);
04976 IMAQ_FUNC Rect         IMAQ_STDCALL imaqMakeRectFromRotatedRect(RotatedRect rotatedRect);
04977 IMAQ_FUNC RotatedRect  IMAQ_STDCALL imaqMakeRotatedRect(int top, int left, int height, int width, double angle);
04978 IMAQ_FUNC RotatedRect  IMAQ_STDCALL imaqMakeRotatedRectFromRect(Rect rect);
04979 IMAQ_FUNC int          IMAQ_STDCALL imaqMulticoreOptions(MulticoreOperation operation, unsigned int* customNumCores);
04980 
04981 //============================================================================
04982 //  Tool Window functions
04983 //============================================================================
04984 IMAQ_FUNC int   IMAQ_STDCALL imaqCloseToolWindow(void);
04985 IMAQ_FUNC int   IMAQ_STDCALL imaqGetCurrentTool(Tool* currentTool);
04986 IMAQ_FUNC int   IMAQ_STDCALL imaqGetLastEvent(WindowEventType* type, int* windowNumber, Tool* tool, Rect* rect);
04987 IMAQ_FUNC void* IMAQ_STDCALL imaqGetToolWindowHandle(void);
04988 IMAQ_FUNC int   IMAQ_STDCALL imaqGetToolWindowPos(Point* position);
04989 IMAQ_FUNC int   IMAQ_STDCALL imaqIsToolWindowVisible(int* visible);
04990 IMAQ_FUNC int   IMAQ_STDCALL imaqMoveToolWindow(Point position);
04991 IMAQ_FUNC int   IMAQ_STDCALL imaqSetCurrentTool(Tool currentTool);
04992 #ifndef __GNUC__
04993 IMAQ_FUNC int   IMAQ_STDCALL imaqSetEventCallback(EventCallback callback, int synchronous);
04994 #endif
04995 IMAQ_FUNC int   IMAQ_STDCALL imaqSetToolColor(const RGBValue* color);
04996 IMAQ_FUNC int   IMAQ_STDCALL imaqSetupToolWindow(int showCoordinates, int maxIconsPerLine, const ToolWindowOptions* options);
04997 IMAQ_FUNC int   IMAQ_STDCALL imaqShowToolWindow(int visible);
04998 
04999 //============================================================================
05000 //  Meter functions
05001 //============================================================================
05002 IMAQ_FUNC MeterArc* IMAQ_STDCALL imaqGetMeterArc(int lightNeedle, MeterArcMode mode, const ROI* roi, PointFloat base, PointFloat start, PointFloat end);
05003 IMAQ_FUNC int       IMAQ_STDCALL imaqReadMeter(const Image* image, const MeterArc* arcInfo, double* percentage, PointFloat* endOfNeedle);
05004 
05005 //============================================================================
05006 //  Calibration functions
05007 //============================================================================
05008 IMAQ_FUNC int                        IMAQ_STDCALL imaqCopyCalibrationInfo2(Image* dest, Image* source, Point offset);
05009 IMAQ_FUNC int                        IMAQ_STDCALL imaqCorrectCalibratedImage(Image* dest, const Image* source, PixelValue fill, InterpolationMethod method, const ROI* roi);
05010 IMAQ_FUNC CalibrationInfo*           IMAQ_STDCALL imaqGetCalibrationInfo2(const Image* image);
05011 IMAQ_FUNC CalibrationInfo*           IMAQ_STDCALL imaqGetCalibrationInfo3(Image* image, unsigned int isGetErrorMap);
05012 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);
05013 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);
05014 IMAQ_FUNC int                        IMAQ_STDCALL imaqSetCoordinateSystem(Image* image, const CoordinateSystem* system);
05015 IMAQ_FUNC int                        IMAQ_STDCALL imaqSetSimpleCalibration(Image* image, ScalingMethod method, int learnTable, const GridDescriptor* grid, const CoordinateSystem* system);
05016 IMAQ_FUNC TransformReport*           IMAQ_STDCALL imaqTransformPixelToRealWorld(const Image* image, const PointFloat* pixelCoordinates, int numCoordinates);
05017 IMAQ_FUNC TransformReport*           IMAQ_STDCALL imaqTransformRealWorldToPixel(const Image* image, const PointFloat* realWorldCoordinates, int numCoordinates);
05018 IMAQ_FUNC int                        IMAQ_STDCALL imaqSetSimpleCalibration2(Image* image, const GridDescriptor* gridDescriptor);
05019 IMAQ_FUNC int                        IMAQ_STDCALL imaqCalibrationSetAxisInfo(Image* image, CoordinateSystem* axisInfo);
05020 IMAQ_FUNC int                        IMAQ_STDCALL imaqCalibrationGetThumbnailImage(Image* templateImage, Image* image, CalibrationThumbnailType type, unsigned int index);
05021 IMAQ_FUNC GetCalibrationInfoReport*  IMAQ_STDCALL imaqCalibrationGetCalibrationInfo(Image* image, unsigned int isGetErrorMap);
05022 IMAQ_FUNC GetCameraParametersReport* IMAQ_STDCALL imaqCalibrationGetCameraParameters(Image* templateImage);
05023 IMAQ_FUNC int                        IMAQ_STDCALL imaqCalibrationCompactInformation(Image* image);
05024 
05025 //============================================================================
05026 //  Pixel Manipulation functions
05027 //============================================================================
05028 IMAQ_FUNC int    IMAQ_STDCALL imaqArrayToComplexPlane(Image* dest, const Image* source, const float* newPixels, ComplexPlane plane);
05029 IMAQ_FUNC float* IMAQ_STDCALL imaqComplexPlaneToArray(const Image* image, ComplexPlane plane, Rect rect, int* rows, int* columns);
05030 IMAQ_FUNC int    IMAQ_STDCALL imaqExtractColorPlanes(const Image* image, ColorMode mode, Image* plane1, Image* plane2, Image* plane3);
05031 IMAQ_FUNC int    IMAQ_STDCALL imaqExtractComplexPlane(Image* dest, const Image* source, ComplexPlane plane);
05032 IMAQ_FUNC int    IMAQ_STDCALL imaqFillImage(Image* image, PixelValue value, const Image* mask);
05033 IMAQ_FUNC void*  IMAQ_STDCALL imaqGetLine(const Image* image, Point start, Point end, int* numPoints);
05034 IMAQ_FUNC int    IMAQ_STDCALL imaqGetPixel(const Image* image, Point pixel, PixelValue* value);
05035 IMAQ_FUNC int    IMAQ_STDCALL imaqReplaceColorPlanes(Image* dest, const Image* source, ColorMode mode, const Image* plane1, const Image* plane2, const Image* plane3);
05036 IMAQ_FUNC int    IMAQ_STDCALL imaqReplaceComplexPlane(Image* dest, const Image* source, const Image* newValues, ComplexPlane plane);
05037 IMAQ_FUNC int    IMAQ_STDCALL imaqSetLine(Image* image, const void* array, int arraySize, Point start, Point end);
05038 IMAQ_FUNC int    IMAQ_STDCALL imaqSetPixel(Image* image, Point coord, PixelValue value);
05039 
05040 //============================================================================
05041 //  Color Matching functions
05042 //============================================================================
05043 IMAQ_FUNC ColorInformation* IMAQ_STDCALL imaqLearnColor(const Image* image, const ROI* roi, ColorSensitivity sensitivity, int saturation);
05044 IMAQ_FUNC int*              IMAQ_STDCALL imaqMatchColor(const Image* image, const ColorInformation* info, const ROI* roi, int* numScores);
05045 
05046 //============================================================================
05047 //  Frequency Domain Analysis functions
05048 //============================================================================
05049 IMAQ_FUNC int IMAQ_STDCALL imaqAttenuate(Image* dest, const Image* source, AttenuateMode highlow);
05050 IMAQ_FUNC int IMAQ_STDCALL imaqConjugate(Image* dest, const Image* source);
05051 IMAQ_FUNC int IMAQ_STDCALL imaqFFT(Image* dest, const Image* source);
05052 IMAQ_FUNC int IMAQ_STDCALL imaqFlipFrequencies(Image* dest, const Image* source);
05053 IMAQ_FUNC int IMAQ_STDCALL imaqInverseFFT(Image* dest, const Image* source);
05054 IMAQ_FUNC int IMAQ_STDCALL imaqTruncate(Image* dest, const Image* source, TruncateMode highlow, float ratioToKeep);
05055 
05056 //============================================================================
05057 //  Barcode I/O functions
05058 //============================================================================
05059 IMAQ_FUNC int               IMAQ_STDCALL imaqGradeDataMatrixBarcodeAIM(const Image* image, AIMGradeReport* report);
05060 IMAQ_FUNC BarcodeInfo*      IMAQ_STDCALL imaqReadBarcode(const Image* image, BarcodeType type, const ROI* roi, int validate);
05061 IMAQ_FUNC DataMatrixReport* IMAQ_STDCALL imaqReadDataMatrixBarcode2(Image* image, const ROI* roi, DataMatrixGradingMode prepareForGrading, const DataMatrixDescriptionOptions* descriptionOptions, const DataMatrixSizeOptions* sizeOptions, const DataMatrixSearchOptions* searchOptions);
05062 IMAQ_FUNC Barcode2DInfo*    IMAQ_STDCALL imaqReadPDF417Barcode(const Image* image, const ROI* roi, Barcode2DSearchMode searchMode, unsigned int* numBarcodes);
05063 IMAQ_FUNC QRCodeReport*     IMAQ_STDCALL imaqReadQRCode(Image* image, const ROI* roi, QRGradingMode reserved, const QRCodeDescriptionOptions* descriptionOptions, const QRCodeSizeOptions* sizeOptions, const QRCodeSearchOptions* searchOptions);
05064 
05065 //============================================================================
05066 //  LCD functions
05067 //============================================================================
05068 IMAQ_FUNC int        IMAQ_STDCALL imaqFindLCDSegments(ROI* roi, const Image* image, const LCDOptions* options);
05069 IMAQ_FUNC LCDReport* IMAQ_STDCALL imaqReadLCD(const Image* image, const ROI* roi, const LCDOptions* options);
05070 
05071 //============================================================================
05072 //  Shape Matching functions
05073 //============================================================================
05074 IMAQ_FUNC ShapeReport* IMAQ_STDCALL imaqMatchShape(Image* dest, Image* source, const Image* templateImage, int scaleInvariant, int connectivity8, double tolerance, int* numMatches);
05075 
05076 //============================================================================
05077 //  Contours functions
05078 //============================================================================
05079 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddAnnulusContour(ROI* roi, Annulus annulus);
05080 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddClosedContour(ROI* roi, const Point* points, int numPoints);
05081 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddLineContour(ROI* roi, Point start, Point end);
05082 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddOpenContour(ROI* roi, const Point* points, int numPoints);
05083 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddOvalContour(ROI* roi, Rect boundingBox);
05084 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddPointContour(ROI* roi, Point point);
05085 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddRectContour(ROI* roi, Rect rect);
05086 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqAddRotatedRectContour2(ROI* roi, RotatedRect rect);
05087 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqCopyContour(ROI* destRoi, const ROI* sourceRoi, ContourID id);
05088 IMAQ_FUNC ContourID     IMAQ_STDCALL imaqGetContour(const ROI* roi, unsigned int index);
05089 IMAQ_FUNC int           IMAQ_STDCALL imaqGetContourColor(const ROI* roi, ContourID id, RGBValue* contourColor);
05090 IMAQ_FUNC int           IMAQ_STDCALL imaqGetContourCount(const ROI* roi);
05091 IMAQ_FUNC ContourInfo2* IMAQ_STDCALL imaqGetContourInfo2(const ROI* roi, ContourID id);
05092 IMAQ_FUNC int           IMAQ_STDCALL imaqMoveContour(ROI* roi, ContourID id, int deltaX, int deltaY);
05093 IMAQ_FUNC int           IMAQ_STDCALL imaqRemoveContour(ROI* roi, ContourID id);
05094 IMAQ_FUNC int           IMAQ_STDCALL imaqSetContourColor(ROI* roi, ContourID id, const RGBValue* color);
05095 
05096 //============================================================================
05097 //  Regions of Interest functions
05098 //============================================================================
05099 IMAQ_FUNC int  IMAQ_STDCALL imaqConstructROI2(const Image* image, ROI* roi, Tool initialTool, const ToolWindowOptions* tools, const ConstructROIOptions2* options, int* okay);
05100 IMAQ_FUNC ROI* IMAQ_STDCALL imaqCreateROI(void);
05101 IMAQ_FUNC int  IMAQ_STDCALL imaqGetROIBoundingBox(const ROI* roi, Rect* boundingBox);
05102 IMAQ_FUNC int  IMAQ_STDCALL imaqGetROIColor(const ROI* roi, RGBValue* roiColor);
05103 IMAQ_FUNC ROI* IMAQ_STDCALL imaqGetWindowROI(int windowNumber);
05104 IMAQ_FUNC int  IMAQ_STDCALL imaqSetROIColor(ROI* roi, const RGBValue* color);
05105 IMAQ_FUNC int  IMAQ_STDCALL imaqSetWindowROI(int windowNumber, const ROI* roi);
05106 
05107 //============================================================================
05108 //  Image Analysis functions
05109 //============================================================================
05110 IMAQ_FUNC int              IMAQ_STDCALL imaqCentroid(const Image* image, PointFloat* centroid, const Image* mask);
05111 IMAQ_FUNC Curve*           IMAQ_STDCALL imaqExtractCurves(const Image* image, const ROI* roi, const CurveOptions* curveOptions, unsigned int* numCurves);
05112 IMAQ_FUNC HistogramReport* IMAQ_STDCALL imaqHistogram(const Image* image, int numClasses, float min, float max, const Image* mask);
05113 IMAQ_FUNC LinearAverages*  IMAQ_STDCALL imaqLinearAverages2(Image* image, LinearAveragesMode mode, Rect rect);
05114 IMAQ_FUNC LineProfile*     IMAQ_STDCALL imaqLineProfile(const Image* image, Point start, Point end);
05115 IMAQ_FUNC QuantifyReport*  IMAQ_STDCALL imaqQuantify(const Image* image, const Image* mask);
05116 
05117 //============================================================================
05118 //  Error Management functions
05119 //============================================================================
05120 IMAQ_FUNC int         IMAQ_STDCALL imaqClearError(void);
05121 IMAQ_FUNC char*       IMAQ_STDCALL imaqGetErrorText(int errorCode);
05122 IMAQ_FUNC int         IMAQ_STDCALL imaqGetLastError(void);
05123 IMAQ_FUNC const char* IMAQ_STDCALL imaqGetLastErrorFunc(void);
05124 IMAQ_FUNC int         IMAQ_STDCALL imaqSetError(int errorCode, const char* function);
05125 
05126 //============================================================================
05127 //  Threshold functions
05128 //============================================================================
05129 IMAQ_FUNC ThresholdData* IMAQ_STDCALL imaqAutoThreshold2(Image* dest, const Image* source, int numClasses, ThresholdMethod method, const Image* mask);
05130 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);
05131 IMAQ_FUNC int            IMAQ_STDCALL imaqMagicWand(Image* dest, const Image* source, Point coord, float tolerance, int connectivity8, float replaceValue);
05132 IMAQ_FUNC int            IMAQ_STDCALL imaqMultithreshold(Image* dest, const Image* source, const ThresholdData* ranges, int numRanges);
05133 IMAQ_FUNC int            IMAQ_STDCALL imaqThreshold(Image* dest, const Image* source, float rangeMin, float rangeMax, int useNewValue, float newValue);
05134 
05135 //============================================================================
05136 //  Memory Management functions
05137 //============================================================================
05138 IMAQ_FUNC int IMAQ_STDCALL imaqDispose(void* object);
05139 
05140 //============================================================================
05141 //  Pattern Matching functions
05142 //============================================================================
05143 IMAQ_FUNC CircleMatch*              IMAQ_STDCALL imaqDetectCircles(const Image* image, const CircleDescriptor* circleDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
05144 IMAQ_FUNC EllipseMatch*             IMAQ_STDCALL imaqDetectEllipses(const Image* image, const EllipseDescriptor* ellipseDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
05145 IMAQ_FUNC LineMatch*                IMAQ_STDCALL imaqDetectLines(const Image* image, const LineDescriptor* lineDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
05146 IMAQ_FUNC RectangleMatch*           IMAQ_STDCALL imaqDetectRectangles(const Image* image, const RectangleDescriptor* rectangleDescriptor, const CurveOptions* curveOptions, const ShapeDetectionOptions* shapeDetectionOptions, const ROI* roi, int* numMatchesReturned);
05147 IMAQ_FUNC FeatureData*              IMAQ_STDCALL imaqGetGeometricFeaturesFromCurves(const Curve* curves, unsigned int numCurves, const FeatureType* featureTypes, unsigned int numFeatureTypes, unsigned int* numFeatures);
05148 IMAQ_FUNC FeatureData*              IMAQ_STDCALL imaqGetGeometricTemplateFeatureInfo(const Image* pattern, unsigned int* numFeatures);
05149 IMAQ_FUNC int                       IMAQ_STDCALL imaqLearnColorPattern(Image* image, const LearnColorPatternOptions* options);
05150 IMAQ_FUNC int                       IMAQ_STDCALL imaqLearnGeometricPattern(Image* image, PointFloat originOffset, const CurveOptions* curveOptions, const LearnGeometricPatternAdvancedOptions* advancedLearnOptions, const Image* mask);
05151 IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL imaqLearnMultipleGeometricPatterns(const Image** patterns, unsigned int numberOfPatterns, const String255* labels);
05152 IMAQ_FUNC int                       IMAQ_STDCALL imaqLearnPattern3(Image* image, LearningMode learningMode, LearnPatternAdvancedOptions* advancedOptions, const Image* mask);
05153 IMAQ_FUNC PatternMatch*             IMAQ_STDCALL imaqMatchColorPattern(const Image* image, Image* pattern, const MatchColorPatternOptions* options, Rect searchRect, int* numMatches);
05154 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);
05155 IMAQ_FUNC GeometricPatternMatch2*   IMAQ_STDCALL imaqMatchMultipleGeometricPatterns(const Image* image, const MultipleGeometricPattern* multiplePattern, const ROI* roi, int* numMatches);
05156 IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL imaqReadMultipleGeometricPatternFile(const char* fileName, String255 description);
05157 IMAQ_FUNC PatternMatch*             IMAQ_STDCALL imaqRefineMatches(const Image* image, const Image* pattern, const PatternMatch* candidatesIn, int numCandidatesIn, MatchPatternOptions* options, MatchPatternAdvancedOptions* advancedOptions, int* numCandidatesOut);
05158 IMAQ_FUNC int                       IMAQ_STDCALL imaqSetMultipleGeometricPatternsOptions(MultipleGeometricPattern* multiplePattern, const char* label, const CurveOptions* curveOptions, const MatchGeometricPatternOptions* matchOptions, const MatchGeometricPatternAdvancedOptions2* advancedMatchOptions);
05159 IMAQ_FUNC int                       IMAQ_STDCALL imaqWriteMultipleGeometricPatternFile(const MultipleGeometricPattern* multiplePattern, const char* fileName, const char* description);
05160 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);
05161 IMAQ_FUNC int                       IMAQ_STDCALL imaqLearnGeometricPattern2(Image* image, PointFloat originOffset, double angleOffset, const CurveOptions* curveOptions, const LearnGeometricPatternAdvancedOptions2* advancedLearnOptions, const Image* mask);
05162 IMAQ_FUNC PatternMatch*             IMAQ_STDCALL imaqMatchPattern3(const Image* image, const Image* pattern, const MatchPatternOptions* options, const MatchPatternAdvancedOptions* advancedOptions, const ROI* roi, int* numMatches);
05163 
05164 //============================================================================
05165 //  Overlay functions
05166 //============================================================================
05167 IMAQ_FUNC int IMAQ_STDCALL imaqClearOverlay(Image* image, const char* group);
05168 IMAQ_FUNC int IMAQ_STDCALL imaqCopyOverlay(Image* dest, const Image* source, const char* group);
05169 IMAQ_FUNC int IMAQ_STDCALL imaqGetOverlayProperties(const Image* image, const char* group, TransformBehaviors* transformBehaviors);
05170 IMAQ_FUNC int IMAQ_STDCALL imaqMergeOverlay(Image* dest, const Image* source, const RGBValue* palette, unsigned int numColors, const char* group);
05171 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayArc(Image* image, const ArcInfo* arc, const RGBValue* color, DrawMode drawMode, const char* group);
05172 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayBitmap(Image* image, Point destLoc, const RGBValue* bitmap, unsigned int numCols, unsigned int numRows, const char* group);
05173 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayClosedContour(Image* image, const Point* points, int numPoints, const RGBValue* color, DrawMode drawMode, const char* group);
05174 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayLine(Image* image, Point start, Point end, const RGBValue* color, const char* group);
05175 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayMetafile(Image* image, const void* metafile, Rect rect, const char* group);
05176 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOpenContour(Image* image, const Point* points, int numPoints, const RGBValue* color, const char* group);
05177 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOval(Image* image, Rect boundingBox, const RGBValue* color, DrawMode drawMode, char* group);
05178 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);
05179 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayRect(Image* image, Rect rect, const RGBValue* color, DrawMode drawMode, const char* group);
05180 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayROI(Image* image, const ROI* roi, PointSymbol symbol, const UserPointSymbol* userSymbol, const char* group);
05181 IMAQ_FUNC int IMAQ_STDCALL imaqOverlayText(Image* image, Point origin, const char* text, const RGBValue* color, const OverlayTextOptions* options, const char* group);
05182 IMAQ_FUNC int IMAQ_STDCALL imaqSetOverlayProperties(Image* image, const char* group, TransformBehaviors* transformBehaviors);
05183 
05184 //============================================================================
05185 //  OCR functions
05186 //============================================================================
05187 IMAQ_FUNC CharSet*         IMAQ_STDCALL imaqCreateCharSet(void);
05188 IMAQ_FUNC int              IMAQ_STDCALL imaqDeleteChar(CharSet* set, int index);
05189 IMAQ_FUNC int              IMAQ_STDCALL imaqGetCharCount(const CharSet* set);
05190 IMAQ_FUNC CharInfo2*       IMAQ_STDCALL imaqGetCharInfo2(const CharSet* set, int index);
05191 IMAQ_FUNC int              IMAQ_STDCALL imaqReadOCRFile(const char* fileName, CharSet* set, String255 setDescription, ReadTextOptions* readOptions, OCRProcessingOptions* processingOptions, OCRSpacingOptions* spacingOptions);
05192 IMAQ_FUNC ReadTextReport3* IMAQ_STDCALL imaqReadText3(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
05193 IMAQ_FUNC int              IMAQ_STDCALL imaqRenameChar(CharSet* set, int index, const char* newCharValue);
05194 IMAQ_FUNC int              IMAQ_STDCALL imaqSetReferenceChar(const CharSet* set, int index, int isReferenceChar);
05195 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);
05196 IMAQ_FUNC int*             IMAQ_STDCALL imaqVerifyPatterns(const Image* image, const CharSet* set, const String255* expectedPatterns, int patternCount, const ROI* roi, int* numScores);
05197 IMAQ_FUNC int*             IMAQ_STDCALL imaqVerifyText(const Image* image, const CharSet* set, const char* expectedString, const ROI* roi, int* numScores);
05198 IMAQ_FUNC int              IMAQ_STDCALL imaqWriteOCRFile(const char* fileName, const CharSet* set, const char* setDescription, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
05199 
05200 //============================================================================
05201 //  Geometric Matching functions
05202 //============================================================================
05203 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);
05204 IMAQ_FUNC int                            IMAQ_STDCALL imaqContourOverlay(Image* image, const Image* contourImage, const ContourOverlaySettings* pointsSettings, const ContourOverlaySettings* eqnSettings, const char* groupName);
05205 IMAQ_FUNC ContourComputeCurvatureReport* IMAQ_STDCALL imaqContourComputeCurvature(const Image* contourImage, unsigned int kernel);
05206 IMAQ_FUNC CurvatureAnalysisReport*       IMAQ_STDCALL imaqContourClassifyCurvature(const Image* contourImage, unsigned int kernel, RangeLabel* curvatureClasses, unsigned int numCurvatureClasses);
05207 IMAQ_FUNC ComputeDistancesReport*        IMAQ_STDCALL imaqContourComputeDistances(const Image* targetImage, const Image* templateImage, const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel);
05208 IMAQ_FUNC ClassifyDistancesReport*       IMAQ_STDCALL imaqContourClassifyDistances(const Image* targetImage, const Image* templateImage, const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel, const RangeLabel* distanceRanges, unsigned int numDistanceRanges);
05209 IMAQ_FUNC ContourInfoReport*             IMAQ_STDCALL imaqContourInfo(const Image* contourImage);
05210 IMAQ_FUNC SetupMatchPatternData*         IMAQ_STDCALL imaqContourSetupMatchPattern(MatchMode* matchMode, unsigned int enableSubPixelAccuracy, CurveParameters* curveParams, unsigned int useLearnCurveParameters, const RangeSettingDouble* rangeSettings, unsigned int numRangeSettings);
05211 IMAQ_FUNC int                            IMAQ_STDCALL imaqContourAdvancedSetupMatchPattern(SetupMatchPatternData* matchSetupData, GeometricAdvancedSetupDataOption* geometricOptions, unsigned int numGeometricOptions);
05212 IMAQ_FUNC ContourFitLineReport*          IMAQ_STDCALL imaqContourFitLine(Image* image, double pixelRadius);
05213 IMAQ_FUNC PartialCircle*                 IMAQ_STDCALL imaqContourFitCircle(Image* image, double pixelRadius, int rejectOutliers);
05214 IMAQ_FUNC PartialEllipse*                IMAQ_STDCALL imaqContourFitEllipse(Image* image, double pixelRadius, int rejectOutliers);
05215 IMAQ_FUNC ContourFitSplineReport*        IMAQ_STDCALL imaqContourFitSpline(Image* image, int degree, int numberOfControlPoints);
05216 IMAQ_FUNC ContourFitPolynomialReport*    IMAQ_STDCALL imaqContourFitPolynomial(Image* image, int order);
05217 
05218 //============================================================================
05219 //  Edge Detection functions
05220 //============================================================================
05221 IMAQ_FUNC FindCircularEdgeReport*   IMAQ_STDCALL imaqFindCircularEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindCircularEdgeOptions* edgeOptions, const CircleFitOptions* circleFitOptions);
05222 IMAQ_FUNC FindConcentricEdgeReport* IMAQ_STDCALL imaqFindConcentricEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem, const FindConcentricEdgeOptions* edgeOptions, const ConcentricEdgeFitOptions* concentricEdgeFitOptions);
05223 
05224 //============================================================================
05225 //  Morphology Reconstruction functions
05226 //============================================================================
05227 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);
05228 IMAQ_FUNC int IMAQ_STDCALL imaqMorphologyReconstruct(Image* dstImage, Image* srcImage, const Image* markerImage, PointFloat* points, int numOfPoints, MorphologyReconstructOperation operation, Connectivity connectivity, const ROI* roi);
05229 
05230 //============================================================================
05231 //  Texture functions
05232 //============================================================================
05233 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);
05234 IMAQ_FUNC int                           IMAQ_STDCALL imaqClassificationTextureDefectOptions(ClassifierSession* session, WindowSize* windowOptions, WaveletOptions* waveletOptions, void** bandsUsed, int* numBandsUsed, CooccurrenceOptions* cooccurrenceOptions, unsigned char setOperation);
05235 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);
05236 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);
05237 IMAQ_FUNC WaveletBandsReport*           IMAQ_STDCALL imaqExtractWaveletBands(const Image* srcImage, const WaveletOptions* waveletOptions, void* waveletBands, unsigned int numWaveletBands);
05238 
05239 //============================================================================
05240 //  Regions of Interest Manipulation functions
05241 //============================================================================
05242 IMAQ_FUNC ROI*              IMAQ_STDCALL imaqMaskToROI(const Image* mask, int* withinLimit);
05243 IMAQ_FUNC ROIProfile*       IMAQ_STDCALL imaqROIProfile(const Image* image, const ROI* roi);
05244 IMAQ_FUNC int               IMAQ_STDCALL imaqROIToMask(Image* mask, const ROI* roi, int fillValue, const Image* imageModel, int* inSpace);
05245 IMAQ_FUNC int               IMAQ_STDCALL imaqTransformROI2(ROI* roi, const CoordinateSystem* baseSystem, const CoordinateSystem* newSystem);
05246 IMAQ_FUNC LabelToROIReport* IMAQ_STDCALL imaqLabelToROI(const Image* image, const unsigned int* labelsIn, unsigned int numLabelsIn, int maxNumVectors, int isExternelEdges);
05247 
05248 //============================================================================
05249 //  Morphology functions
05250 //============================================================================
05251 IMAQ_FUNC int IMAQ_STDCALL imaqGrayMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
05252 
05253 //============================================================================
05254 //  Classification functions
05255 //============================================================================
05256 IMAQ_FUNC int                            IMAQ_STDCALL imaqAddClassifierSample(Image* image, ClassifierSession* session, const ROI* roi, const char* sampleClass, double* featureVector, unsigned int vectorSize);
05257 IMAQ_FUNC ClassifierReportAdvanced*      IMAQ_STDCALL imaqAdvanceClassify(Image* image, const ClassifierSession* session, const ROI* roi, double* featureVector, unsigned int vectorSize);
05258 IMAQ_FUNC ClassifierReport*              IMAQ_STDCALL imaqClassify(Image* image, const ClassifierSession* session, const ROI* roi, double* featureVector, unsigned int vectorSize);
05259 IMAQ_FUNC ClassifierSession*             IMAQ_STDCALL imaqCreateClassifier(ClassifierType type);
05260 IMAQ_FUNC int                            IMAQ_STDCALL imaqDeleteClassifierSample(ClassifierSession* session, int index);
05261 IMAQ_FUNC ClassifierAccuracyReport*      IMAQ_STDCALL imaqGetClassifierAccuracy(const ClassifierSession* session);
05262 IMAQ_FUNC ClassifierSampleInfo*          IMAQ_STDCALL imaqGetClassifierSampleInfo(const ClassifierSession* session, int index, int* numSamples);
05263 IMAQ_FUNC int                            IMAQ_STDCALL imaqGetColorClassifierOptions(const ClassifierSession* session, ColorOptions* options);
05264 IMAQ_FUNC int                            IMAQ_STDCALL imaqGetNearestNeighborOptions(const ClassifierSession* session, NearestNeighborOptions* options);
05265 IMAQ_FUNC int                            IMAQ_STDCALL imaqGetParticleClassifierOptions2(const ClassifierSession* session, ParticleClassifierPreprocessingOptions2* preprocessingOptions, ParticleClassifierOptions* options);
05266 IMAQ_FUNC ClassifierSession*             IMAQ_STDCALL imaqReadClassifierFile(ClassifierSession* session, const char* fileName, ReadClassifierFileMode mode, ClassifierType* type, ClassifierEngineType* engine, String255 description);
05267 IMAQ_FUNC int                            IMAQ_STDCALL imaqRelabelClassifierSample(ClassifierSession* session, int index, const char* newClass);
05268 IMAQ_FUNC int                            IMAQ_STDCALL imaqSetParticleClassifierOptions2(ClassifierSession* session, const ParticleClassifierPreprocessingOptions2* preprocessingOptions, const ParticleClassifierOptions* options);
05269 IMAQ_FUNC int                            IMAQ_STDCALL imaqSetColorClassifierOptions(ClassifierSession* session, const ColorOptions* options);
05270 IMAQ_FUNC NearestNeighborTrainingReport* IMAQ_STDCALL imaqTrainNearestNeighborClassifier(ClassifierSession* session, const NearestNeighborOptions* options);
05271 IMAQ_FUNC int                            IMAQ_STDCALL imaqWriteClassifierFile(const ClassifierSession* session, const char* fileName, WriteClassifierFileMode mode, const String255 description);
05272 
05273 //============================================================================
05274 //  Measure Distances functions
05275 //============================================================================
05276 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);
05277 
05278 //============================================================================
05279 //  Inspection functions
05280 //============================================================================
05281 IMAQ_FUNC int IMAQ_STDCALL imaqCompareGoldenTemplate(const Image* image, const Image* goldenTemplate, Image* brightDefects, Image* darkDefects, const InspectionAlignment* alignment, const InspectionOptions* options);
05282 IMAQ_FUNC int IMAQ_STDCALL imaqLearnGoldenTemplate(Image* goldenTemplate, PointFloat originOffset, const Image* mask);
05283 //============================================================================
05284 //  Obsolete functions
05285 //============================================================================
05286 IMAQ_FUNC int                    IMAQ_STDCALL imaqRotate(Image* dest, const Image* source, float angle, PixelValue fill, InterpolationMethod method);
05287 IMAQ_FUNC int                    IMAQ_STDCALL imaqWritePNGFile(const Image* image, const char* fileName, unsigned int compressionSpeed, const RGBValue* colorTable);
05288 IMAQ_FUNC ParticleReport*        IMAQ_STDCALL imaqSelectParticles(const Image* image, const ParticleReport* reports, int reportCount, int rejectBorder, const SelectParticleCriteria* criteria, int criteriaCount, int* selectedCount);
05289 IMAQ_FUNC int                    IMAQ_STDCALL imaqParticleFilter(Image* dest, Image* source, const ParticleFilterCriteria* criteria, int criteriaCount, int rejectMatches, int connectivity8);
05290 IMAQ_FUNC ParticleReport*        IMAQ_STDCALL imaqGetParticleInfo(Image* image, int connectivity8, ParticleInfoMode mode, int* reportCount);
05291 IMAQ_FUNC int                    IMAQ_STDCALL imaqCalcCoeff(const Image* image, const ParticleReport* report, MeasurementValue parameter, float* coefficient);
05292 IMAQ_FUNC EdgeReport*            IMAQ_STDCALL imaqEdgeTool(const Image* image, const Point* points, int numPoints, const EdgeOptions* options, int* numEdges);
05293 IMAQ_FUNC CircleReport*          IMAQ_STDCALL imaqCircles(Image* dest, const Image* source, float minRadius, float maxRadius, int* numCircles);
05294 IMAQ_FUNC int                    IMAQ_STDCALL imaqLabel(Image* dest, Image* source, int connectivity8, int* particleCount);
05295 IMAQ_FUNC int                    IMAQ_STDCALL imaqFitEllipse(const PointFloat* points, int numPoints, BestEllipse* ellipse);
05296 IMAQ_FUNC int                    IMAQ_STDCALL imaqFitCircle(const PointFloat* points, int numPoints, BestCircle* circle);
05297 IMAQ_FUNC Color                  IMAQ_STDCALL imaqChangeColorSpace(const Color* sourceColor, ColorMode sourceSpace, ColorMode destSpace);
05298 IMAQ_FUNC PatternMatch*          IMAQ_STDCALL imaqMatchPattern(const Image* image, Image* pattern, const MatchPatternOptions* options, Rect searchRect, int* numMatches);
05299 IMAQ_FUNC int                    IMAQ_STDCALL imaqConvex(Image* dest, const Image* source);
05300 IMAQ_FUNC int                    IMAQ_STDCALL imaqIsVisionInfoPresent(const Image* image, VisionInfoType type, int* present);
05301 IMAQ_FUNC int                    IMAQ_STDCALL imaqLineGaugeTool(const Image* image, Point start, Point end, LineGaugeMethod method, const EdgeOptions* edgeOptions, const CoordinateTransform* reference, float* distance);
05302 IMAQ_FUNC int                    IMAQ_STDCALL imaqBestCircle(const PointFloat* points, int numPoints, PointFloat* center, double* radius);
05303 IMAQ_FUNC int                    IMAQ_STDCALL imaqSavePattern(const Image* pattern, const char* fileName);
05304 IMAQ_FUNC int                    IMAQ_STDCALL imaqLoadPattern(Image* pattern, const char* fileName);
05305 IMAQ_FUNC int                    IMAQ_STDCALL imaqTransformROI(ROI* roi, Point originStart, float angleStart, Point originFinal, float angleFinal);
05306 IMAQ_FUNC int                    IMAQ_STDCALL imaqCoordinateReference(const Point* points, ReferenceMode mode, Point* origin, float* angle);
05307 IMAQ_FUNC ContourInfo*           IMAQ_STDCALL imaqGetContourInfo(const ROI* roi, ContourID id);
05308 IMAQ_FUNC int                    IMAQ_STDCALL imaqSetWindowOverlay(int windowNumber, const Overlay* overlay);
05309 IMAQ_FUNC Overlay*               IMAQ_STDCALL imaqCreateOverlayFromROI(const ROI* roi);
05310 IMAQ_FUNC Overlay*               IMAQ_STDCALL imaqCreateOverlayFromMetafile(const void* metafile);
05311 IMAQ_FUNC int                    IMAQ_STDCALL imaqSetCalibrationInfo(Image* image, CalibrationUnit unit, float xDistance, float yDistance);
05312 IMAQ_FUNC int                    IMAQ_STDCALL imaqGetCalibrationInfo(const Image* image, CalibrationUnit* unit, float* xDistance, float* yDistance);
05313 IMAQ_FUNC int                    IMAQ_STDCALL imaqConstructROI(const Image* image, ROI* roi, Tool initialTool, const ToolWindowOptions* tools, const ConstructROIOptions* options, int* okay);
05314 IMAQ_FUNC int                    IMAQ_STDCALL imaqGetParticleClassifierOptions(const ClassifierSession* session, ParticleClassifierPreprocessingOptions* preprocessingOptions, ParticleClassifierOptions* options);
05315 IMAQ_FUNC int                    IMAQ_STDCALL imaqZoomWindow(int windowNumber, int xZoom, int yZoom, Point center);
05316 IMAQ_FUNC int                    IMAQ_STDCALL imaqGetWindowZoom(int windowNumber, int* xZoom, int* yZoom);
05317 IMAQ_FUNC int                    IMAQ_STDCALL imaqParticleFilter3(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, const ParticleFilterOptions* options, const ROI* roi, int* numParticles);
05318 IMAQ_FUNC ReadTextReport2*       IMAQ_STDCALL imaqReadText2(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
05319 IMAQ_FUNC int                    IMAQ_STDCALL imaqLearnPattern2(Image* image, LearningMode learningMode, LearnPatternAdvancedOptions* advancedOptions);
05320 IMAQ_FUNC int                    IMAQ_STDCALL imaqConvolve(Image* dest, Image* source, const float* kernel, int matrixRows, int matrixCols, float normalize, const Image* mask);
05321 IMAQ_FUNC int                    IMAQ_STDCALL imaqDivideConstant(Image* dest, const Image* source, PixelValue value);
05322 IMAQ_FUNC int                    IMAQ_STDCALL imaqDivide(Image* dest, const Image* sourceA, const Image* sourceB);
05323 IMAQ_FUNC EdgeReport2*           IMAQ_STDCALL imaqEdgeTool3(const Image* image, const ROI* roi, EdgeProcess processType, const EdgeOptions2* edgeOptions);
05324 IMAQ_FUNC ConcentricRakeReport*  IMAQ_STDCALL imaqConcentricRake(const Image* image, const ROI* roi, ConcentricRakeDirection direction, EdgeProcess process, const RakeOptions* options);
05325 IMAQ_FUNC SpokeReport*           IMAQ_STDCALL imaqSpoke(const Image* image, const ROI* roi, SpokeDirection direction, EdgeProcess process, const SpokeOptions* options);
05326 IMAQ_FUNC int                    IMAQ_STDCALL imaqLearnPattern(Image* image, LearningMode learningMode);
05327 IMAQ_FUNC int                    IMAQ_STDCALL imaqLookup(Image* dest, const Image* source, const short* table, const Image* mask);
05328 IMAQ_FUNC PatternMatch*          IMAQ_STDCALL imaqMatchPattern2(const Image* image, const Image* pattern, const MatchPatternOptions* options, const MatchPatternAdvancedOptions* advancedOptions, Rect searchRect, int* numMatches);
05329 IMAQ_FUNC int                    IMAQ_STDCALL imaqSetParticleClassifierOptions(ClassifierSession* session, const ParticleClassifierPreprocessingOptions* preprocessingOptions, const ParticleClassifierOptions* options);
05330 IMAQ_FUNC int                    IMAQ_STDCALL imaqCopyCalibrationInfo(Image* dest, const Image* source);
05331 IMAQ_FUNC int                    IMAQ_STDCALL imaqParticleFilter2(Image* dest, Image* source, const ParticleFilterCriteria2* criteria, int criteriaCount, int rejectMatches, int connectivity8, int* numParticles);
05332 IMAQ_FUNC EdgeReport*            IMAQ_STDCALL imaqEdgeTool2(const Image* image, const Point* points, int numPoints, EdgeProcess process, const EdgeOptions* options, int* numEdges);
05333 IMAQ_FUNC ContourID              IMAQ_STDCALL imaqAddRotatedRectContour(ROI* roi, RotatedRect rect);
05334 IMAQ_FUNC Barcode2DInfo*         IMAQ_STDCALL imaqReadDataMatrixBarcode(const Image* image, const ROI* roi, const DataMatrixOptions* options, unsigned int* numBarcodes);
05335 IMAQ_FUNC LinearAverages*        IMAQ_STDCALL imaqLinearAverages(const Image* image, Rect rect);
05336 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);
05337 IMAQ_FUNC CharInfo*              IMAQ_STDCALL imaqGetCharInfo(const CharSet* set, int index);
05338 IMAQ_FUNC ReadTextReport*        IMAQ_STDCALL imaqReadText(const Image* image, const CharSet* set, const ROI* roi, const ReadTextOptions* readOptions, const OCRProcessingOptions* processingOptions, const OCRSpacingOptions* spacingOptions);
05339 IMAQ_FUNC ThresholdData*         IMAQ_STDCALL imaqAutoThreshold(Image* dest, Image* source, int numClasses, ThresholdMethod method);
05340 IMAQ_FUNC ColorHistogramReport*  IMAQ_STDCALL imaqColorHistogram(Image* image, int numClasses, ColorMode mode, const Image* mask);
05341 IMAQ_FUNC RakeReport*            IMAQ_STDCALL imaqRake(const Image* image, const ROI* roi, RakeDirection direction, EdgeProcess process, const RakeOptions* options);
05342 #endif
05343 
 All Classes Functions Variables