This repository has been archived on 2020-09-21. You can view files and clone it, but cannot push or open issues or pull requests.
FRC2016-old/Robot2016/wpilib/cpp/current/include/nivision.h
Jason 6d0e75aa64 Added new Robot project using PWM drive train... Much simpler...
Signed-off-by: Jason <jason@dublinschool.org>
2016-02-09 16:23:45 -05:00

8830 lines
465 KiB
C

/*============================================================================*/
/* IMAQ Vision */
/*----------------------------------------------------------------------------*/
/* Copyright (c) National Instruments 2001. All Rights Reserved. */
/*----------------------------------------------------------------------------*/
/* */
/* Title: NIVision.h */
/* */
/*============================================================================*/
#if !defined(NiVision_h)
#define NiVision_h
//============================================================================
// Includes
//============================================================================
#include <stddef.h>
//============================================================================
// Control Defines
//============================================================================
#if !defined(IMAQ_IMPORT)
#ifndef __GNUC__
#define IMAQ_IMPORT __declspec(dllimport)
#else
#define IMAQ_IMPORT
#endif
#endif
#if !defined(IMAQ_FUNC)
#if !defined(__cplusplus)
#define IMAQ_FUNC IMAQ_IMPORT
#else
#define IMAQ_FUNC extern "C" IMAQ_IMPORT
#endif
#endif
#if !defined(IMAQ_STDCALL)
#ifndef __GNUC__
#define IMAQ_STDCALL __stdcall
#else
#define IMAQ_STDCALL
#endif
#endif
#ifdef _CVI_
#pragma EnableLibraryRuntimeChecking
#include <ansi_c.h>
#endif
#define IMAQ_CALLBACK __cdecl
//============================================================================
// Manifest Constants
//============================================================================
#ifndef NULL
#ifdef __cplusplus
#define NULL ((void*)0)
#else
#define NULL 0
#endif
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#define IMAQ_DEFAULT_SHOW_COORDINATES TRUE
#define IMAQ_DEFAULT_MAX_ICONS_PER_LINE 4
#define IMAQ_DEFAULT_LEARNING_MODE IMAQ_LEARN_SHIFT_INFORMATION
#define IMAQ_DEFAULT_BMP_COMPRESS FALSE
#define IMAQ_DEFAULT_PNG_QUALITY 750
#define IMAQ_DEFAULT_JPEG_QUALITY 750
#define IMAQ_ALL_CONTOURS -1
#define IMAQ_ALL_WINDOWS -1
#define IMAQ_SHIFT 1
#define IMAQ_ALT 2
#define IMAQ_CTRL 4
#define IMAQ_CAPS_LOCK 8
#define IMAQ_MODAL_DIALOG -1
#define IMAQ_INIT_RGB_TRANSPARENT \
{ 0, 0, 0, 1 }
#define IMAQ_INIT_RGB_RED \
{ 0, 0, 255, 0 }
#define IMAQ_INIT_RGB_BLUE \
{ 255, 0, 0, 0 }
#define IMAQ_INIT_RGB_GREEN \
{ 0, 255, 0, 0 }
#define IMAQ_INIT_RGB_YELLOW \
{ 0, 255, 255, 0 }
#define IMAQ_INIT_RGB_WHITE \
{ 255, 255, 255, 0 }
#define IMAQ_INIT_RGB_BLACK \
{ 0, 0, 0, 0 }
#define IMAQ_USE_DEFAULT_QUALITY -1
#define IMAQ_ALL_SAMPLES -1
#define IMAQ_ALL_OBJECTS -1
#define IMAQ_ALL_CHARACTERS -1
//============================================================================
// Predefined Valid Characters
//============================================================================
#define IMAQ_ANY_CHARACTER "" // Any Character
#define IMAQ_ALPHABETIC \
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" // Alphabetic
#define IMAQ_ALPHANUMERIC \
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" // Alphanumeric
#define IMAQ_UPPERCASE_LETTERS "ABCDEFGHIJKLMNOPQRSTUVWXYZ" // Uppercase
// Letters
#define IMAQ_LOWERCASE_LETTERS "abcdefghijklmnopqrstuvwxyz" // Lowercase
// Letters
#define IMAQ_DECIMAL_DIGITS "0123456789" // Decimal Digits
#define IMAQ_HEXADECIMAL_DIGITS "0123456789ABCDEFabcdef" // Hexadecimal Digits
#define IMAQ_PATTERN \
"\xFF" // Pattern (A single character string with the character value set to
// 255)
#define IMAQ_FORCE_SPACE " " // Force Space
//============================================================================
// Macros
//============================================================================
#define IMAQ_NO_RECT imaqMakeRect(0, 0, 0x7FFFFFFF, 0x7FFFFFFF)
#define IMAQ_NO_ROTATED_RECT \
imaqMakeRotatedRect(0, 0, 0x7FFFFFFF, 0x7FFFFFFF, 0)
#define IMAQ_NO_POINT imaqMakePoint(-1, -1)
#define IMAQ_NO_POINT_FLOAT imaqMakePointFloat(-1.0, -1.0)
#define IMAQ_NO_OFFSET imaqMakePointFloat(0.0, 0.0)
//============================================================================
// When in Borland, some functions must be mapped to different names.
// This accomplishes said task.
//============================================================================
#if defined(__BORLANDC__) || (defined(_CVI_) && defined(_NI_BC_))
#define imaqMakePoint imaqMakePoint_BC
#define imaqMakePointFloat imaqMakePointFloat_BC
#endif
//============================================================================
// When in Watcom, some functions must be mapped to different names.
// This accomplishes said task.
//============================================================================
#if defined(__WATCOMC__) || (defined(_CVI_) && defined(_NI_WC_))
#define imaqMakePoint imaqMakePoint_BC
#define imaqMakePointFloat imaqMakePointFloat_BC
#endif
//============================================================================
// If using Visual C++, force startup & shutdown code to run.
//============================================================================
#if defined(_MSC_VER) && !defined(_CVI_) && !defined(__BORLANDC__)
#pragma comment(linker, "/INCLUDE:_nivision_startup_shutdown")
#pragma comment(linker, "/DEFAULTLIB:nivision.lib")
#endif
//============================================================================
// Error Codes
//============================================================================
#define ERR_SUCCESS 0 // No error.
#define ERR_SYSTEM_ERROR -1074396160 // System error.
#define ERR_OUT_OF_MEMORY \
-1074396159 // Not enough memory for requested operation.
#define ERR_MEMORY_ERROR -1074396158 // Memory error.
#define ERR_UNREGISTERED -1074396157 // Unlicensed copy of NI Vision.
#define ERR_NEED_FULL_VERSION \
-1074396156 // The function requires an NI Vision 5.0 Advanced license.
#define ERR_UNINIT -1074396155 // NI Vision did not initialize properly.
#define ERR_IMAGE_TOO_SMALL \
-1074396154 // The image is not large enough for the operation.
#define ERR_BARCODE_CODABAR \
-1074396153 // The barcode is not a valid Codabar barcode.
#define ERR_BARCODE_CODE39 \
-1074396152 // The barcode is not a valid Code 3 of 9 barcode.
#define ERR_BARCODE_CODE93 \
-1074396151 // The barcode is not a valid Code93 barcode.
#define ERR_BARCODE_CODE128 \
-1074396150 // The barcode is not a valid Code128 barcode.
#define ERR_BARCODE_EAN8 \
-1074396149 // The barcode is not a valid EAN8 barcode.
#define ERR_BARCODE_EAN13 \
-1074396148 // The barcode is not a valid EAN13 barcode.
#define ERR_BARCODE_I25 \
-1074396147 // The barcode is not a valid Interleaved 2 of 5 barcode.
#define ERR_BARCODE_MSI -1074396146 // The barcode is not a valid MSI barcode.
#define ERR_BARCODE_UPCA \
-1074396145 // The barcode is not a valid UPCA barcode.
#define ERR_BARCODE_CODE93_SHIFT \
-1074396144 // The Code93 barcode contains invalid shift encoding.
#define ERR_BARCODE_TYPE -1074396143 // The barcode type is invalid.
#define ERR_BARCODE_INVALID \
-1074396142 // The image does not represent a valid linear barcode.
#define ERR_BARCODE_CODE128_FNC \
-1074396141 // The FNC value in the Code128 barcode is not located before the
// first data value.
#define ERR_BARCODE_CODE128_SET \
-1074396140 // The starting code set in the Code128 barcode is not valid.
#define ERR_ROLLBACK_RESOURCE_OUT_OF_MEMORY \
-1074396139 // Not enough reserved memory in the timed environment for the
// requested operation.
#define ERR_ROLLBACK_NOT_SUPPORTED \
-1074396138 // The function is not supported when a time limit is active.
#define ERR_DIRECTX_DLL_NOT_FOUND \
-1074396137 // Quartz.dll not found. Install DirectX 8.1 or later.
#define ERR_DIRECTX_INVALID_FILTER_QUALITY \
-1074396136 // The filter quality you provided is invalid. Valid quality
// values range from -1 to 1000.
#define ERR_INVALID_BUTTON_LABEL -1074396135 // Invalid button label.
#define ERR_THREAD_INITIALIZING \
-1074396134 // Could not execute the function in the separate thread because
// the thread has not completed initialization.
#define ERR_THREAD_COULD_NOT_INITIALIZE \
-1074396133 // Could not execute the function in the separate thread because
// the thread could not initialize.
#define ERR_MASK_NOT_TEMPLATE_SIZE \
-1074396132 // The mask must be the same size as the template.
#define ERR_NOT_RECT_OR_ROTATED_RECT \
-1074396130 // The ROI must only have either a single Rectangle contour or a
// single Rotated Rectangle contour.
#define ERR_ROLLBACK_UNBOUNDED_INTERFACE \
-1074396129 // During timed execution, you must use the preallocated version
// of this operation.
#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.
#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.
#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.
#define ERR_INVALID_CONTRAST_THRESHOLD \
-1074396125 // Invalid contrast threshold. The threshold value must be
// greater than 0.
#define ERR_INVALID_CALIBRATION_ROI_MODE \
-1074396124 // NI Vision does not support the calibration ROI mode you
// supplied.
#define ERR_INVALID_CALIBRATION_MODE \
-1074396123 // NI Vision does not support the calibration mode you supplied.
#define ERR_DRAWTEXT_COLOR_MUST_BE_GRAYSCALE \
-1074396122 // Set the foreground and background text colors to grayscale to
// draw on a U8 image.
#define ERR_SATURATION_THRESHOLD_OUT_OF_RANGE \
-1074396121 // The value of the saturation threshold must be from 0 to 255.
#define ERR_NOT_IMAGE -1074396120 // Not an image.
#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.
#define ERR_INVALID_STEP_SIZE \
-1074396118 // Step size must be greater than zero and less than Image size
#define ERR_MATRIX_SIZE \
-1074396117 // Invalid matrix size in the structuring element.
#define ERR_CALIBRATION_INSF_POINTS \
-1074396116 // Insufficient number of calibration feature points.
#define ERR_CALIBRATION_IMAGE_CORRECTED \
-1074396115 // The operation is invalid in a corrected image.
#define ERR_CALIBRATION_INVALID_ROI \
-1074396114 // The ROI contains an invalid contour type or is not contained
// in the ROI learned for calibration.
#define ERR_CALIBRATION_IMAGE_UNCALIBRATED \
-1074396113 // The source/input image has not been calibrated.
#define ERR_INCOMP_MATRIX_SIZE \
-1074396112 // The number of pixel and real-world coordinates must be equal.
#define ERR_CALIBRATION_FAILED_TO_FIND_GRID \
-1074396111 // Unable to automatically detect grid because the image is too
// distorted.
#define ERR_CALIBRATION_INFO_VERSION \
-1074396110 // Invalid calibration information version.
#define ERR_CALIBRATION_INVALID_SCALING_FACTOR \
-1074396109 // Invalid calibration scaling factor.
#define ERR_CALIBRATION_ERRORMAP \
-1074396108 // The calibration error map cannot be computed.
#define ERR_CALIBRATION_INFO_1 \
-1074396107 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_2 \
-1074396106 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_3 \
-1074396105 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_4 \
-1074396104 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_5 \
-1074396103 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_6 \
-1074396102 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_MICRO_PLANE \
-1074396101 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_PERSPECTIVE_PROJECTION \
-1074396100 // Invalid calibration template image.
#define ERR_CALIBRATION_INFO_SIMPLE_TRANSFORM \
-1074396099 // Invalid calibration template image.
#define ERR_RESERVED_MUST_BE_NULL \
-1074396098 // You must pass NULL for the reserved parameter.
#define ERR_INVALID_PARTICLE_PARAMETER_VALUE \
-1074396097 // You entered an invalid selection in the particle parameter.
#define ERR_NOT_AN_OBJECT -1074396096 // Not an object.
#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.
#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.
#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.
#define ERR_ROLLBACK_RESOURCE_NON_EMPTY_INITIALIZE \
-1074396092 // Multiple timed environments are not supported.
#define ERR_ROLLBACK_RESOURCE_UNINITIALIZED_ENABLE \
-1074396091 // A time limit cannot be started until the timed environment is
// initialized.
#define ERR_ROLLBACK_RESOURCE_ENABLED \
-1074396090 // Multiple timed environments are not supported.
#define ERR_ROLLBACK_RESOURCE_REINITIALIZE \
-1074396089 // The timed environment is already initialized.
#define ERR_ROLLBACK_RESIZE \
-1074396088 // The results of the operation exceeded the size limits on the
// output data arrays.
#define ERR_ROLLBACK_STOP_TIMER \
-1074396087 // No time limit is available to stop.
#define ERR_ROLLBACK_START_TIMER -1074396086 // A time limit could not be set.
#define ERR_ROLLBACK_INIT_TIMER \
-1074396085 // The timed environment could not be initialized.
#define ERR_ROLLBACK_DELETE_TIMER \
-1074396084 // No initialized timed environment is available to close.
#define ERR_ROLLBACK_TIMEOUT -1074396083 // The time limit has expired.
#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.
#define ERR_BAD_PASSWORD -1074396081 // Incorrect password.
#define ERR_INVALID_IMAGE_TYPE -1074396080 // Invalid image type.
#define ERR_INVALID_METAFILE_HANDLE -1074396079 // Invalid metafile handle.
#define ERR_INCOMP_TYPE -1074396077 // Incompatible image type.
#define ERR_COORD_SYS_FIRST_AXIS \
-1074396076 // Unable to fit a line for the primary axis.
#define ERR_COORD_SYS_SECOND_AXIS \
-1074396075 // Unable to fit a line for the secondary axis.
#define ERR_INCOMP_SIZE -1074396074 // Incompatible image size.
#define ERR_MASK_OUTSIDE_IMAGE \
-1074396073 // When the mask's offset was applied, the mask was entirely
// outside of the image.
#define ERR_INVALID_BORDER -1074396072 // Invalid image border.
#define ERR_INVALID_SCAN_DIRECTION -1074396071 // Invalid scan direction.
#define ERR_INVALID_FUNCTION -1074396070 // Unsupported function.
#define ERR_INVALID_COLOR_MODE \
-1074396069 // NI Vision does not support the color mode you specified.
#define ERR_INVALID_ACTION \
-1074396068 // The function does not support the requested action.
#define ERR_IMAGES_NOT_DIFF \
-1074396067 // The source image and destination image must be different.
#define ERR_INVALID_POINTSYMBOL -1074396066 // Invalid point symbol.
#define ERR_CANT_RESIZE_EXTERNAL \
-1074396065 // Cannot resize an image in an acquisition buffer.
#define ERR_EXTERNAL_NOT_SUPPORTED \
-1074396064 // This operation is not supported for images in an acquisition
// buffer.
#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.
#define ERR_INVALID_TOLERANCE \
-1074396062 // The tolerance parameter must be greater than or equal to 0.
#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.
#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.
#define ERR_INVALID_MAX_ITERATIONS \
-1074396059 // Invalid maximum number of iterations. Maximum number of
// iterations must be greater than zero.
#define ERR_INVALID_ROTATION_MODE -1074396058 // Invalid rotation mode.
#define ERR_INVALID_SEARCH_VECTOR_WIDTH \
-1074396057 // Invalid search vector width. The width must be an odd number
// greater than zero.
#define ERR_INVALID_MATRIX_MIRROR_MODE \
-1074396056 // Invalid matrix mirror mode.
#define ERR_INVALID_ASPECT_RATIO \
-1074396055 // Invalid aspect ratio. Valid aspect ratios must be greater than
// or equal to zero.
#define ERR_INVALID_CELL_FILL_TYPE -1074396054 // Invalid cell fill type.
#define ERR_INVALID_BORDER_INTEGRITY \
-1074396053 // Invalid border integrity. Valid values range from 0 to 100.
#define ERR_INVALID_DEMODULATION_MODE -1074396052 // Invalid demodulation mode.
#define ERR_INVALID_CELL_FILTER_MODE -1074396051 // Invalid cell filter mode.
#define ERR_INVALID_ECC_TYPE -1074396050 // Invalid ECC type.
#define ERR_INVALID_MATRIX_POLARITY -1074396049 // Invalid matrix polarity.
#define ERR_INVALID_CELL_SAMPLE_SIZE -1074396048 // Invalid cell sample size.
#define ERR_INVALID_LINEAR_AVERAGE_MODE \
-1074396047 // Invalid linear average mode.
#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.
#define ERR_INVALID_2D_BARCODE_SUBTYPE \
-1074396045 // Invalid 2-D barcode Data Matrix subtype.
#define ERR_INVALID_2D_BARCODE_SHAPE -1074396044 // Invalid 2-D barcode shape.
#define ERR_INVALID_2D_BARCODE_CELL_SHAPE \
-1074396043 // Invalid 2-D barcode cell shape.
#define ERR_INVALID_2D_BARCODE_CONTRAST \
-1074396042 // Invalid 2-D barcode contrast.
#define ERR_INVALID_2D_BARCODE_TYPE -1074396041 // Invalid 2-D barcode type.
#define ERR_DRIVER -1074396040 // Cannot access NI-IMAQ driver.
#define ERR_IO_ERROR -1074396039 // I/O error.
#define ERR_FIND_COORDSYS_MORE_THAN_ONE_EDGE \
-1074396038 // When searching for a coordinate system, the number of lines to
// fit must be 1.
#define ERR_TIMEOUT -1074396037 // Trigger timeout.
#define ERR_INVALID_SKELETONMODE \
-1074396036 // The Skeleton mode you specified is invalid.
#define ERR_TEMPLATEIMAGE_NOCIRCLE \
-1074396035 // The template image does not contain enough information for
// learning the aggressive search strategy.
#define ERR_TEMPLATEIMAGE_EDGEINFO \
-1074396034 // The template image does not contain enough edge information
// for the sample size(s) requested.
#define ERR_TEMPLATEDESCRIPTOR_LEARNSETUPDATA \
-1074396033 // Invalid template descriptor.
#define ERR_TEMPLATEDESCRIPTOR_ROTATION_SEARCHSTRATEGY \
-1074396032 // The template descriptor does not contain data required for the
// requested search strategy in rotation-invariant matching.
#define ERR_INVALID_TETRAGON \
-1074396031 // The input tetragon must have four points. The points are
// specified clockwise starting with the top left point.
#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.
#define ERR_TIME_BOUNDED_EXECUTION_NOT_SUPPORTED \
-1074396028 // NI Vision no longer supports time-bounded execution.
#define ERR_INVALID_COLOR_RESOLUTION \
-1074396027 // Invalid Color Resolution for the Color Classifier
#define ERR_INVALID_PROCESS_TYPE_FOR_EDGE_DETECTION \
-1074396026 // Invalid process type for edge detection.
#define ERR_INVALID_ANGLE_RANGE_FOR_STRAIGHT_EDGE \
-1074396025 // Angle range value should be equal to or greater than zero.
#define ERR_INVALID_MIN_COVERAGE_FOR_STRAIGHT_EDGE \
-1074396024 // Minimum coverage value should be greater than zero.
#define ERR_INVALID_ANGLE_TOL_FOR_STRAIGHT_EDGE \
-1074396023 // The angle tolerance should be equal to or greater than 0.001.
#define ERR_INVALID_SEARCH_MODE_FOR_STRAIGHT_EDGE \
-1074396022 // Invalid search mode for detecting straight edges
#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.
#define ERR_INVALID_GRADING_MODE -1074396020 // Invalid grading mode.
#define ERR_INVALID_THRESHOLD_PERCENTAGE \
-1074396019 // Invalid threshold percentage. Valid values range from 0 to
// 100.
#define ERR_INVALID_EDGE_POLARITY_SEARCH_MODE \
-1074396018 // Invalid edge polarity search mode.
#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.
#define ERR_NO_VIDEO_DRIVER -1074396016 // No video driver is installed.
#define ERR_RPC_EXECUTE_IVB \
-1074396015 // Unable to establish network connection with remote system.
#define ERR_INVALID_VIDEO_BLIT \
-1074396014 // RT Video Out does not support displaying the supplied image
// type at the selected color depth.
#define ERR_INVALID_VIDEO_MODE -1074396013 // Invalid video mode.
#define ERR_RPC_EXECUTE \
-1074396012 // Unable to display remote image on network connection.
#define ERR_RPC_BIND -1074396011 // Unable to establish network connection.
#define ERR_INVALID_FRAME_NUMBER -1074396010 // Invalid frame number.
#define ERR_DIRECTX \
-1074396009 // An internal DirectX error has occurred. Try upgrading to the
// latest version of DirectX.
#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.
#define ERR_DIRECTX_INCOMPATIBLE_COMPRESSION_FILTER \
-1074396007 // Incompatible compression filter.
#define ERR_DIRECTX_UNKNOWN_COMPRESSION_FILTER \
-1074396006 // Unknown compression filter.
#define ERR_INVALID_AVI_SESSION -1074396005 // Invalid AVI session.
#define ERR_DIRECTX_CERTIFICATION_FAILURE \
-1074396004 // A software key is restricting the use of this compression
// filter.
#define ERR_AVI_DATA_EXCEEDS_BUFFER_SIZE \
-1074396003 // The data for this frame exceeds the data buffer size specified
// when creating the AVI file.
#define ERR_INVALID_LINEGAUGEMETHOD -1074396002 // Invalid line gauge method.
#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.
#define ERR_FILE_FILE_HEADER -1074396000 // Invalid file header.
#define ERR_FILE_FILE_TYPE -1074395999 // Invalid file type.
#define ERR_FILE_COLOR_TABLE -1074395998 // Invalid color table.
#define ERR_FILE_ARGERR -1074395997 // Invalid parameter.
#define ERR_FILE_OPEN -1074395996 // File is already open for writing.
#define ERR_FILE_NOT_FOUND -1074395995 // File not found.
#define ERR_FILE_TOO_MANY_OPEN -1074395994 // Too many files open.
#define ERR_FILE_IO_ERR -1074395993 // File I/O error.
#define ERR_FILE_PERMISSION -1074395992 // File access denied.
#define ERR_FILE_INVALID_TYPE \
-1074395991 // NI Vision does not support the file type you specified.
#define ERR_FILE_GET_INFO -1074395990 // Could not read Vision info from file.
#define ERR_FILE_READ -1074395989 // Unable to read data.
#define ERR_FILE_WRITE -1074395988 // Unable to write data.
#define ERR_FILE_EOF -1074395987 // Premature end of file.
#define ERR_FILE_FORMAT -1074395986 // Invalid file format.
#define ERR_FILE_OPERATION -1074395985 // Invalid file operation.
#define ERR_FILE_INVALID_DATA_TYPE \
-1074395984 // NI Vision does not support the file data type you specified.
#define ERR_FILE_NO_SPACE -1074395983 // Disk full.
#define ERR_INVALID_FRAMES_PER_SECOND \
-1074395982 // The frames per second in an AVI must be greater than zero.
#define ERR_INSUFFICIENT_BUFFER_SIZE \
-1074395981 // The buffer that was passed in is not big enough to hold all of
// the data.
#define ERR_COM_INITIALIZE -1074395980 // Error initializing COM.
#define ERR_INVALID_PARTICLE_INFO \
-1074395979 // The image has invalid particle information. Call
// imaqCountParticles on the image to create particle
// information.
#define ERR_INVALID_PARTICLE_NUMBER -1074395978 // Invalid particle number.
#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.
#define ERR_NUMBER_OF_PALETTE_COLORS \
-1074395976 // The color palette must have exactly 0 or 256 entries.
#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.
#define ERR_UNSUPPORTED_JPEG2000_COLORSPACE_METHOD \
-1074395974 // NI Vision does not support reading JPEG2000 files with this
// colorspace method.
#define ERR_JPEG2000_UNSUPPORTED_MULTIPLE_LAYERS \
-1074395973 // NI Vision does not support reading JPEG2000 files with more
// than one layer.
#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.
#define ERR_INVALID_OFFSET \
-1074395971 // The offset you specified must be size 2.
#define ERR_INIT -1074395960 // Initialization error.
#define ERR_CREATE_WINDOW -1074395959 // Unable to create window.
#define ERR_WINDOW_ID -1074395958 // Invalid window ID.
#define ERR_ARRAY_SIZE_MISMATCH \
-1074395957 // The array sizes are not compatible.
#define ERR_INVALID_QUALITY \
-1074395956 // The quality you provided is invalid. Valid quality values
// range from -1 to 1000.
#define ERR_INVALID_MAX_WAVELET_TRANSFORM_LEVEL \
-1074395955 // Invalid maximum wavelet transform level. Valid values range
// from 0 to 255.
#define ERR_INVALID_QUANTIZATION_STEP_SIZE \
-1074395954 // The quantization step size must be greater than or equal to 0.
#define ERR_INVALID_WAVELET_TRANSFORM_MODE \
-1074395953 // Invalid wavelet transform mode.
#define ERR_ROI_NOT_POINT \
-1074395952 // The ROI must only have a single Point contour.
#define ERR_ROI_NOT_POINTS \
-1074395951 // The ROI must only have Point contours.
#define ERR_ROI_NOT_LINE \
-1074395950 // The ROI must only have a single Line contour.
#define ERR_ROI_NOT_ANNULUS \
-1074395949 // The ROI must only have a single Annulus contour.
#define ERR_INVALID_MEASURE_PARTICLES_CALIBRATION_MODE \
-1074395948 // Invalid measure particles calibration mode.
#define ERR_INVALID_PARTICLE_CLASSIFIER_THRESHOLD_TYPE \
-1074395947 // Invalid particle classifier threshold type.
#define ERR_INVALID_DISTANCE -1074395946 // Invalid Color Segmentation Distance
#define ERR_INVALID_PARTICLE_AREA \
-1074395945 // Invalid Color Segmenation Particle Area
#define ERR_CLASS_NAME_NOT_FOUND \
-1074395944 // Required Class name is not found in trained labels/Class names
#define ERR_NUMBER_LABEL_LIMIT_EXCEEDED \
-1074395943 // Number of Labels exceeded limit of label Image type
#define ERR_INVALID_DISTANCE_LEVEL \
-1074395942 // Invalid Color Segmentation distance level
#define ERR_INVALID_SVM_TYPE -1074395941 // Invalid SVM model type
#define ERR_INVALID_SVM_KERNEL -1074395940 // Invalid SVM kernel type
#define ERR_NO_SUPPORT_VECTOR_FOUND \
-1074395939 // No Support Vector is found at SVM training
#define ERR_COST_LABEL_NOT_FOUND \
-1074395938 // Label name is not found in added samples
#define ERR_EXCEEDED_SVM_MAX_ITERATION \
-1074395937 // SVM training exceeded maximim Iteration limit
#define ERR_INVALID_SVM_PARAMETER -1074395936 // Invalid SVM Parameter
#define ERR_INVALID_IDENTIFICATION_SCORE \
-1074395935 // Invalid Identification score. Must be between 0-1000.
#define ERR_INVALID_TEXTURE_FEATURE \
-1074395934 // Requested for invalid texture feature
#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)
#define ERR_INVALID_WAVELET_SUBBAND \
-1074395932 // Request for invalid wavelet subBand
#define ERR_INVALID_FINAL_STEP_SIZE \
-1074395931 // The final step size must be lesser than the initial step size
#define ERR_INVALID_ENERGY \
-1074395930 // Minimum Energy should lie between 0 and 100
#define ERR_INVALID_TEXTURE_LABEL \
-1074395929 // The classification label must be texture or defect for texture
// defect classifier
#define ERR_INVALID_WAVELET_TYPE -1074395928 // The wavelet type is invalid
#define ERR_SAME_WAVELET_BANDS_SELECTED \
-1074395927 // Same Wavelet band is selected multiple times
#define ERR_IMAGE_SIZE_MISMATCH \
-1074395926 // The two input image sizes are different
#define ERR_NUMBER_CLASS -1074395920 // Invalid number of classes.
#define ERR_INVALID_LUCAS_KANADE_WINDOW_SIZE \
-1074395888 // Both dimensions of the window size should be odd, greater than
// 2 and less than 16.
#define ERR_INVALID_MATRIX_TYPE \
-1074395887 // The type of matrix supplied to the function is not supported.
#define ERR_INVALID_OPTICAL_FLOW_TERMINATION_CRITERIA_TYPE \
-1074395886 // An invalid termination criteria was specified for the optical
// flow computation.
#define ERR_LKP_NULL_PYRAMID \
-1074395885 // The pyramid levels where not properly allocated.
#define ERR_INVALID_PYRAMID_LEVEL \
-1074395884 // The pyramid level specified cannot be negative
#define ERR_INVALID_LKP_KERNEL \
-1074395883 // The kernel must be symmetric with non-zero coefficients and
// of odd size
#define ERR_INVALID_HORN_SCHUNCK_LAMBDA \
-1074395882 // Invalid smoothing parameter in Horn Schunck operation.
#define ERR_INVALID_HORN_SCHUNCK_TYPE \
-1074395881 // Invalid stopping criteria type for Horn Schunck optical flow.
#define ERR_PARTICLE -1074395880 // Invalid particle.
#define ERR_BAD_MEASURE -1074395879 // Invalid measure number.
#define ERR_PROP_NODE_WRITE_NOT_SUPPORTED \
-1074395878 // The Image Display control does not support writing this
// property node.
#define ERR_COLORMODE_REQUIRES_CHANGECOLORSPACE2 \
-1074395877 // The specified color mode requires the use of
// imaqChangeColorSpace2.
#define ERR_UNSUPPORTED_COLOR_MODE \
-1074395876 // This function does not currently support the color mode you
// specified.
#define ERR_BARCODE_PHARMACODE \
-1074395875 // The barcode is not a valid Pharmacode symbol
#define ERR_BAD_INDEX -1074395840 // Invalid handle table index.
#define ERR_INVALID_COMPRESSION_RATIO \
-1074395837 // The compression ratio must be greater than or equal to 1.
#define ERR_TOO_MANY_CONTOURS \
-1074395801 // The ROI contains too many contours.
#define ERR_PROTECTION -1074395800 // Protection error.
#define ERR_INTERNAL -1074395799 // Internal error.
#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.
#define ERR_INVALID_CLASSIFIER_SESSION \
-1074395797 // Not a valid classifier session.
#define ERR_INVALID_KNN_METHOD \
-1074395796 // You requested an invalid Nearest Neighbor classifier method.
#define ERR_K_TOO_LOW -1074395795 // The k parameter must be greater than two.
#define ERR_K_TOO_HIGH \
-1074395794 // The k parameter must be <= the number of samples in each
// class.
#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.
#define ERR_CLASSIFIER_SESSION_NOT_TRAINED \
-1074395792 // This classifier session is not trained. You may only call this
// function on a trained classifier session.
#define ERR_CLASSIFIER_INVALID_SESSION_TYPE \
-1074395791 // This classifier function cannot be called on this type of
// classifier session.
#define ERR_INVALID_DISTANCE_METRIC \
-1074395790 // You requested an invalid distance metric.
#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.
#define ERR_NO_SAMPLES \
-1074395788 // This operation cannot be performed because you have not added
// any samples.
#define ERR_INVALID_CLASSIFIER_TYPE \
-1074395787 // You requested an invalid classifier type.
#define ERR_INVALID_PARTICLE_OPTIONS \
-1074395786 // The sum of Scale Dependence and Symmetry Dependence must be
// less than 1000.
#define ERR_NO_PARTICLE -1074395785 // The image yielded no particles.
#define ERR_INVALID_LIMITS \
-1074395784 // The limits you supplied are not valid.
#define ERR_BAD_SAMPLE_INDEX \
-1074395783 // The Sample Index fell outside the range of Samples.
#define ERR_DESCRIPTION_TOO_LONG \
-1074395782 // The description must be <= 255 characters.
#define ERR_CLASSIFIER_INVALID_ENGINE_TYPE \
-1074395781 // The engine for this classifier session does not support this
// operation.
#define ERR_INVALID_PARTICLE_TYPE \
-1074395780 // You requested an invalid particle type.
#define ERR_CANNOT_COMPACT_UNTRAINED \
-1074395779 // You may only save a session in compact form if it is trained.
#define ERR_INVALID_KERNEL_SIZE \
-1074395778 // The Kernel size must be smaller than the image size.
#define ERR_INCOMPATIBLE_CLASSIFIER_TYPES \
-1074395777 // The session you read from file must be the same type as the
// session you passed in.
#define ERR_INVALID_USE_OF_COMPACT_SESSION_FILE \
-1074395776 // You can not use a compact classification file with read
// options other than Read All.
#define ERR_ROI_HAS_OPEN_CONTOURS \
-1074395775 // The ROI you passed in may only contain closed contours.
#define ERR_NO_LABEL -1074395774 // You must pass in a label.
#define ERR_NO_DEST_IMAGE -1074395773 // You must provide a destination image.
#define ERR_INVALID_REGISTRATION_METHOD \
-1074395772 // You provided an invalid registration method.
#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.
#define ERR_INVALID_INSPECTION_TEMPLATE -1074395770 // Invalid golden template.
#define ERR_INVALID_EDGE_THICKNESS \
-1074395769 // Edge Thickness to Ignore must be greater than zero.
#define ERR_INVALID_SCALE -1074395768 // Scale must be greater than zero.
#define ERR_INVALID_ALIGNMENT \
-1074395767 // The supplied scale is invalid for your template.
#define ERR_DEPRECATED_FUNCTION \
-1074395766 // This backwards-compatibility function can not be used with
// this session. Use newer, supported functions instead.
#define ERR_INVALID_NORMALIZATION_METHOD \
-1074395763 // You must provide a valid normalization method.
#define ERR_INVALID_NIBLACK_DEVIATION_FACTOR \
-1074395762 // The deviation factor for Niblack local threshold must be
// between 0 and 1.
#define ERR_BOARD_NOT_FOUND -1074395760 // Board not found.
#define ERR_BOARD_NOT_OPEN -1074395758 // Board not opened.
#define ERR_DLL_NOT_FOUND -1074395757 // DLL not found.
#define ERR_DLL_FUNCTION_NOT_FOUND -1074395756 // DLL function not found.
#define ERR_TRIG_TIMEOUT -1074395754 // Trigger timeout.
#define ERR_CONTOUR_INVALID_REFINEMENTS \
-1074395746 // Invalid number specified for maximum contour refinements.
#define ERR_TOO_MANY_CURVES \
-1074395745 // Too many curves extracted from image. Raise the edge threshold
// or reduce the ROI.
#define ERR_CONTOUR_INVALID_KERNEL_FOR_SMOOTHING \
-1074395744 // Invalid kernel for contour smoothing. Zero indicates no
// smoothing, otherwise value must be odd.
#define ERR_CONTOUR_LINE_INVALID \
-1074395743 // The contour line fit is invalid. Line segment start and stop
// must differ.
#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.
#define ERR_CONTOUR_GPM_FAIL \
-1074395741 // Matching failed to align the template and target contours.
#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.
#define ERR_CONTOUR_CONNECT_DUPLICATE \
-1074395739 // Only one range is allowed per curve connection constraint
// type.
#define ERR_CONTOUR_CONNECT_TYPE \
-1074395738 // Invalid contour connection constraint type.
#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
#define ERR_CONTOUR_CURVATURE_KERNEL \
-1074395736 // Invalid kernel width for curvature calculation. Must be an odd
// value greater than 1.
#define ERR_CONTOUR_EXTRACT_SELECTION \
-1074395735 // Invalid Contour Selection method for contour extraction.
#define ERR_CONTOUR_EXTRACT_DIRECTION \
-1074395734 // Invalid Search Direction for contour extraction.
#define ERR_CONTOUR_EXTRACT_ROI \
-1074395733 // Invalid ROI for contour extraction. The ROI must contain an
// annulus, rectangle or rotated rectangle.
#define ERR_CONTOUR_NO_CURVES -1074395732 // No curves were found in the image.
#define ERR_CONTOUR_COMPARE_KERNEL \
-1074395731 // Invalid Smoothing Kernel width for contour comparison. Must be
// zero or an odd positive integer.
#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.
#define ERR_CONTOUR_INVALID -1074395729 // Invalid contour image.
#define ERR_INVALID_2D_BARCODE_SEARCH_MODE \
-1074395728 // NI Vision does not support the search mode you provided.
#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.
#define ERR_MATCHFACTOR_OBSOLETE \
-1074395726 // matchFactor has been obsoleted. Instead, set the
// initialMatchListLength and matchListReductionFactor in the
// MatchPatternAdvancedOptions structure.
#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.
#define ERR_CUSTOMDATA_INVALID_SIZE \
-1074395724 // The size you specified is out of the valid range.
#define ERR_CUSTOMDATA_KEY_NOT_FOUND \
-1074395723 // The key you specified cannot be found in the image.
#define ERR_CLASSIFIER_CLASSIFY_IMAGE_WITH_CUSTOM_SESSION \
-1074395722 // Custom classifier sessions only classify feature vectors. They
// do not support classifying images.
#define ERR_INVALID_BIT_DEPTH \
-1074395721 // NI Vision does not support the bit depth you supplied for the
// image you supplied.
#define ERR_BAD_ROI -1074395720 // Invalid ROI.
#define ERR_BAD_ROI_BOX -1074395719 // Invalid ROI global rectangle.
#define ERR_LAB_VERSION \
-1074395718 // The version of LabVIEW or BridgeVIEW you are running does not
// support this operation.
#define ERR_INVALID_RANGE -1074395717 // The range you supplied is invalid.
#define ERR_INVALID_SCALING_METHOD \
-1074395716 // NI Vision does not support the scaling method you provided.
#define ERR_INVALID_CALIBRATION_UNIT \
-1074395715 // NI Vision does not support the calibration unit you supplied.
#define ERR_INVALID_AXIS_ORIENTATION \
-1074395714 // NI Vision does not support the axis orientation you supplied.
#define ERR_VALUE_NOT_IN_ENUM -1074395713 // Value not in enumeration.
#define ERR_WRONG_REGION_TYPE \
-1074395712 // You selected a region that is not of the right type.
#define ERR_NOT_ENOUGH_REGIONS \
-1074395711 // You specified a viewer that does not contain enough regions.
#define ERR_TOO_MANY_PARTICLES \
-1074395710 // The image has too many particles for this process.
#define ERR_AVI_UNOPENED_SESSION \
-1074395709 // The AVI session has not been opened.
#define ERR_AVI_READ_SESSION_REQUIRED \
-1074395708 // The AVI session is a write session, but this operation
// requires a read session.
#define ERR_AVI_WRITE_SESSION_REQUIRED \
-1074395707 // The AVI session is a read session, but this operation requires
// a write session.
#define ERR_AVI_SESSION_ALREADY_OPEN \
-1074395706 // This AVI session is already open. You must close it before
// calling the Create or Open functions.
#define ERR_DATA_CORRUPTED \
-1074395705 // The data is corrupted and cannot be read.
#define ERR_INVALID_COMPRESSION_TYPE -1074395704 // Invalid compression type.
#define ERR_INVALID_TYPE_OF_FLATTEN -1074395703 // Invalid type of flatten.
#define ERR_INVALID_LENGTH \
-1074395702 // The length of the edge detection line must be greater than
// zero.
#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.
#define ERR_REQUIRES_WIN2000_OR_NEWER \
-1074395700 // The function requires the operating system to be Microsoft
// Windows 2000 or newer.
#define ERR_INVALID_CALIBRATION_METHOD \
-1074395662 // Invalid calibration method requested
#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
#define ERR_INVALID_POLYNOMIAL_MODEL_K_COUNT \
-1074395660 // Invalid number of K values
#define ERR_INVALID_DISTORTION_MODEL \
-1074395659 // Invalid distortion model type
#define ERR_CAMERA_MODEL_NOT_AVAILABLE \
-1074395658 // Camera Model is not learned
#define ERR_INVALID_THUMBNAIL_INDEX \
-1074395657 // Supplied thumbnail index is invalid
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#define ERR_INVALID_GEOMETRIC_FEATURE_TYPE \
-1074395649 // The geometric feature type specified is invalid.
#define ERR_TEMPLATE_NOT_LEARNED \
-1074395648 // You supplied a template that was not learned.
#define ERR_INVALID_MULTIPLE_GEOMETRIC_TEMPLATE \
-1074395647 // Invalid multiple geometric template.
#define ERR_NO_TEMPLATE_TO_LEARN \
-1074395646 // Need at least one template to learn.
#define ERR_INVALID_NUMBER_OF_LABELS \
-1074395645 // You supplied an invalid number of labels.
#define ERR_LABEL_TOO_LONG -1074395644 // Labels must be <= 255 characters.
#define ERR_INVALID_NUMBER_OF_MATCH_OPTIONS \
-1074395643 // You supplied an invalid number of match options.
#define ERR_LABEL_NOT_FOUND \
-1074395642 // Cannot find a label that matches the one you specified.
#define ERR_DUPLICATE_LABEL -1074395641 // Duplicate labels are not allowed.
#define ERR_TOO_MANY_ZONES \
-1074395640 // The number of zones found exceeded the capacity of the
// algorithm.
#define ERR_INVALID_HATCH_STYLE \
-1074395639 // The hatch style for the window background is invalid.
#define ERR_INVALID_FILL_STYLE \
-1074395638 // The fill style for the window background is invalid.
#define ERR_HARDWARE_DOESNT_SUPPORT_NONTEARING \
-1074395637 // Your hardware is not supported by DirectX and cannot be put
// into NonTearing mode.
#define ERR_DIRECTX_NOT_FOUND \
-1074395636 // DirectX is required for this feature. Please install the
// latest version..
#define ERR_INVALID_SHAPE_DESCRIPTOR \
-1074395635 // The passed shape descriptor is invalid.
#define ERR_INVALID_MAX_MATCH_OVERLAP \
-1074395634 // Invalid max match overlap. Values must be between -1 and 100.
#define ERR_INVALID_MIN_MATCH_SEPARATION_SCALE \
-1074395633 // Invalid minimum match separation scale. Values must be
// greater than or equal to -1.
#define ERR_INVALID_MIN_MATCH_SEPARATION_ANGLE \
-1074395632 // Invalid minimum match separation angle. Values must be
// between -1 and 360.
#define ERR_INVALID_MIN_MATCH_SEPARATION_DISTANCE \
-1074395631 // Invalid minimum match separation distance. Values must be
// greater than or equal to -1.
#define ERR_INVALID_MAXIMUM_FEATURES_LEARNED \
-1074395630 // Invalid maximum number of features learn. Values must be
// integers greater than zero.
#define ERR_INVALID_MAXIMUM_PIXEL_DISTANCE_FROM_LINE \
-1074395629 // Invalid maximum pixel distance from line. Values must be
// positive real numbers.
#define ERR_INVALID_GEOMETRIC_MATCHING_TEMPLATE \
-1074395628 // Invalid geometric matching template image.
#define ERR_NOT_ENOUGH_TEMPLATE_FEATURES_1 \
-1074395627 // The template does not contain enough features for geometric
// matching.
#define ERR_NOT_ENOUGH_TEMPLATE_FEATURES \
-1074395626 // The template does not contain enough features for geometric
// matching.
#define ERR_INVALID_MATCH_CONSTRAINT_TYPE \
-1074395625 // You specified an invalid value for the match constraint value
// of the range settings.
#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.
#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.
#define ERR_INVALID_MATCH_GEOMETRIC_PATTERN_SETUP_DATA \
-1074395622 // Invalid match geometric pattern setup data.
#define ERR_INVALID_LEARN_GEOMETRIC_PATTERN_SETUP_DATA \
-1074395621 // Invalid learn geometric pattern setup data.
#define ERR_INVALID_CURVE_EXTRACTION_MODE \
-1074395620 // Invalid curve extraction mode.
#define ERR_TOO_MANY_OCCLUSION_RANGES \
-1074395619 // You can specify only one occlusion range.
#define ERR_TOO_MANY_SCALE_RANGES \
-1074395618 // You can specify only one scale range.
#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.
#define ERR_INVALID_EDGE_FILTER_SIZE -1074395616 // Invalid edge filter size.
#define ERR_INVALID_MINIMUM_FEATURE_STRENGTH \
-1074395615 // Invalid minimum strength for features. Values must be positive
// real numbers.
#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.
#define ERR_INVALID_MINIMUM_FEATURE_LENGTH \
-1074395613 // Invalid minimum length for linear features. Values must be
// integers greater than 0.
#define ERR_INVALID_MINIMUM_FEATURE_RADIUS \
-1074395612 // Invalid minimum radius for circular features. Values must be
// integers greater than 0.
#define ERR_INVALID_MINIMUM_RECTANGLE_DIMENSION \
-1074395611 // Invalid minimum rectangle dimension. Values must be integers
// greater than 0.
#define ERR_INVALID_INITIAL_MATCH_LIST_LENGTH \
-1074395610 // Invalid initial match list length. Values must be integers
// greater than 5.
#define ERR_INVALID_SUBPIXEL_TOLERANCE \
-1074395609 // Invalid subpixel tolerance. Values must be positive real
// numbers.
#define ERR_INVALID_SUBPIXEL_ITERATIONS \
-1074395608 // Invalid number of subpixel iterations. Values must be integers
// greater 10.
#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.
#define ERR_INVALID_MINIMUM_FEATURES_TO_MATCH \
-1074395606 // Invalid minimum number of features used for matching. Values
// must be integers greater than zero.
#define ERR_INVALID_MAXIMUM_END_POINT_GAP \
-1074395605 // Invalid maximum end point gap. Valid values range from 0 to
// 32767.
#define ERR_INVALID_COLUMN_STEP \
-1074395604 // Invalid column step. Valid range is 1 to 255.
#define ERR_INVALID_ROW_STEP \
-1074395603 // Invalid row step. Valid range is 1 to 255.
#define ERR_INVALID_MINIMUM_CURVE_LENGTH \
-1074395602 // Invalid minimum length. Valid values must be greater than or
// equal to zero.
#define ERR_INVALID_EDGE_THRESHOLD \
-1074395601 // Invalid edge threshold. Valid values range from 1 to 360.
#define ERR_INFO_NOT_FOUND \
-1074395600 // You must provide information about the subimage within the
// browser.
#define ERR_NIOCR_INVALID_ACCEPTANCE_LEVEL \
-1074395598 // The acceptance level is outside the valid range of 0 to 1000.
#define ERR_NIOCR_NOT_A_VALID_SESSION -1074395597 // Not a valid OCR session.
#define ERR_NIOCR_INVALID_CHARACTER_SIZE \
-1074395596 // Invalid character size. Character size must be >= 1.
#define ERR_NIOCR_INVALID_THRESHOLD_MODE \
-1074395595 // Invalid threshold mode value.
#define ERR_NIOCR_INVALID_SUBSTITUTION_CHARACTER \
-1074395594 // Invalid substitution character. Valid substitution characters
// are ASCII values that range from 1 to 254.
#define ERR_NIOCR_INVALID_NUMBER_OF_BLOCKS \
-1074395593 // Invalid number of blocks. Number of blocks must be >= 4 and <=
// 50.
#define ERR_NIOCR_INVALID_READ_STRATEGY -1074395592 // Invalid read strategy.
#define ERR_NIOCR_INVALID_CHARACTER_INDEX \
-1074395591 // Invalid character index.
#define ERR_NIOCR_INVALID_NUMBER_OF_VALID_CHARACTER_POSITIONS \
-1074395590 // Invalid number of character positions. Valid values range from
// 0 to 255.
#define ERR_NIOCR_INVALID_LOW_THRESHOLD_VALUE \
-1074395589 // Invalid low threshold value. Valid threshold values range from
// 0 to 255.
#define ERR_NIOCR_INVALID_HIGH_THRESHOLD_VALUE \
-1074395588 // Invalid high threshold value. Valid threshold values range
// from 0 to 255.
#define ERR_NIOCR_INVALID_THRESHOLD_RANGE \
-1074395587 // The low threshold must be less than the high threshold.
#define ERR_NIOCR_INVALID_LOWER_THRESHOLD_LIMIT \
-1074395586 // Invalid lower threshold limit. Valid lower threshold limits
// range from 0 to 255.
#define ERR_NIOCR_INVALID_UPPER_THRESHOLD_LIMIT \
-1074395585 // Invalid upper threshold limit. Valid upper threshold limits
// range from 0 to 255.
#define ERR_NIOCR_INVALID_THRESHOLD_LIMITS \
-1074395584 // The lower threshold limit must be less than the upper
// threshold limit.
#define ERR_NIOCR_INVALID_MIN_CHAR_SPACING \
-1074395583 // Invalid minimum character spacing value. Character spacing
// must be >= 1 pixel.
#define ERR_NIOCR_INVALID_MAX_HORIZ_ELEMENT_SPACING \
-1074395582 // Invalid maximum horizontal element spacing value. Maximum
// horizontal element spacing must be >= 0.
#define ERR_NIOCR_INVALID_MAX_VERT_ELEMENT_SPACING \
-1074395581 // Invalid maximum vertical element spacing value. Maximum
// vertical element spacing must be >= 0.
#define ERR_NIOCR_INVALID_MIN_BOUNDING_RECT_WIDTH \
-1074395580 // Invalid minimum bounding rectangle width. Minimum bounding
// rectangle width must be >= 1.
#define ERR_NIOCR_INVALID_ASPECT_RATIO \
-1074395579 // Invalid aspect ratio value. The aspect ratio must be zero or
// >= 100.
#define ERR_NIOCR_INVALID_CHARACTER_SET_FILE \
-1074395578 // Invalid or corrupt character set file.
#define ERR_NIOCR_CHARACTER_VALUE_CANNOT_BE_EMPTYSTRING \
-1074395577 // The character value must not be an empty string.
#define ERR_NIOCR_CHARACTER_VALUE_TOO_LONG \
-1074395576 // Character values must be <=255 characters.
#define ERR_NIOCR_INVALID_NUMBER_OF_EROSIONS \
-1074395575 // Invalid number of erosions. The number of erosions must be >=
// 0.
#define ERR_NIOCR_CHARACTER_SET_DESCRIPTION_TOO_LONG \
-1074395574 // The character set description must be <=255 characters.
#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.
#define ERR_NIOCR_INTEGER_VALUE_FOR_STRING_ATTRIBUTE \
-1074395572 // You must specify characters for a string. A string cannot
// contain integers.
#define ERR_NIOCR_GET_ONLY_ATTRIBUTE \
-1074395571 // This attribute is read-only.
#define ERR_NIOCR_INTEGER_VALUE_FOR_BOOLEAN_ATTRIBUTE \
-1074395570 // This attribute requires a Boolean value.
#define ERR_NIOCR_INVALID_ATTRIBUTE -1074395569 // Invalid attribute.
#define ERR_NIOCR_STRING_VALUE_FOR_INTEGER_ATTRIBUTE \
-1074395568 // This attribute requires integer values.
#define ERR_NIOCR_STRING_VALUE_FOR_BOOLEAN_ATTRIBUTE \
-1074395567 // String values are invalid for this attribute. Enter a boolean
// value.
#define ERR_NIOCR_BOOLEAN_VALUE_FOR_INTEGER_ATTRIBUTE \
-1074395566 // Boolean values are not valid for this attribute. Enter an
// integer value.
#define ERR_NIOCR_MUST_BE_SINGLE_CHARACTER \
-1074395565 // Requires a single-character string.
#define ERR_NIOCR_INVALID_PREDEFINED_CHARACTER \
-1074395564 // Invalid predefined character value.
#define ERR_NIOCR_UNLICENSED -1074395563 // This copy of NI OCR is unlicensed.
#define ERR_NIOCR_BOOLEAN_VALUE_FOR_STRING_ATTRIBUTE \
-1074395562 // String values are not valid for this attribute. Enter a
// Boolean value.
#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.
#define ERR_NIOCR_INVALID_OBJECT_INDEX -1074395560 // Invalid object index.
#define ERR_NIOCR_INVALID_READ_OPTION -1074395559 // Invalid read option.
#define ERR_NIOCR_INVALID_CHARACTER_SIZE_RANGE \
-1074395558 // The minimum character size must be less than the maximum
// character size.
#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.
#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.
#define ERR_NIOCR_INVALID_SPACING_RANGE \
-1074395555 // The maximum horizontal element spacing value must not exceed
// the minimum character spacing value.
#define ERR_NIOCR_INVALID_READ_RESOLUTION \
-1074395554 // Invalid read resolution.
#define ERR_NIOCR_INVALID_MIN_BOUNDING_RECT_HEIGHT \
-1074395553 // Invalid minimum bounding rectangle height. The minimum
// bounding rectangle height must be >= 1.
#define ERR_NIOCR_NOT_A_VALID_CHARACTER_SET \
-1074395552 // Not a valid character set.
#define ERR_NIOCR_RENAME_REFCHAR \
-1074395551 // A trained OCR character cannot be renamed while it is a
// reference character.
#define ERR_NIOCR_INVALID_CHARACTER_VALUE \
-1074395550 // A character cannot have an ASCII value of 255.
#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.
#define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_CAP \
-1074395421 // The specified value for the filter cap for block matching is
// invalid.
#define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_SIZE \
-1074395420 // The specified prefilter size for block matching is invalid.
#define ERR_INVALID_STEREO_BLOCKMATCHING_PREFILTER_TYPE \
-1074395419 // The specified prefilter type for block matching is invalid.
#define ERR_INVALID_STEREO_BLOCKMATCHING_NUMDISPARITIES \
-1074395418 // The specifed value for number of disparities is invalid.
#define ERR_INVALID_STEREO_BLOCKMATCHING_WINDOW_SIZE \
-1074395417 // The specified window size for block matching is invalid.
#define ERR_3DVISION_INVALID_SESSION_TYPE \
-1074395416 // This 3D vision function cannot be called on this type of 3d
// vision session.
#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.
#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.
#define ERR_INVALID_STEREO_BLOCKMATCHING_FILTERTYPE \
-1074395413 // You have specified an invalid filter type for block matching.
#define ERR_INVALID_STEREO_CAMERA_POSITION \
-1074395412 // You have requested results at an invalid camera position in
// the stereo setup.
#define ERR_INVALID_3DVISION_SESSION \
-1074395411 // Not a valid 3D Vision session.
#define ERR_INVALID_ICONS_PER_LINE \
-1074395410 // NI Vision does not support less than one icon per line.
#define ERR_INVALID_SUBPIXEL_DIVISIONS \
-1074395409 // Invalid subpixel divisions.
#define ERR_INVALID_DETECTION_MODE -1074395408 // Invalid detection mode.
#define ERR_INVALID_CONTRAST \
-1074395407 // Invalid contrast value. Valid contrast values range from 0 to
// 255.
#define ERR_COORDSYS_NOT_FOUND \
-1074395406 // The coordinate system could not be found on this image.
#define ERR_INVALID_TEXTORIENTATION \
-1074395405 // NI Vision does not support the text orientation value you
// supplied.
#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.
#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.
#define ERR_INVALID_MAXPOINTS \
-1074395402 // The function does not support the maximum number of points
// that you specified.
#define ERR_INVALID_MATCHFACTOR \
-1074395401 // The function does not support the matchFactor that you
// specified.
#define ERR_MULTICORE_OPERATION \
-1074395400 // The operation you have given Multicore Options is invalid.
// Please see the available enumeration values for Multicore
// Operation.
#define ERR_MULTICORE_INVALID_ARGUMENT \
-1074395399 // You have given Multicore Options an invalid argument.
#define ERR_COMPLEX_IMAGE_REQUIRED -1074395397 // A complex image is required.
#define ERR_COLOR_IMAGE_REQUIRED \
-1074395395 // The input image must be a color image.
#define ERR_COLOR_SPECTRUM_MASK \
-1074395394 // The color mask removes too much color information.
#define ERR_COLOR_TEMPLATE_IMAGE_TOO_SMALL \
-1074395393 // The color template image is too small.
#define ERR_COLOR_TEMPLATE_IMAGE_TOO_LARGE \
-1074395392 // The color template image is too large.
#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.
#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.
#define ERR_COLOR_LEARN_SETUP_DATA \
-1074395389 // Invalid color learn setup data.
#define ERR_COLOR_LEARN_SETUP_DATA_SHAPE \
-1074395388 // Invalid color learn setup data.
#define ERR_COLOR_MATCH_SETUP_DATA \
-1074395387 // Invalid color match setup data.
#define ERR_COLOR_MATCH_SETUP_DATA_SHAPE \
-1074395386 // Invalid color match setup data.
#define ERR_COLOR_ROTATION_REQUIRES_SHAPE_FEATURE \
-1074395385 // Rotation-invariant color pattern matching requires a feature
// mode including shape.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR \
-1074395384 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_1 \
-1074395383 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_2 \
-1074395382 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_3 \
-1074395381 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_4 \
-1074395380 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_5 \
-1074395379 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_6 \
-1074395378 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT \
-1074395377 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSHIFT \
-1074395376 // The color template image does not contain data required for
// shift-invariant color matching.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT_1 \
-1074395375 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_SHIFT_2 \
-1074395374 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION \
-1074395373 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOROTATION \
-1074395372 // The color template image does not contain data required for
// rotation-invariant color matching.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_1 \
-1074395371 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_2 \
-1074395370 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_3 \
-1074395369 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_4 \
-1074395368 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_ROTATION_5 \
-1074395367 // Invalid color template image.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSHAPE \
-1074395366 // The color template image does not contain data required for
// color matching in shape feature mode.
#define ERR_COLOR_TEMPLATE_DESCRIPTOR_NOSPECTRUM \
-1074395365 // The color template image does not contain data required for
// color matching in color feature mode.
#define ERR_IGNORE_COLOR_SPECTRUM_SET \
-1074395364 // The ignore color spectra array is invalid.
#define ERR_INVALID_SUBSAMPLING_RATIO -1074395363 // Invalid subsampling ratio.
#define ERR_INVALID_WIDTH -1074395362 // Invalid pixel width.
#define ERR_INVALID_STEEPNESS -1074395361 // Invalid steepness.
#define ERR_COMPLEX_PLANE -1074395360 // Invalid complex plane.
#define ERR_INVALID_COLOR_IGNORE_MODE -1074395357 // Invalid color ignore mode.
#define ERR_INVALID_MIN_MATCH_SCORE \
-1074395356 // Invalid minimum match score. Acceptable values range from 0 to
// 1000.
#define ERR_INVALID_NUM_MATCHES_REQUESTED \
-1074395355 // Invalid number of matches requested. You must request a
// minimum of one match.
#define ERR_INVALID_COLOR_WEIGHT \
-1074395354 // Invalid color weight. Acceptable values range from 0 to 1000.
#define ERR_INVALID_SEARCH_STRATEGY -1074395353 // Invalid search strategy.
#define ERR_INVALID_FEATURE_MODE -1074395352 // Invalid feature mode.
#define ERR_INVALID_RECT \
-1074395351 // NI Vision does not support rectangles with negative widths or
// negative heights.
#define ERR_INVALID_VISION_INFO \
-1074395350 // NI Vision does not support the vision information type you
// supplied.
#define ERR_INVALID_SKELETONMETHOD \
-1074395349 // NI Vision does not support the SkeletonMethod value you
// supplied.
#define ERR_INVALID_3DPLANE \
-1074395348 // NI Vision does not support the 3DPlane value you supplied.
#define ERR_INVALID_3DDIRECTION \
-1074395347 // NI Vision does not support the 3DDirection value you supplied.
#define ERR_INVALID_INTERPOLATIONMETHOD_FOR_ROTATE \
-1074395346 // imaqRotate does not support the InterpolationMethod value you
// supplied.
#define ERR_INVALID_FLIPAXIS \
-1074395345 // NI Vision does not support the axis of symmetry you supplied.
#define ERR_FILE_FILENAME_NULL \
-1074395343 // You must pass a valid file name. Do not pass in NULL.
#define ERR_INVALID_SIZETYPE \
-1074395340 // NI Vision does not support the SizeType value you supplied.
#define ERR_UNKNOWN_ALGORITHM \
-1074395336 // You specified the dispatch status of an unknown algorithm.
#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.
#define ERR_INVALID_CONVERSIONSTYLE \
-1074395334 // NI Vision does not support the Conversion Method value you
// supplied.
#define ERR_INVALID_VERTICAL_TEXT_ALIGNMENT \
-1074395333 // NI Vision does not support the VerticalTextAlignment value you
// supplied.
#define ERR_INVALID_COMPAREFUNCTION \
-1074395332 // NI Vision does not support the CompareFunction value you
// supplied.
#define ERR_INVALID_BORDERMETHOD \
-1074395331 // NI Vision does not support the BorderMethod value you
// supplied.
#define ERR_INVALID_BORDER_SIZE \
-1074395330 // Invalid border size. Acceptable values range from 0 to 50.
#define ERR_INVALID_OUTLINEMETHOD \
-1074395329 // NI Vision does not support the OutlineMethod value you
// supplied.
#define ERR_INVALID_INTERPOLATIONMETHOD \
-1074395328 // NI Vision does not support the InterpolationMethod value you
// supplied.
#define ERR_INVALID_SCALINGMODE \
-1074395327 // NI Vision does not support the ScalingMode value you supplied.
#define ERR_INVALID_DRAWMODE_FOR_LINE \
-1074395326 // imaqDrawLineOnImage does not support the DrawMode value you
// supplied.
#define ERR_INVALID_DRAWMODE \
-1074395325 // NI Vision does not support the DrawMode value you supplied.
#define ERR_INVALID_SHAPEMODE \
-1074395324 // NI Vision does not support the ShapeMode value you supplied.
#define ERR_INVALID_FONTCOLOR \
-1074395323 // NI Vision does not support the FontColor value you supplied.
#define ERR_INVALID_TEXTALIGNMENT \
-1074395322 // NI Vision does not support the TextAlignment value you
// supplied.
#define ERR_INVALID_MORPHOLOGYMETHOD \
-1074395321 // NI Vision does not support the MorphologyMethod value you
// supplied.
#define ERR_TEMPLATE_EMPTY -1074395320 // The template image is empty.
#define ERR_INVALID_SUBPIX_TYPE \
-1074395319 // NI Vision does not support the interpolation type you
// supplied.
#define ERR_INSF_POINTS \
-1074395318 // You supplied an insufficient number of points to perform this
// operation.
#define ERR_UNDEF_POINT \
-1074395317 // You specified a point that lies outside the image.
#define ERR_INVALID_KERNEL_CODE -1074395316 // Invalid kernel code.
#define ERR_INEFFICIENT_POINTS \
-1074395315 // You supplied an inefficient set of points to match the minimum
// score.
#define ERR_WRITE_FILE_NOT_SUPPORTED \
-1074395313 // Writing files is not supported on this device.
#define ERR_LCD_CALIBRATE \
-1074395312 // The input image does not seem to be a valid LCD or LED
// calibration image.
#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).
#define ERR_INVALID_PALETTE_TYPE \
-1074395310 // NI Vision does not support the PaletteType value you supplied.
#define ERR_INVALID_WINDOW_THREAD_POLICY \
-1074395309 // NI Vision does not support the WindowThreadPolicy value you
// supplied.
#define ERR_INVALID_COLORSENSITIVITY \
-1074395308 // NI Vision does not support the ColorSensitivity value you
// supplied.
#define ERR_PRECISION_NOT_GTR_THAN_0 \
-1074395307 // The precision parameter must be greater than 0.
#define ERR_INVALID_TOOL \
-1074395306 // NI Vision does not support the Tool value you supplied.
#define ERR_INVALID_REFERENCEMODE \
-1074395305 // NI Vision does not support the ReferenceMode value you
// supplied.
#define ERR_INVALID_MATHTRANSFORMMETHOD \
-1074395304 // NI Vision does not support the MathTransformMethod value you
// supplied.
#define ERR_INVALID_NUM_OF_CLASSES \
-1074395303 // Invalid number of classes for auto threshold. Acceptable
// values range from 2 to 256.
#define ERR_INVALID_THRESHOLDMETHOD \
-1074395302 // NI Vision does not support the threshold method value you
// supplied.
#define ERR_ROI_NOT_2_LINES \
-1074395301 // The ROI you passed into imaqGetMeterArc must consist of two
// lines.
#define ERR_INVALID_METERARCMODE \
-1074395300 // NI Vision does not support the MeterArcMode value you
// supplied.
#define ERR_INVALID_COMPLEXPLANE \
-1074395299 // NI Vision does not support the ComplexPlane value you
// supplied.
#define ERR_COMPLEXPLANE_NOT_REAL_OR_IMAGINARY \
-1074395298 // You can perform this operation on a real or an imaginary
// ComplexPlane only.
#define ERR_INVALID_PARTICLEINFOMODE \
-1074395297 // NI Vision does not support the ParticleInfoMode value you
// supplied.
#define ERR_INVALID_BARCODETYPE \
-1074395296 // NI Vision does not support the BarcodeType value you supplied.
#define ERR_INVALID_INTERPOLATIONMETHOD_INTERPOLATEPOINTS \
-1074395295 // imaqInterpolatePoints does not support the InterpolationMethod
// value you supplied.
#define ERR_CONTOUR_INDEX_OUT_OF_RANGE \
-1074395294 // The contour index you supplied is larger than the number of
// contours in the ROI.
#define ERR_CONTOURID_NOT_FOUND \
-1074395293 // The supplied ContourID did not correlate to a contour inside
// the ROI.
#define ERR_POINTS_ARE_COLLINEAR \
-1074395292 // Do not supply collinear points for this operation.
#define ERR_SHAPEMATCH_BADIMAGEDATA \
-1074395291 // Shape Match requires the image to contain only pixel values of
// 0 or 1.
#define ERR_SHAPEMATCH_BADTEMPLATE \
-1074395290 // The template you supplied for ShapeMatch contains no shape
// information.
#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.
#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.
#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).
#define ERR_INVALID_CONCENTRIC_RAKE_DIRECTION \
-1074395286 // Invalid concentric rake direction.
#define ERR_INVALID_SPOKE_DIRECTION -1074395285 // Invalid spoke direction.
#define ERR_INVALID_EDGE_PROCESS -1074395284 // Invalid edge process.
#define ERR_INVALID_RAKE_DIRECTION -1074395283 // Invalid rake direction.
#define ERR_CANT_DRAW_INTO_VIEWER \
-1074395282 // Unable to draw to viewer. You must have the latest version of
// the control.
#define ERR_IMAGE_SMALLER_THAN_BORDER \
-1074395281 // Your image must be larger than its border size for this
// operation.
#define ERR_ROI_NOT_RECT \
-1074395280 // The ROI must only have a single Rectangle contour.
#define ERR_ROI_NOT_POLYGON -1074395279 // ROI is not a polygon.
#define ERR_LCD_NOT_NUMERIC -1074395278 // LCD image is not a number.
#define ERR_BARCODE_CHECKSUM \
-1074395277 // The decoded barcode information did not pass the checksum
// test.
#define ERR_LINES_PARALLEL \
-1074395276 // You specified parallel lines for the meter ROI.
#define ERR_INVALID_BROWSER_IMAGE -1074395275 // Invalid browser image.
#define ERR_DIV_BY_ZERO -1074395270 // Cannot divide by zero.
#define ERR_NULL_POINTER -1074395269 // Null pointer.
#define ERR_LINEAR_COEFF \
-1074395268 // The linear equations are not independent.
#define ERR_COMPLEX_ROOT -1074395267 // The roots of the equation are complex.
#define ERR_BARCODE \
-1074395265 // The barcode does not match the type you specified.
#define ERR_LCD_NO_SEGMENTS -1074395263 // No lit segment.
#define ERR_LCD_BAD_MATCH -1074395262 // The LCD does not form a known digit.
#define ERR_GIP_RANGE \
-1074395261 // An internal error occurred while attempting to access an
// invalid coordinate on an image.
#define ERR_HEAP_TRASHED -1074395260 // An internal memory error occurred.
#define ERR_BAD_FILTER_WIDTH \
-1074395258 // The filter width must be odd for the Canny operator.
#define ERR_INVALID_EDGE_DIR \
-1074395257 // You supplied an invalid edge direction in the Canny operator.
#define ERR_EVEN_WINDOW_SIZE \
-1074395256 // The window size must be odd for the Canny operator.
#define ERR_INVALID_LEARN_MODE -1074395253 // Invalid learn mode.
#define ERR_LEARN_SETUP_DATA -1074395252 // Invalid learn setup data.
#define ERR_INVALID_MATCH_MODE -1074395251 // Invalid match mode.
#define ERR_MATCH_SETUP_DATA -1074395250 // Invalid match setup data.
#define ERR_ROTATION_ANGLE_RANGE_TOO_LARGE \
-1074395249 // At least one range in the array of rotation angle ranges
// exceeds 360 degrees.
#define ERR_TOO_MANY_ROTATION_ANGLE_RANGES \
-1074395248 // The array of rotation angle ranges contains too many ranges.
#define ERR_TEMPLATE_DESCRIPTOR -1074395247 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_1 -1074395246 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_2 -1074395245 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_3 -1074395244 // Invalid template descriptor.
#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.
#define ERR_TEMPLATE_DESCRIPTOR_ROTATION \
-1074395242 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_NOROTATION \
-1074395241 // The template descriptor does not contain data required for
// rotation-invariant matching.
#define ERR_TEMPLATE_DESCRIPTOR_ROTATION_1 \
-1074395240 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_SHIFT \
-1074395239 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_NOSHIFT \
-1074395238 // The template descriptor does not contain data required for
// shift-invariant matching.
#define ERR_TEMPLATE_DESCRIPTOR_SHIFT_1 \
-1074395237 // Invalid template descriptor.
#define ERR_TEMPLATE_DESCRIPTOR_NOSCALE \
-1074395236 // The template descriptor does not contain data required for
// scale-invariant matching.
#define ERR_TEMPLATE_IMAGE_CONTRAST_TOO_LOW \
-1074395235 // The template image does not contain enough contrast.
#define ERR_TEMPLATE_IMAGE_TOO_SMALL \
-1074395234 // The template image is too small.
#define ERR_TEMPLATE_IMAGE_TOO_LARGE \
-1074395233 // The template image is too large.
#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.
#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.
#define ERR_OCR_BAD_TEXT_TEMPLATE \
-1074395211 // The supplied text template contains nonstandard characters
// that cannot be generated by OCR.
#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.
#define ERR_OCR_LIB_INIT \
-1074395203 // The OCR library cannot be initialized correctly.
#define ERR_OCR_LOAD_LIBRARY \
-1074395201 // There was a failure when loading one of the internal OCR
// engine or LabView libraries.
#define ERR_OCR_INVALID_PARAMETER \
-1074395200 // One of the parameters supplied to the OCR function that
// generated this error is invalid.
#define ERR_MARKER_INFORMATION_NOT_SUPPLIED \
-1074395199 // Marker image and points are not supplied
#define ERR_INCOMPATIBLE_MARKER_IMAGE_SIZE \
-1074395198 // Source Image and Marker Image should be of same size.
#define ERR_BOTH_MARKER_INPUTS_SUPPLIED \
-1074395197 // Both Marker Image and Points are supplied.
#define ERR_INVALID_MORPHOLOGICAL_OPERATION \
-1074395196 // Invalid Morphological Operation.
#define ERR_IMAGE_CONTAINS_NAN_VALUES \
-1074395195 // Float image contains NaN values
#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.
#define ERR_NO_CLAMP_FOUND \
-1074395193 // No valid clamp was found with the current configuration
#define ERR_NO_CLAMP_WITHIN_ANGLE_RANGE \
-1074395192 // Supplied angle range for clamp is insufficient
#define ERR_GHT_INVALID_USE_ALL_CURVES_VALUE \
-1074395188 // The use all curves advanced option specified during learn is
// not supported
#define ERR_INVALID_GAUSS_SIGMA_VALUE \
-1074395187 // The sigma value specified for the Gaussian filter is too
// small.
#define ERR_INVALID_GAUSS_FILTER_TYPE \
-1074395186 // The specified Gaussian filter type is not supported.
#define ERR_INVALID_CONTRAST_REVERSAL_MODE \
-1074395185 // The contrast reversal mode specified during matching is
// invalid.
#define ERR_INVALID_ROTATION_RANGE \
-1074395184 // Invalid roation angle range. The upper bound must be greater
// than or equal to the lower bound.
#define ERR_GHT_INVALID_MINIMUM_LEARN_ANGLE_VALUE \
-1074395183 // The minimum rotation angle value specifed during learning of
// the template is not supported.
#define ERR_GHT_INVALID_MAXIMUM_LEARN_ANGLE_VALUE \
-1074395182 // The maximum rotation angle value specifed during learning of
// the template is not supported.
#define ERR_GHT_INVALID_MAXIMUM_LEARN_SCALE_FACTOR \
-1074395181 // The maximum scale factor specifed during learning of the
// template is not supported.
#define ERR_GHT_INVALID_MINIMUM_LEARN_SCALE_FACTOR \
-1074395180 // The minimum scale factor specifed during learning of the
// template is not supported.
#define ERR_OCR_PREPROCESSING_FAILED \
-1074395179 // The OCR engine failed during the preprocessing stage.
#define ERR_OCR_RECOGNITION_FAILED \
-1074395178 // The OCR engine failed during the recognition stage.
#define ERR_OCR_BAD_USER_DICTIONARY \
-1074395175 // The provided filename is not valid user dictionary filename.
#define ERR_OCR_INVALID_AUTOORIENTMODE \
-1074395174 // NI Vision does not support the AutoOrientMode value you
// supplied.
#define ERR_OCR_INVALID_LANGUAGE \
-1074395173 // NI Vision does not support the Language value you supplied.
#define ERR_OCR_INVALID_CHARACTERSET \
-1074395172 // NI Vision does not support the CharacterSet value you
// supplied.
#define ERR_OCR_INI_FILE_NOT_FOUND \
-1074395171 // The system could not locate the initialization file required
// for OCR initialization.
#define ERR_OCR_INVALID_CHARACTERTYPE \
-1074395170 // NI Vision does not support the CharacterType value you
// supplied.
#define ERR_OCR_INVALID_RECOGNITIONMODE \
-1074395169 // NI Vision does not support the RecognitionMode value you
// supplied.
#define ERR_OCR_INVALID_AUTOCORRECTIONMODE \
-1074395168 // NI Vision does not support the AutoCorrectionMode value you
// supplied.
#define ERR_OCR_INVALID_OUTPUTDELIMITER \
-1074395167 // NI Vision does not support the OutputDelimiter value you
// supplied.
#define ERR_OCR_BIN_DIR_NOT_FOUND \
-1074395166 // The system could not locate the OCR binary directory required
// for OCR initialization.
#define ERR_OCR_WTS_DIR_NOT_FOUND \
-1074395165 // The system could not locate the OCR weights directory required
// for OCR initialization.
#define ERR_OCR_ADD_WORD_FAILED \
-1074395164 // The supplied word could not be added to the user dictionary.
#define ERR_OCR_INVALID_CHARACTERPREFERENCE \
-1074395163 // NI Vision does not support the CharacterPreference value you
// supplied.
#define ERR_OCR_INVALID_CORRECTIONMODE \
-1074395162 // NI Vision does not support the CorrectionMethod value you
// supplied.
#define ERR_OCR_INVALID_CORRECTIONLEVEL \
-1074395161 // NI Vision does not support the CorrectionLevel value you
// supplied.
#define ERR_OCR_INVALID_MAXPOINTSIZE \
-1074395160 // NI Vision does not support the maximum point size you
// supplied. Valid values range from 4 to 72.
#define ERR_OCR_INVALID_TOLERANCE \
-1074395159 // NI Vision does not support the tolerance value you supplied.
// Valid values are non-negative.
#define ERR_OCR_INVALID_CONTRASTMODE \
-1074395158 // NI Vision does not support the ContrastMode value you
// supplied.
#define ERR_OCR_SKEW_DETECT_FAILED \
-1074395156 // The OCR attempted to detected the text skew and failed.
#define ERR_OCR_ORIENT_DETECT_FAILED \
-1074395155 // The OCR attempted to detected the text orientation and failed.
#define ERR_FONT_FILE_FORMAT -1074395153 // Invalid font file format.
#define ERR_FONT_FILE_NOT_FOUND -1074395152 // Font file not found.
#define ERR_OCR_CORRECTION_FAILED \
-1074395151 // The OCR engine failed during the correction stage.
#define ERR_INVALID_ROUNDING_MODE \
-1074395150 // NI Vision does not support the RoundingMode value you
// supplied.
#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.
#define ERR_OVERLAY_GROUP_NOT_FOUND -1074395148 // Overlay Group Not Found.
#define ERR_BARCODE_RSSLIMITED \
-1074395147 // The barcode is not a valid RSS Limited symbol
#define ERR_QR_DETECTION_VERSION \
-1074395146 // Couldn't determine the correct version of the QR code.
#define ERR_QR_INVALID_READ -1074395145 // Invalid read of the QR code.
#define ERR_QR_INVALID_BARCODE \
-1074395144 // The barcode that was read contains invalid parameters.
#define ERR_QR_DETECTION_MODE \
-1074395143 // The data stream that was demodulated could not be read because
// the mode was not detected.
#define ERR_QR_DETECTION_MODELTYPE \
-1074395142 // Couldn't determine the correct model of the QR code.
#define ERR_OCR_NO_TEXT_FOUND \
-1074395141 // The OCR engine could not find any text in the supplied region.
#define ERR_OCR_CHAR_REPORT_CORRUPTED \
-1074395140 // One of the character reports is no longer usable by the
// system.
#define ERR_IMAQ_QR_DIMENSION_INVALID -1074395139 // Invalid Dimensions.
#define ERR_OCR_REGION_TOO_SMALL \
-1074395138 // The OCR region provided was too small to have contained any
// characters.
#define _FIRST_ERR ERR_SYSTEM_ERROR
#define _LAST_ERR ERR_OCR_REGION_TOO_SMALL
//============================================================================
// Enumerated Types
//============================================================================
typedef enum PointSymbol_enum {
IMAQ_POINT_AS_PIXEL = 0, // A single pixel represents a point in the overlay.
IMAQ_POINT_AS_CROSS = 1, // A cross represents a point in the overlay.
IMAQ_POINT_USER_DEFINED =
2, // The pattern supplied by the user represents a point in the overlay.
IMAQ_POINT_SYMBOL_SIZE_GUARD = 0xFFFFFFFF
} PointSymbol;
typedef enum MeasurementValue_enum {
IMAQ_AREA = 0, // Surface area of the particle in pixels.
IMAQ_AREA_CALIBRATED =
1, // Surface area of the particle in calibrated units.
IMAQ_NUM_HOLES = 2, // Number of holes in the particle.
IMAQ_AREA_OF_HOLES = 3, // Surface area of the holes in calibrated units.
IMAQ_TOTAL_AREA =
4, // Total surface area (holes and particle) in calibrated units.
IMAQ_IMAGE_AREA = 5, // Surface area of the entire image in calibrated units.
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.
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.
IMAQ_CENTER_MASS_X = 8, // X-coordinate of the center of mass.
IMAQ_CENTER_MASS_Y = 9, // Y-coordinate of the center of mass.
IMAQ_LEFT_COLUMN = 10, // Left edge of the bounding rectangle.
IMAQ_TOP_ROW = 11, // Top edge of the bounding rectangle.
IMAQ_RIGHT_COLUMN = 12, // Right edge of the bounding rectangle.
IMAQ_BOTTOM_ROW = 13, // Bottom edge of bounding rectangle.
IMAQ_WIDTH = 14, // Width of bounding rectangle in calibrated units.
IMAQ_HEIGHT = 15, // Height of bounding rectangle in calibrated units.
IMAQ_MAX_SEGMENT_LENGTH = 16, // Length of longest horizontal line segment.
IMAQ_MAX_SEGMENT_LEFT_COLUMN =
17, // Leftmost x-coordinate of longest horizontal line segment.
IMAQ_MAX_SEGMENT_TOP_ROW =
18, // Y-coordinate of longest horizontal line segment.
IMAQ_PERIMETER = 19, // Outer perimeter of the particle.
IMAQ_PERIMETER_OF_HOLES = 20, // Perimeter of all holes within the particle.
IMAQ_SIGMA_X = 21, // Sum of the particle pixels on the x-axis.
IMAQ_SIGMA_Y = 22, // Sum of the particle pixels on the y-axis.
IMAQ_SIGMA_XX = 23, // Sum of the particle pixels on the x-axis squared.
IMAQ_SIGMA_YY = 24, // Sum of the particle pixels on the y-axis squared.
IMAQ_SIGMA_XY = 25, // Sum of the particle pixels on the x-axis and y-axis.
IMAQ_PROJ_X = 26, // Projection corrected in X.
IMAQ_PROJ_Y = 27, // Projection corrected in Y.
IMAQ_INERTIA_XX = 28, // Inertia matrix coefficient in XX.
IMAQ_INERTIA_YY = 29, // Inertia matrix coefficient in YY.
IMAQ_INERTIA_XY = 30, // Inertia matrix coefficient in XY.
IMAQ_MEAN_H = 31, // Mean length of horizontal segments.
IMAQ_MEAN_V = 32, // Mean length of vertical segments.
IMAQ_MAX_INTERCEPT = 33, // Length of longest segment of the convex hull.
IMAQ_MEAN_INTERCEPT = 34, // Mean length of the chords in an object
// perpendicular to its max intercept.
IMAQ_ORIENTATION = 35, // The orientation based on the inertia of the pixels
// in the particle.
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.
IMAQ_ELLIPSE_MAJOR = 37, // Total length of major axis having the same area
// and perimeter as the particle in calibrated
// units.
IMAQ_ELLIPSE_MINOR = 38, // Total length of minor axis having the same area
// and perimeter as the particle in calibrated
// units.
IMAQ_ELLIPSE_RATIO = 39, // Fraction of major axis to minor axis.
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.
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.
IMAQ_RECT_RATIO =
42, // Ratio of rectangle long side to rectangle short side.
IMAQ_ELONGATION = 43, // Max intercept/mean perpendicular intercept.
IMAQ_COMPACTNESS = 44, // Particle area/(height x width).
IMAQ_HEYWOOD = 45, // Particle perimeter/perimeter of the circle having the
// same area as the particle.
IMAQ_TYPE_FACTOR = 46, // A complex factor relating the surface area to the
// moment of inertia.
IMAQ_HYDRAULIC = 47, // Particle area/particle perimeter.
IMAQ_WADDLE_DISK = 48, // Diameter of the disk having the same area as the
// particle in user units.
IMAQ_DIAGONAL = 49, // Diagonal of an equivalent rectangle in user units.
IMAQ_MEASUREMENT_VALUE_SIZE_GUARD = 0xFFFFFFFF
} MeasurementValue;
typedef enum ScalingMode_enum {
IMAQ_SCALE_LARGER =
0, // The function duplicates pixels to make the image larger.
IMAQ_SCALE_SMALLER =
1, // The function subsamples pixels to make the image smaller.
IMAQ_SCALING_MODE_SIZE_GUARD = 0xFFFFFFFF
} ScalingMode;
typedef enum ScalingMethod_enum {
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.
IMAQ_SCALE_TO_FIT = 1, // Correction functions scale the image such that the
// corrected image is the same size as the input
// image.
IMAQ_SCALING_METHOD_SIZE_GUARD = 0xFFFFFFFF
} ScalingMethod;
typedef enum ReferenceMode_enum {
IMAQ_COORD_X_Y =
0, // This method requires three elements in the points array.
IMAQ_COORD_ORIGIN_X =
1, // This method requires two elements in the points array.
IMAQ_REFERENCE_MODE_SIZE_GUARD = 0xFFFFFFFF
} ReferenceMode;
typedef enum RectOrientation_enum {
IMAQ_BASE_INSIDE = 0, // Specifies that the base of the rectangular image
// lies along the inside edge of the annulus.
IMAQ_BASE_OUTSIDE = 1, // Specifies that the base of the rectangular image
// lies along the outside edge of the annulus.
IMAQ_TEXT_ORIENTATION_SIZE_GUARD = 0xFFFFFFFF
} RectOrientation;
typedef enum ShapeMode_enum {
IMAQ_SHAPE_RECT = 1, // The function draws a rectangle.
IMAQ_SHAPE_OVAL = 2, // The function draws an oval.
IMAQ_SHAPE_MODE_SIZE_GUARD = 0xFFFFFFFF
} ShapeMode;
typedef enum PolarityType_enum {
IMAQ_EDGE_RISING = 1, // The edge is a rising edge.
IMAQ_EDGE_FALLING = -1, // The edge is a falling edge.
IMAQ_POLARITY_TYPE_SIZE_GUARD = 0xFFFFFFFF
} PolarityType;
typedef enum SizeType_enum {
IMAQ_KEEP_LARGE =
0, // The function keeps large particles remaining after the erosion.
IMAQ_KEEP_SMALL =
1, // The function keeps small particles eliminated by the erosion.
IMAQ_SIZE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} SizeType;
typedef enum Plane3D_enum {
IMAQ_3D_REAL = 0, // The function shows the real part of complex images.
IMAQ_3D_IMAGINARY =
1, // The function shows the imaginary part of complex images.
IMAQ_3D_MAGNITUDE =
2, // The function shows the magnitude part of complex images.
IMAQ_3D_PHASE = 3, // The function shows the phase part of complex images.
IMAQ_PLANE_3D_SIZE_GUARD = 0xFFFFFFFF
} Plane3D;
typedef enum PhotometricMode_enum {
IMAQ_WHITE_IS_ZERO =
0, // The function interprets zero-value pixels as white.
IMAQ_BLACK_IS_ZERO =
1, // The function interprets zero-value pixels as black.
IMAQ_PHOTOMETRIC_MODE_SIZE_GUARD = 0xFFFFFFFF
} PhotometricMode;
typedef enum ParticleInfoMode_enum {
IMAQ_BASIC_INFO = 0, // The function returns only the following elements of
// each report: area, calibratedArea, boundingRect.
IMAQ_ALL_INFO =
1, // The function returns all the information about each particle.
IMAQ_PARTICLE_INFO_MODE_SIZE_GUARD = 0xFFFFFFFF
} ParticleInfoMode;
typedef enum OutlineMethod_enum {
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.
IMAQ_EDGE_GRADIENT = 1, // The function uses a method that outlines contours
// where an intensity variation occurs along the
// vertical axis.
IMAQ_EDGE_PREWITT = 2, // The function uses a method that extracts the outer
// contours of objects.
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.
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.
IMAQ_EDGE_SOBEL = 5, // The function uses a method that extracts the outer
// contours of objects.
IMAQ_OUTLINE_METHOD_SIZE_GUARD = 0xFFFFFFFF
} OutlineMethod;
typedef enum MorphologyMethod_enum {
IMAQ_AUTOM = 0, // The function uses a transformation that generates simpler
// particles that contain fewer details.
IMAQ_CLOSE = 1, // The function uses a transformation that fills tiny holes
// and smooths boundaries.
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.
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.
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.
IMAQ_GRADIENTOUT = 5, // The function uses a transformation that leaves only
// the pixels that would be added by the dilation
// process.
IMAQ_GRADIENTIN = 6, // The function uses a transformation that leaves only
// the pixels that would be eliminated by the erosion
// process.
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.
IMAQ_OPEN = 8, // The function uses a transformation that removes small
// particles and smooths boundaries.
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.
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.
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.
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.
IMAQ_MORPHOLOGY_METHOD_SIZE_GUARD = 0xFFFFFFFF
} MorphologyMethod;
typedef enum MeterArcMode_enum {
IMAQ_METER_ARC_ROI = 0, // The function uses the roi parameter and ignores
// the base, start, and end parameters.
IMAQ_METER_ARC_POINTS = 1, // The function uses the base,start, and end
// parameters and ignores the roi parameter.
IMAQ_METER_ARC_MODE_SIZE_GUARD = 0xFFFFFFFF
} MeterArcMode;
typedef enum RakeDirection_enum {
IMAQ_LEFT_TO_RIGHT = 0, // The function searches from the left side of the
// search area to the right side of the search area.
IMAQ_RIGHT_TO_LEFT = 1, // The function searches from the right side of the
// search area to the left side of the search area.
IMAQ_TOP_TO_BOTTOM = 2, // The function searches from the top side of the
// search area to the bottom side of the search area.
IMAQ_BOTTOM_TO_TOP = 3, // The function searches from the bottom side of the
// search area to the top side of the search area.
IMAQ_RAKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
} RakeDirection;
typedef enum TruncateMode_enum {
IMAQ_TRUNCATE_LOW = 0, // The function truncates low frequencies.
IMAQ_TRUNCATE_HIGH = 1, // The function truncates high frequencies.
IMAQ_TRUNCATE_MODE_SIZE_GUARD = 0xFFFFFFFF
} TruncateMode;
typedef enum AttenuateMode_enum {
IMAQ_ATTENUATE_LOW = 0, // The function attenuates low frequencies.
IMAQ_ATTENUATE_HIGH = 1, // The function attenuates high frequencies.
IMAQ_ATTENUATE_MODE_SIZE_GUARD = 0xFFFFFFFF
} AttenuateMode;
typedef enum WindowThreadPolicy_enum {
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.
IMAQ_SEPARATE_THREAD = 1, // Using this policy, NI Vision creates windows in
// a separate thread and processes messages for the
// windows automatically.
IMAQ_WINDOW_THREAD_POLICY_SIZE_GUARD = 0xFFFFFFFF
} WindowThreadPolicy;
typedef enum WindowOptions_enum {
IMAQ_WIND_RESIZABLE =
1, // When present, the user may resize the window interactively.
IMAQ_WIND_TITLEBAR =
2, // When present, the title bar on the window is visible.
IMAQ_WIND_CLOSEABLE = 4, // When present, the close box is available.
IMAQ_WIND_TOPMOST = 8, // When present, the window is always on top.
IMAQ_WINDOW_OPTIONS_SIZE_GUARD = 0xFFFFFFFF
} WindowOptions;
typedef enum WindowEventType_enum {
IMAQ_NO_EVENT =
0, // No event occurred since the last call to imaqGetLastEvent().
IMAQ_CLICK_EVENT = 1, // The user clicked on a window.
IMAQ_DRAW_EVENT = 2, // The user drew an ROI in a window.
IMAQ_MOVE_EVENT = 3, // The user moved a window.
IMAQ_SIZE_EVENT = 4, // The user sized a window.
IMAQ_SCROLL_EVENT = 5, // The user scrolled a window.
IMAQ_ACTIVATE_EVENT = 6, // The user activated a window.
IMAQ_CLOSE_EVENT = 7, // The user closed a window.
IMAQ_DOUBLE_CLICK_EVENT = 8, // The user double-clicked in a window.
IMAQ_WINDOW_EVENT_TYPE_SIZE_GUARD = 0xFFFFFFFF
} WindowEventType;
typedef enum VisionInfoType_enum {
IMAQ_ANY_VISION_INFO = 0, // The function checks if any extra vision
// information is associated with the image.
IMAQ_PATTERN_MATCHING_INFO = 1, // The function checks if any pattern
// matching template information is
// associated with the image.
IMAQ_CALIBRATION_INFO = 2, // The function checks if any calibration
// information is associated with the image.
IMAQ_OVERLAY_INFO = 3, // The function checks if any overlay information is
// associated with the image.
IMAQ_VISION_INFO_TYPE_SIZE_GUARD = 0xFFFFFFFF
} VisionInfoType;
typedef enum SearchStrategy_enum {
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.
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.
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.
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.
IMAQ_SEARCH_STRATEGY_SIZE_GUARD = 0xFFFFFFFF
} SearchStrategy;
typedef enum TwoEdgePolarityType_enum {
IMAQ_NONE = 0, // The function ignores the polarity of the edges.
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).
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).
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).
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).
IMAQ_TWO_EDGE_POLARITY_TYPE_SIZE_GUARD = 0xFFFFFFFF
} TwoEdgePolarityType;
typedef enum ObjectType_enum {
IMAQ_BRIGHT_OBJECTS = 0, // The function detects bright objects.
IMAQ_DARK_OBJECTS = 1, // The function detects dark objects.
IMAQ_OBJECT_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ObjectType;
typedef enum Tool_enum {
IMAQ_NO_TOOL = -1, // No tool is in the selected state.
IMAQ_SELECTION_TOOL =
0, // The selection tool selects an existing ROI in an image.
IMAQ_POINT_TOOL = 1, // The point tool draws a point on the image.
IMAQ_LINE_TOOL = 2, // The line tool draws a line on the image.
IMAQ_RECTANGLE_TOOL =
3, // The rectangle tool draws a rectangle on the image.
IMAQ_OVAL_TOOL = 4, // The oval tool draws an oval on the image.
IMAQ_POLYGON_TOOL = 5, // The polygon tool draws a polygon on the image.
IMAQ_CLOSED_FREEHAND_TOOL =
6, // The closed freehand tool draws closed freehand shapes on the image.
IMAQ_ANNULUS_TOOL = 7, // The annulus tool draws annuluses on the image.
IMAQ_ZOOM_TOOL = 8, // The zoom tool controls the zoom of an image.
IMAQ_PAN_TOOL = 9, // The pan tool shifts the view of the image.
IMAQ_POLYLINE_TOOL = 10, // The polyline tool draws a series of connected
// straight lines on the image.
IMAQ_FREEHAND_TOOL =
11, // The freehand tool draws freehand lines on the image.
IMAQ_ROTATED_RECT_TOOL =
12, // The rotated rectangle tool draws rotated rectangles on the image.
IMAQ_ZOOM_OUT_TOOL = 13, // The zoom out tool controls the zoom of an image.
IMAQ_TOOL_SIZE_GUARD = 0xFFFFFFFF
} Tool;
typedef enum TIFFCompressionType_enum {
IMAQ_NO_COMPRESSION = 0, // The function does not compress the TIFF file.
IMAQ_JPEG = 1, // The function uses the JPEG compression algorithm to
// compress the TIFF file.
IMAQ_RUN_LENGTH = 2, // The function uses a run length compression algorithm
// to compress the TIFF file.
IMAQ_ZIP = 3, // The function uses the ZIP compression algorithm to compress
// the TIFF file.
IMAQ_TIFF_COMPRESSION_TYPE_SIZE_GUARD = 0xFFFFFFFF
} TIFFCompressionType;
typedef enum ThresholdMethod_enum {
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.
IMAQ_THRESH_ENTROPY = 1, // The function uses a method that is best for
// detecting particles that are present in minuscule
// proportions on the image.
IMAQ_THRESH_METRIC = 2, // The function uses a method that is well-suited for
// images in which classes are not too
// disproportionate.
IMAQ_THRESH_MOMENTS = 3, // The function uses a method that is suited for
// images that have poor contrast.
IMAQ_THRESH_INTERCLASS = 4, // The function uses a method that is well-suited
// for images in which classes have well
// separated pixel value distributions.
IMAQ_THRESHOLD_METHOD_SIZE_GUARD = 0xFFFFFFFF
} ThresholdMethod;
typedef enum TextAlignment_enum {
IMAQ_LEFT = 0, // Left aligns the text at the reference point.
IMAQ_CENTER = 1, // Centers the text around the reference point.
IMAQ_RIGHT = 2, // Right aligns the text at the reference point.
IMAQ_TEXT_ALIGNMENT_SIZE_GUARD = 0xFFFFFFFF
} TextAlignment;
typedef enum SpokeDirection_enum {
IMAQ_OUTSIDE_TO_INSIDE = 0, // The function searches from the outside of the
// search area to the inside of the search area.
IMAQ_INSIDE_TO_OUTSIDE = 1, // The function searches from the inside of the
// search area to the outside of the search area.
IMAQ_SPOKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
} SpokeDirection;
typedef enum SkeletonMethod_enum {
IMAQ_SKELETON_L =
0, // Uses an L-shaped structuring element in the skeleton function.
IMAQ_SKELETON_M =
1, // Uses an M-shaped structuring element in the skeleton function.
IMAQ_SKELETON_INVERSE = 2, // Uses an L-shaped structuring element on an
// inverse of the image in the skeleton function.
IMAQ_SKELETON_METHOD_SIZE_GUARD = 0xFFFFFFFF
} SkeletonMethod;
typedef enum VerticalTextAlignment_enum {
IMAQ_BOTTOM = 0, // Aligns the bottom of the text at the reference point.
IMAQ_TOP = 1, // Aligns the top of the text at the reference point.
IMAQ_BASELINE = 2, // Aligns the baseline of the text at the reference point.
IMAQ_VERTICAL_TEXT_ALIGNMENT_SIZE_GUARD = 0xFFFFFFFF
} VerticalTextAlignment;
typedef enum CalibrationROI_enum {
IMAQ_FULL_IMAGE = 0, // The correction function corrects the whole image,
// regardless of the user-defined or calibration-defined
// ROIs.
IMAQ_CALIBRATION_ROI = 1, // The correction function corrects the area
// defined by the calibration ROI.
IMAQ_USER_ROI = 2, // The correction function corrects the area defined by
// the user-defined ROI.
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.
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.
IMAQ_CALIBRATION_ROI_SIZE_GUARD = 0xFFFFFFFF
} CalibrationROI;
typedef enum ContourType_enum {
IMAQ_EMPTY_CONTOUR = 0, // The contour is empty.
IMAQ_POINT = 1, // The contour represents a point.
IMAQ_LINE = 2, // The contour represents a line.
IMAQ_RECT = 3, // The contour represents a rectangle.
IMAQ_OVAL = 4, // The contour represents an oval.
IMAQ_CLOSED_CONTOUR = 5, // The contour represents a series of connected
// points where the last point connects to the
// first.
IMAQ_OPEN_CONTOUR = 6, // The contour represents a series of connected points
// where the last point does not connect to the first.
IMAQ_ANNULUS = 7, // The contour represents an annulus.
IMAQ_ROTATED_RECT = 8, // The contour represents a rotated rectangle.
IMAQ_CONTOUR_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ContourType;
typedef enum MathTransformMethod_enum {
IMAQ_TRANSFORM_LINEAR = 0, // The function uses linear remapping.
IMAQ_TRANSFORM_LOG = 1, // The function uses logarithmic remapping.
IMAQ_TRANSFORM_EXP = 2, // The function uses exponential remapping.
IMAQ_TRANSFORM_SQR = 3, // The function uses square remapping.
IMAQ_TRANSFORM_SQRT = 4, // The function uses square root remapping.
IMAQ_TRANSFORM_POWX = 5, // The function uses power X remapping.
IMAQ_TRANSFORM_POW1X = 6, // The function uses power 1/X remapping.
IMAQ_MATH_TRANSFORM_METHOD_SIZE_GUARD = 0xFFFFFFFF
} MathTransformMethod;
typedef enum ComplexPlane_enum {
IMAQ_REAL =
0, // The function operates on the real plane of the complex image.
IMAQ_IMAGINARY =
1, // The function operates on the imaginary plane of the complex image.
IMAQ_MAGNITUDE =
2, // The function operates on the magnitude plane of the complex image.
IMAQ_PHASE =
3, // The function operates on the phase plane of the complex image.
IMAQ_COMPLEX_PLANE_SIZE_GUARD = 0xFFFFFFFF
} ComplexPlane;
typedef enum PaletteType_enum {
IMAQ_PALETTE_GRAY = 0, // The function uses a palette that has a gradual
// gray-level variation from black to white.
IMAQ_PALETTE_BINARY = 1, // The function uses a palette of 16 cycles of 16
// different colors that is useful with binary
// images.
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.
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.
IMAQ_PALETTE_TEMPERATURE = 4, // The function uses a palette that has a
// gradation from light brown to dark brown.
IMAQ_PALETTE_USER = 5, // The function uses a palette defined by the user.
IMAQ_PALETTE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} PaletteType;
typedef enum ColorSensitivity_enum {
IMAQ_SENSITIVITY_LOW = 0, // Instructs the algorithm to divide the hue plane
// into a low number of sectors, allowing for
// simple color analysis.
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.
IMAQ_SENSITIVITY_HIGH = 2, // Instructs the algorithm to divide the hue plane
// into a high number of sectors, allowing for
// complex, sensitive color analysis.
IMAQ_COLOR_SENSITIVITY_SIZE_GUARD = 0xFFFFFFFF
} ColorSensitivity;
typedef enum ColorMode_enum {
IMAQ_RGB =
0, // The function operates in the RGB (Red, Blue, Green) color space.
IMAQ_HSL = 1, // The function operates in the HSL (Hue, Saturation,
// Luminance) color space.
IMAQ_HSV = 2, // The function operates in the HSV (Hue, Saturation, Value)
// color space.
IMAQ_HSI = 3, // The function operates in the HSI (Hue, Saturation,
// Intensity) color space.
IMAQ_CIE = 4, // The function operates in the CIE L*a*b* color space.
IMAQ_CIEXYZ = 5, // The function operates in the CIE XYZ color space.
IMAQ_COLOR_MODE_SIZE_GUARD = 0xFFFFFFFF
} ColorMode;
typedef enum DetectionMode_enum {
IMAQ_DETECT_PEAKS = 0, // The function detects peaks.
IMAQ_DETECT_VALLEYS = 1, // The function detects valleys.
IMAQ_DETECTION_MODE_SIZE_GUARD = 0xFFFFFFFF
} DetectionMode;
typedef enum CalibrationUnit_enum {
IMAQ_UNDEFINED = 0, // The image does not have a defined unit of measurement.
IMAQ_ANGSTROM = 1, // The unit of measure for the image is angstroms.
IMAQ_MICROMETER = 2, // The unit of measure for the image is micrometers.
IMAQ_MILLIMETER = 3, // The unit of measure for the image is millimeters.
IMAQ_CENTIMETER = 4, // The unit of measure for the image is centimeters.
IMAQ_METER = 5, // The unit of measure for the image is meters.
IMAQ_KILOMETER = 6, // The unit of measure for the image is kilometers.
IMAQ_MICROINCH = 7, // The unit of measure for the image is microinches.
IMAQ_INCH = 8, // The unit of measure for the image is inches.
IMAQ_FOOT = 9, // The unit of measure for the image is feet.
IMAQ_NAUTICMILE = 10, // The unit of measure for the image is nautical miles.
IMAQ_GROUNDMILE = 11, // The unit of measure for the image is ground miles.
IMAQ_STEP = 12, // The unit of measure for the image is steps.
IMAQ_CALIBRATION_UNIT_SIZE_GUARD = 0xFFFFFFFF
} CalibrationUnit;
typedef enum ConcentricRakeDirection_enum {
IMAQ_COUNTER_CLOCKWISE = 0, // The function searches the search area in a
// counter-clockwise direction.
IMAQ_CLOCKWISE =
1, // The function searches the search area in a clockwise direction.
IMAQ_CONCENTRIC_RAKE_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
} ConcentricRakeDirection;
typedef enum CalibrationMode_enum {
IMAQ_PERSPECTIVE = 0, // Functions correct for distortion caused by the
// camera's perspective.
IMAQ_NONLINEAR =
1, // Functions correct for distortion caused by the camera's lens.
IMAQ_SIMPLE_CALIBRATION = 2, // Functions do not correct for distortion.
IMAQ_CORRECTED_IMAGE = 3, // The image is already corrected.
IMAQ_CALIBRATION_MODE_SIZE_GUARD = 0xFFFFFFFF
} CalibrationMode;
typedef enum BrowserLocation_enum {
IMAQ_INSERT_FIRST_FREE =
0, // Inserts the thumbnail in the first available cell.
IMAQ_INSERT_END = 1, // Inserts the thumbnail after the last occupied cell.
IMAQ_BROWSER_LOCATION_SIZE_GUARD = 0xFFFFFFFF
} BrowserLocation;
typedef enum BrowserFrameStyle_enum {
IMAQ_RAISED_FRAME = 0, // Each thumbnail has a raised frame.
IMAQ_BEVELLED_FRAME = 1, // Each thumbnail has a beveled frame.
IMAQ_OUTLINE_FRAME = 2, // Each thumbnail has an outlined frame.
IMAQ_HIDDEN_FRAME = 3, // Each thumbnail has a hidden frame.
IMAQ_STEP_FRAME = 4, // Each thumbnail has a stepped frame.
IMAQ_RAISED_OUTLINE_FRAME =
5, // Each thumbnail has a raised, outlined frame.
IMAQ_BROWSER_FRAME_STYLE_SIZE_GUARD = 0xFFFFFFFF
} BrowserFrameStyle;
typedef enum BorderMethod_enum {
IMAQ_BORDER_MIRROR =
0, // Symmetrically copies pixel values from the image into the border.
IMAQ_BORDER_COPY = 1, // Copies the value of the pixel closest to the edge of
// the image into the border.
IMAQ_BORDER_CLEAR = 2, // Sets all pixels in the border to 0.
IMAQ_BORDER_METHOD_SIZE_GUARD = 0xFFFFFFFF
} BorderMethod;
typedef enum BarcodeType_enum {
IMAQ_INVALID = -1, // The barcode is not of a type known by NI Vision.
IMAQ_CODABAR = 1, // The barcode is of type Codabar.
IMAQ_CODE39 = 2, // The barcode is of type Code 39.
IMAQ_CODE93 = 4, // The barcode is of type Code 93.
IMAQ_CODE128 = 8, // The barcode is of type Code 128.
IMAQ_EAN8 = 16, // The barcode is of type EAN 8.
IMAQ_EAN13 = 32, // The barcode is of type EAN 13.
IMAQ_I2_OF_5 = 64, // The barcode is of type Code 25.
IMAQ_MSI = 128, // The barcode is of type MSI code.
IMAQ_UPCA = 256, // The barcode is of type UPC A.
IMAQ_PHARMACODE = 512, // The barcode is of type Pharmacode.
IMAQ_RSS_LIMITED = 1024, // The barcode is of type RSS Limited.
IMAQ_BARCODE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} BarcodeType;
typedef enum AxisOrientation_enum {
IMAQ_DIRECT = 0, // The y-axis direction corresponds to the y-axis direction
// of the Cartesian coordinate system.
IMAQ_INDIRECT = 1, // The y-axis direction corresponds to the y-axis
// direction of an image.
IMAQ_AXIS_ORIENTATION_SIZE_GUARD = 0xFFFFFFFF
} AxisOrientation;
typedef enum ColorIgnoreMode_enum {
IMAQ_IGNORE_NONE =
0, // Specifies that the function does not ignore any pixels.
IMAQ_IGNORE_BLACK = 1, // Specifies that the function ignores black pixels.
IMAQ_IGNORE_WHITE = 2, // Specifies that the function ignores white pixels.
IMAQ_IGNORE_BLACK_AND_WHITE =
3, // Specifies that the function ignores black pixels and white pixels.
IMAQ_BLACK_WHITE_IGNORE_MODE_SIZE_GUARD = 0xFFFFFFFF
} ColorIgnoreMode;
typedef enum LevelType_enum {
IMAQ_ABSOLUTE = 0, // The function evaluates the threshold and hysteresis
// values as absolute values.
IMAQ_RELATIVE = 1, // The function evaluates the threshold and hysteresis
// values relative to the dynamic range of the given path.
IMAQ_LEVEL_TYPE_SIZE_GUARD = 0xFFFFFFFF
} LevelType;
typedef enum MatchingMode_enum {
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.
IMAQ_MATCH_ROTATION_INVARIANT = 2, // Searches for occurrences of the pattern
// in the image with no restriction on the
// rotation of the pattern.
IMAQ_MATCHING_MODE_SIZE_GUARD = 0xFFFFFFFF
} MatchingMode;
typedef enum MappingMethod_enum {
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.
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.
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.
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.
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.
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.
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.
IMAQ_FULL_DYNAMIC_ALWAYS = 12, // The function maps the full dynamic range of
// the 16-bit image to an 8-bit scale.
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.
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.
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.
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.
IMAQ_MAPPING_METHOD_SIZE_GUARD = 0xFFFFFFFF
} MappingMethod;
typedef enum ComparisonFunction_enum {
IMAQ_CLEAR_LESS = 0, // The comparison is true if the source pixel value is
// less than the comparison image pixel value.
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.
IMAQ_CLEAR_EQUAL = 2, // The comparison is true if the source pixel value is
// equal to the comparison image pixel value.
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.
IMAQ_CLEAR_GREATER = 4, // The comparison is true if the source pixel value
// is greater than the comparison image pixel value.
IMAQ_COMPARE_FUNCTION_SIZE_GUARD = 0xFFFFFFFF
} ComparisonFunction;
typedef enum LineGaugeMethod_enum {
IMAQ_EDGE_TO_EDGE = 0, // Measures from the first edge on the line to the
// last edge on the line.
IMAQ_EDGE_TO_POINT = 1, // Measures from the first edge on the line to the
// end point of the line.
IMAQ_POINT_TO_EDGE = 2, // Measures from the start point of the line to the
// first edge on the line.
IMAQ_POINT_TO_POINT = 3, // Measures from the start point of the line to the
// end point of the line.
IMAQ_LINE_GAUGE_METHOD_SIZE_GUARD = 0xFFFFFFFF
} LineGaugeMethod;
typedef enum Direction3D_enum {
IMAQ_3D_NW = 0, // The viewing angle for the 3D image is from the northwest.
IMAQ_3D_SW = 1, // The viewing angle for the 3D image is from the southwest.
IMAQ_3D_SE = 2, // The viewing angle for the 3D image is from the southeast.
IMAQ_3D_NE = 3, // The viewing angle for the 3D image is from the northeast.
IMAQ_DIRECTION_3D_SIZE_GUARD = 0xFFFFFFFF
} Direction3D;
typedef enum LearningMode_enum {
IMAQ_LEARN_ALL = 0, // The function extracts information for shift- and
// rotation-invariant matching.
IMAQ_LEARN_SHIFT_INFORMATION =
1, // The function extracts information for shift-invariant matching.
IMAQ_LEARN_ROTATION_INFORMATION =
2, // The function extracts information for rotation-invariant matching.
IMAQ_LEARNING_MODE_SIZE_GUARD = 0xFFFFFFFF
} LearningMode;
typedef enum KernelFamily_enum {
IMAQ_GRADIENT_FAMILY = 0, // The kernel is in the gradient family.
IMAQ_LAPLACIAN_FAMILY = 1, // The kernel is in the Laplacian family.
IMAQ_SMOOTHING_FAMILY = 2, // The kernel is in the smoothing family.
IMAQ_GAUSSIAN_FAMILY = 3, // The kernel is in the Gaussian family.
IMAQ_KERNEL_FAMILY_SIZE_GUARD = 0xFFFFFFFF
} KernelFamily;
typedef enum InterpolationMethod_enum {
IMAQ_ZERO_ORDER = 0, // The function uses an interpolation method that
// interpolates new pixel values using the nearest valid
// neighboring pixel.
IMAQ_BILINEAR = 1, // The function uses an interpolation method that
// interpolates new pixel values using a bidirectional
// average of the neighboring pixels.
IMAQ_QUADRATIC = 2, // The function uses an interpolation method that
// interpolates new pixel values using a quadratic
// approximating polynomial.
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.
IMAQ_BILINEAR_FIXED = 4, // The function uses an interpolation method that
// interpolates new pixel values using a
// bidirectional average of the neighboring pixels.
IMAQ_INTERPOLATION_METHOD_SIZE_GUARD = 0xFFFFFFFF
} InterpolationMethod;
typedef enum ImageType_enum {
IMAQ_IMAGE_U8 = 0, // The image type is 8-bit unsigned integer grayscale.
IMAQ_IMAGE_U16 = 7, // The image type is 16-bit unsigned integer grayscale.
IMAQ_IMAGE_I16 = 1, // The image type is 16-bit signed integer grayscale.
IMAQ_IMAGE_SGL = 2, // The image type is 32-bit floating-point grayscale.
IMAQ_IMAGE_COMPLEX = 3, // The image type is complex.
IMAQ_IMAGE_RGB = 4, // The image type is RGB color.
IMAQ_IMAGE_HSL = 5, // The image type is HSL color.
IMAQ_IMAGE_RGB_U64 = 6, // The image type is 64-bit unsigned RGB color.
IMAQ_IMAGE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ImageType;
typedef enum ImageFeatureMode_enum {
IMAQ_COLOR_AND_SHAPE_FEATURES = 0, // Instructs the function to use the color
// and the shape features of the color
// pattern.
IMAQ_COLOR_FEATURES = 1, // Instructs the function to use the color features
// of the color pattern.
IMAQ_SHAPE_FEATURES = 2, // Instructs the function to use the shape features
// of the color pattern.
IMAQ_FEATURE_MODE_SIZE_GUARD = 0xFFFFFFFF
} ImageFeatureMode;
typedef enum FontColor_enum {
IMAQ_WHITE = 0, // Draws text in white.
IMAQ_BLACK = 1, // Draws text in black.
IMAQ_INVERT = 2, // Inverts the text pixels.
IMAQ_BLACK_ON_WHITE = 3, // Draws text in black with a white background.
IMAQ_WHITE_ON_BLACK = 4, // Draws text in white with a black background.
IMAQ_FONT_COLOR_SIZE_GUARD = 0xFFFFFFFF
} FontColor;
typedef enum FlipAxis_enum {
IMAQ_HORIZONTAL_AXIS =
0, // Flips the image over the central horizontal axis.
IMAQ_VERTICAL_AXIS = 1, // Flips the image over the central vertical axis.
IMAQ_CENTER_AXIS =
2, // Flips the image over both the central vertical and horizontal axes.
IMAQ_DIAG_L_TO_R_AXIS = 3, // Flips the image over an axis from the upper
// left corner to lower right corner.
IMAQ_DIAG_R_TO_L_AXIS = 4, // Flips the image over an axis from the upper
// right corner to lower left corner.
IMAQ_FLIP_AXIS_SIZE_GUARD = 0xFFFFFFFF
} FlipAxis;
typedef enum EdgeProcess_enum {
IMAQ_FIRST = 0, // The function looks for the first edge.
IMAQ_FIRST_AND_LAST = 1, // The function looks for the first and last edge.
IMAQ_ALL = 2, // The function looks for all edges.
IMAQ_BEST = 3, // The function looks for the best edge.
IMAQ_EDGE_PROCESS_SIZE_GUARD = 0xFFFFFFFF
} EdgeProcess;
typedef enum DrawMode_enum {
IMAQ_DRAW_VALUE =
0, // Draws the boundary of the object with the specified pixel value.
IMAQ_DRAW_INVERT =
2, // Inverts the pixel values of the boundary of the object.
IMAQ_PAINT_VALUE = 1, // Fills the object with the given pixel value.
IMAQ_PAINT_INVERT = 3, // Inverts the pixel values of the object.
IMAQ_HIGHLIGHT_VALUE = 4, // The function fills the object by highlighting
// the enclosed pixels with the color of the
// object.
IMAQ_DRAW_MODE_SIZE_GUARD = 0xFFFFFFFF
} DrawMode;
typedef enum NearestNeighborMetric_enum {
IMAQ_METRIC_MAXIMUM = 0, // The maximum metric.
IMAQ_METRIC_SUM = 1, // The sum metric.
IMAQ_METRIC_EUCLIDEAN = 2, // The Euclidean metric.
IMAQ_NEAREST_NEIGHBOR_METRIC_SIZE_GUARD = 0xFFFFFFFF
} NearestNeighborMetric;
typedef enum ReadResolution_enum {
IMAQ_LOW_RESOLUTION =
0, // Configures NI Vision to use low resolution during the read process.
IMAQ_MEDIUM_RESOLUTION = 1, // Configures NI Vision to use medium resolution
// during the read process.
IMAQ_HIGH_RESOLUTION = 2, // Configures NI Vision to use high resolution
// during the read process.
IMAQ_READ_RESOLUTION_SIZE_GUARD = 0xFFFFFFFF
} ReadResolution;
typedef enum ThresholdMode_enum {
IMAQ_FIXED_RANGE = 0, // Performs thresholding using the values you provide
// in the lowThreshold and highThreshold elements of
// OCRProcessingOptions.
IMAQ_COMPUTED_UNIFORM =
1, // Calculates a single threshold value for the entire ROI.
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.
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.
IMAQ_THRESHOLD_MODE_SIZE_GUARD = 0xFFFFFFFF
} ThresholdMode;
typedef enum ReadStrategy_enum {
IMAQ_READ_AGGRESSIVE = 0, // Configures NI Vision to perform fewer checks
// when analyzing objects to determine if they
// match trained characters.
IMAQ_READ_CONSERVATIVE = 1, // Configures NI Vision to perform more checks to
// determine if an object matches a trained
// character.
IMAQ_READ_STRATEGY_SIZE_GUARD = 0xFFFFFFFF
} ReadStrategy;
typedef enum MeasurementType_enum {
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.
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.
IMAQ_MT_FIRST_PIXEL_X =
2, // X-coordinate of the highest, leftmost particle pixel.
IMAQ_MT_FIRST_PIXEL_Y =
3, // Y-coordinate of the highest, leftmost particle pixel.
IMAQ_MT_BOUNDING_RECT_LEFT =
4, // X-coordinate of the leftmost particle point.
IMAQ_MT_BOUNDING_RECT_TOP = 5, // Y-coordinate of highest particle point.
IMAQ_MT_BOUNDING_RECT_RIGHT =
6, // X-coordinate of the rightmost particle point.
IMAQ_MT_BOUNDING_RECT_BOTTOM =
7, // Y-coordinate of the lowest particle point.
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.
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.
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.
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.
IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_LEFT =
12, // X-coordinate of the leftmost pixel in the longest row of
// contiguous pixels in the particle.
IMAQ_MT_MAX_HORIZ_SEGMENT_LENGTH_RIGHT =
13, // X-coordinate of the rightmost pixel in the longest row of
// contiguous pixels in the particle.
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.
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.
IMAQ_MT_BOUNDING_RECT_HEIGHT =
17, // Distance between the y-coordinate of highest particle point and
// the y-coordinate of the lowest particle point.
IMAQ_MT_BOUNDING_RECT_DIAGONAL =
18, // Distance between opposite corners of the bounding rectangle.
IMAQ_MT_PERIMETER = 19, // Length of the outer boundary of the particle.
IMAQ_MT_CONVEX_HULL_PERIMETER = 20, // Perimeter of the smallest convex
// polygon containing all points in the
// particle.
IMAQ_MT_HOLES_PERIMETER =
21, // Sum of the perimeters of each hole in the particle.
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.
IMAQ_MT_EQUIVALENT_ELLIPSE_MAJOR_AXIS =
23, // Length of the major axis of the ellipse with the same perimeter
// and area as the particle.
IMAQ_MT_EQUIVALENT_ELLIPSE_MINOR_AXIS =
24, // Length of the minor axis of the ellipse with the same perimeter
// and area as the particle.
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.
IMAQ_MT_EQUIVALENT_RECT_LONG_SIDE = 26, // Longest side of the rectangle with
// the same perimeter and area as the
// particle.
IMAQ_MT_EQUIVALENT_RECT_SHORT_SIDE = 27, // Shortest side of the rectangle
// with the same perimeter and area
// as the particle.
IMAQ_MT_EQUIVALENT_RECT_DIAGONAL = 28, // Distance between opposite corners
// of the rectangle with the same
// perimeter and area as the particle.
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.
IMAQ_MT_AVERAGE_HORIZ_SEGMENT_LENGTH =
30, // Average length of a horizontal segment in the particle.
IMAQ_MT_AVERAGE_VERT_SEGMENT_LENGTH =
31, // Average length of a vertical segment in the particle.
IMAQ_MT_HYDRAULIC_RADIUS =
32, // The particle area divided by the particle perimeter.
IMAQ_MT_WADDEL_DISK_DIAMETER =
33, // Diameter of a disk with the same area as the particle.
IMAQ_MT_AREA = 35, // Area of the particle.
IMAQ_MT_HOLES_AREA = 36, // Sum of the areas of each hole in the particle.
IMAQ_MT_PARTICLE_AND_HOLES_AREA =
37, // Area of a particle that completely covers the image.
IMAQ_MT_CONVEX_HULL_AREA = 38, // Area of the smallest convex polygon
// containing all points in the particle.
IMAQ_MT_IMAGE_AREA = 39, // Area of the image.
IMAQ_MT_NUMBER_OF_HOLES = 41, // Number of holes in the particle.
IMAQ_MT_NUMBER_OF_HORIZ_SEGMENTS =
42, // Number of horizontal segments in the particle.
IMAQ_MT_NUMBER_OF_VERT_SEGMENTS =
43, // Number of vertical segments in the particle.
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.
IMAQ_MT_MAX_FERET_DIAMETER_ORIENTATION =
46, // The angle of the line segment connecting the two perimeter points
// that are the furthest apart.
IMAQ_MT_AREA_BY_IMAGE_AREA =
48, // Percentage of the particle Area covering the Image Area.
IMAQ_MT_AREA_BY_PARTICLE_AND_HOLES_AREA = 49, // Percentage of the particle
// Area in relation to its
// Particle and Holes Area.
IMAQ_MT_RATIO_OF_EQUIVALENT_ELLIPSE_AXES = 50, // Equivalent Ellipse Major
// Axis divided by Equivalent
// Ellipse Minor Axis.
IMAQ_MT_RATIO_OF_EQUIVALENT_RECT_SIDES =
51, // Equivalent Rect Long Side divided by Equivalent Rect Short Side.
IMAQ_MT_ELONGATION_FACTOR =
53, // Max Feret Diameter divided by Equivalent Rect Short Side (Feret).
IMAQ_MT_COMPACTNESS_FACTOR = 54, // Area divided by the product of Bounding
// Rect Width and Bounding Rect Height.
IMAQ_MT_HEYWOOD_CIRCULARITY_FACTOR = 55, // Perimeter divided by the
// circumference of a circle with
// the same area.
IMAQ_MT_TYPE_FACTOR = 56, // Factor relating area to moment of inertia.
IMAQ_MT_SUM_X = 58, // The sum of all x-coordinates in the particle.
IMAQ_MT_SUM_Y = 59, // The sum of all y-coordinates in the particle.
IMAQ_MT_SUM_XX = 60, // The sum of all x-coordinates squared in the particle.
IMAQ_MT_SUM_XY =
61, // The sum of all x-coordinates times y-coordinates in the particle.
IMAQ_MT_SUM_YY = 62, // The sum of all y-coordinates squared in the particle.
IMAQ_MT_SUM_XXX = 63, // The sum of all x-coordinates cubed in the particle.
IMAQ_MT_SUM_XXY = 64, // The sum of all x-coordinates squared times
// y-coordinates in the particle.
IMAQ_MT_SUM_XYY = 65, // The sum of all x-coordinates times y-coordinates
// squared in the particle.
IMAQ_MT_SUM_YYY = 66, // The sum of all y-coordinates cubed in the particle.
IMAQ_MT_MOMENT_OF_INERTIA_XX =
68, // The moment of inertia in the x-direction twice.
IMAQ_MT_MOMENT_OF_INERTIA_XY =
69, // The moment of inertia in the x and y directions.
IMAQ_MT_MOMENT_OF_INERTIA_YY =
70, // The moment of inertia in the y-direction twice.
IMAQ_MT_MOMENT_OF_INERTIA_XXX =
71, // The moment of inertia in the x-direction three times.
IMAQ_MT_MOMENT_OF_INERTIA_XXY = 72, // The moment of inertia in the
// x-direction twice and the y-direction
// once.
IMAQ_MT_MOMENT_OF_INERTIA_XYY = 73, // The moment of inertia in the
// x-direction once and the y-direction
// twice.
IMAQ_MT_MOMENT_OF_INERTIA_YYY =
74, // The moment of inertia in the y-direction three times.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_XX =
75, // The normalized moment of inertia in the x-direction twice.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_XY =
76, // The normalized moment of inertia in the x- and y-directions.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_YY =
77, // The normalized moment of inertia in the y-direction twice.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_XXX =
78, // The normalized moment of inertia in the x-direction three times.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_XXY = 79, // The normalized moment of inertia
// in the x-direction twice and the
// y-direction once.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_XYY = 80, // The normalized moment of inertia
// in the x-direction once and the
// y-direction twice.
IMAQ_MT_NORM_MOMENT_OF_INERTIA_YYY =
81, // The normalized moment of inertia in the y-direction three times.
IMAQ_MT_HU_MOMENT_1 = 82, // The first Hu moment.
IMAQ_MT_HU_MOMENT_2 = 83, // The second Hu moment.
IMAQ_MT_HU_MOMENT_3 = 84, // The third Hu moment.
IMAQ_MT_HU_MOMENT_4 = 85, // The fourth Hu moment.
IMAQ_MT_HU_MOMENT_5 = 86, // The fifth Hu moment.
IMAQ_MT_HU_MOMENT_6 = 87, // The sixth Hu moment.
IMAQ_MT_HU_MOMENT_7 = 88, // The seventh Hu moment.
IMAQ_MEASUREMENT_TYPE_SIZE_GUARD = 0xFFFFFFFF
} MeasurementType;
typedef enum GeometricMatchingMode_enum {
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.
IMAQ_GEOMETRIC_MATCH_ROTATION_INVARIANT =
1, // Searches for occurrences of the pattern in the image with reduced
// restriction on the rotation of the pattern.
IMAQ_GEOMETRIC_MATCH_SCALE_INVARIANT =
2, // Searches for occurrences of the pattern in the image with reduced
// restriction on the size of the pattern.
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.
IMAQ_GEOMETRIC_MATCHING_MODE_SIZE_GUARD = 0xFFFFFFFF
} GeometricMatchingMode;
typedef enum ButtonLabel_enum {
IMAQ_BUTTON_OK = 0, // The label "OK".
IMAQ_BUTTON_SAVE = 1, // The label "Save".
IMAQ_BUTTON_SELECT = 2, // The label "Select".
IMAQ_BUTTON_LOAD = 3, // The label "Load".
IMAQ_BUTTON_LABEL_SIZE_GUARD = 0xFFFFFFFF
} ButtonLabel;
typedef enum NearestNeighborMethod_enum {
IMAQ_MINIMUM_MEAN_DISTANCE = 0, // The minimum mean distance method.
IMAQ_K_NEAREST_NEIGHBOR = 1, // The k-nearest neighbor method.
IMAQ_NEAREST_PROTOTYPE = 2, // The nearest prototype method.
IMAQ_NEAREST_NEIGHBOR_METHOD_SIZE_GUARD = 0xFFFFFFFF
} NearestNeighborMethod;
typedef enum QRMirrorMode_enum {
IMAQ_QR_MIRROR_MODE_AUTO_DETECT =
-2, // The function should determine if the QR code is mirrored.
IMAQ_QR_MIRROR_MODE_MIRRORED =
1, // The function should expect the QR code to appear mirrored.
IMAQ_QR_MIRROR_MODE_NORMAL =
0, // The function should expect the QR code to appear normal.
IMAQ_QR_MIRROR_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRMirrorMode;
typedef enum ColumnProcessingMode_enum {
IMAQ_AVERAGE_COLUMNS = 0, // Averages the data extracted for edge detection.
IMAQ_MEDIAN_COLUMNS =
1, // Takes the median of the data extracted for edge detection.
IMAQ_COLUMN_PROCESSING_MODE_SIZE_GUARD = 0xFFFFFFFF
} ColumnProcessingMode;
typedef enum FindReferenceDirection_enum {
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.
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.
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.
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.
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.
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.
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.
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.
IMAQ_FIND_COORD_SYS_DIR_SIZE_GUARD = 0xFFFFFFFF
} FindReferenceDirection;
typedef enum MulticoreOperation_enum {
IMAQ_GET_CORES =
0, // The number of processor cores NI Vision is currently using.
IMAQ_SET_CORES = 1, // The number of processor cores for NI Vision to use.
IMAQ_USE_MAX_AVAILABLE =
2, // Use the maximum number of available processor cores.
IMAQ_MULTICORE_OPERATION_SIZE_GUARD = 0xFFFFFFFF
} MulticoreOperation;
typedef enum GroupBehavior_enum {
IMAQ_GROUP_CLEAR = 0, // Sets the behavior of the overlay group to clear the
// current settings when an image is transformed.
IMAQ_GROUP_KEEP = 1, // Sets the behavior of the overlay group to keep the
// current settings when an image is transformed.
IMAQ_GROUP_TRANSFORM =
2, // Sets the behavior of the overlay group to transform with the image.
IMAQ_GROUP_BEHAVIOR_SIZE_GUARD = 0xFFFFFFFF
} GroupBehavior;
typedef enum QRDimensions_enum {
IMAQ_QR_DIMENSIONS_AUTO_DETECT = 0, // The function will automatically
// determine the dimensions of the QR
// code.
IMAQ_QR_DIMENSIONS_11x11 =
11, // Specifies the dimensions of the QR code as 11 x 11.
IMAQ_QR_DIMENSIONS_13x13 =
13, // Specifies the dimensions of the QR code as 13 x 13.
IMAQ_QR_DIMENSIONS_15x15 =
15, // Specifies the dimensions of the QR code as 15 x 15.
IMAQ_QR_DIMENSIONS_17x17 =
17, // Specifies the dimensions of the QR code as 17 x 17.
IMAQ_QR_DIMENSIONS_21x21 =
21, // Specifies the dimensions of the QR code as 21 x 21.
IMAQ_QR_DIMENSIONS_25x25 =
25, // Specifies the dimensions of the QR code as 25 x 25.
IMAQ_QR_DIMENSIONS_29x29 =
29, // Specifies the dimensions of the QR code as 29 x 29.
IMAQ_QR_DIMENSIONS_33x33 =
33, // Specifies the dimensions of the QR code as 33 x 33.
IMAQ_QR_DIMENSIONS_37x37 =
37, // Specifies the dimensions of the QR code as 37 x 37.
IMAQ_QR_DIMENSIONS_41x41 =
41, // Specifies the dimensions of the QR code as 41 x 41.
IMAQ_QR_DIMENSIONS_45x45 =
45, // Specifies the dimensions of the QR code as 45 x 45.
IMAQ_QR_DIMENSIONS_49x49 =
49, // Specifies the dimensions of the QR code as 49 x 49.
IMAQ_QR_DIMENSIONS_53x53 =
53, // Specifies the dimensions of the QR code as 53 x 53.
IMAQ_QR_DIMENSIONS_57x57 =
57, // Specifies the dimensions of the QR code as 57 x 57.
IMAQ_QR_DIMENSIONS_61x61 =
61, // Specifies the dimensions of the QR code as 61 x 61.
IMAQ_QR_DIMENSIONS_65x65 =
65, // Specifies the dimensions of the QR code as 65 x 65.
IMAQ_QR_DIMENSIONS_69x69 =
69, // Specifies the dimensions of the QR code as 69 x 69.
IMAQ_QR_DIMENSIONS_73x73 =
73, // Specifies the dimensions of the QR code as 73 x 73.
IMAQ_QR_DIMENSIONS_77x77 =
77, // Specifies the dimensions of the QR code as 77 x 77.
IMAQ_QR_DIMENSIONS_81x81 =
81, // Specifies the dimensions of the QR code as 81 x 81.
IMAQ_QR_DIMENSIONS_85x85 =
85, // Specifies the dimensions of the QR code as 85 x 85.
IMAQ_QR_DIMENSIONS_89x89 =
89, // Specifies the dimensions of the QR code as 89 x 89.
IMAQ_QR_DIMENSIONS_93x93 =
93, // Specifies the dimensions of the QR code as 93 x 93.
IMAQ_QR_DIMENSIONS_97x97 =
97, // Specifies the dimensions of the QR code as 97 x 97.
IMAQ_QR_DIMENSIONS_101x101 =
101, // Specifies the dimensions of the QR code as 101 x 101.
IMAQ_QR_DIMENSIONS_105x105 =
105, // Specifies the dimensions of the QR code as 105 x 105.
IMAQ_QR_DIMENSIONS_109x109 =
109, // Specifies the dimensions of the QR code as 109 x 109.
IMAQ_QR_DIMENSIONS_113x113 =
113, // Specifies the dimensions of the QR code as 113 x 113.
IMAQ_QR_DIMENSIONS_117x117 =
117, // Specifies the dimensions of the QR code as 117 x 117.
IMAQ_QR_DIMENSIONS_121x121 =
121, // Specifies the dimensions of the QR code as 121 x 121.
IMAQ_QR_DIMENSIONS_125x125 =
125, // Specifies the dimensions of the QR code as 125 x 125.
IMAQ_QR_DIMENSIONS_129x129 =
129, // Specifies the dimensions of the QR code as 129 x 129.
IMAQ_QR_DIMENSIONS_133x133 =
133, // Specifies the dimensions of the QR code as 133 x 133.
IMAQ_QR_DIMENSIONS_137x137 =
137, // Specifies the dimensions of the QR code as 137 x 137.
IMAQ_QR_DIMENSIONS_141x141 =
141, // Specifies the dimensions of the QR code as 141 x 141.
IMAQ_QR_DIMENSIONS_145x145 =
145, // Specifies the dimensions of the QR code as 145 x 145.
IMAQ_QR_DIMENSIONS_149x149 =
149, // Specifies the dimensions of the QR code as 149 x 149.
IMAQ_QR_DIMENSIONS_153x153 =
153, // Specifies the dimensions of the QR code as 153 x 153.
IMAQ_QR_DIMENSIONS_157x157 =
157, // Specifies the dimensions of the QR code as 157 x 1537.
IMAQ_QR_DIMENSIONS_161x161 =
161, // Specifies the dimensions of the QR code as 161 x 161.
IMAQ_QR_DIMENSIONS_165x165 =
165, // Specifies the dimensions of the QR code as 165 x 165.
IMAQ_QR_DIMENSIONS_169x169 =
169, // Specifies the dimensions of the QR code as 169 x 169.
IMAQ_QR_DIMENSIONS_173x173 =
173, // Specifies the dimensions of the QR code as 173 x 173.
IMAQ_QR_DIMENSIONS_177x177 =
177, // Specifies the dimensions of the QR code as 177 x 177.
IMAQ_QR_DIMENSIONS_SIZE_GUARD = 0xFFFFFFFF
} QRDimensions;
typedef enum QRCellFilterMode_enum {
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.
IMAQ_QR_CELL_FILTER_MODE_AVERAGE = 0, // The function sets the pixel value
// for the cell to the average of the
// sampled pixels.
IMAQ_QR_CELL_FILTER_MODE_MEDIAN = 1, // The function sets the pixel value for
// the cell to the median of the sampled
// pixels.
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.
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.
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.
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.
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.
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.
IMAQ_QR_CELL_FILTER_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRCellFilterMode;
typedef enum RoundingMode_enum {
IMAQ_ROUNDING_MODE_OPTIMIZE =
0, // Rounds the result of a division using the best available method.
IMAQ_ROUNDING_MODE_TRUNCATE = 1, // Truncates the result of a division.
IMAQ_ROUNDING_MODE_SIZE_GUARD = 0xFFFFFFFF
} RoundingMode;
typedef enum QRDemodulationMode_enum {
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.
IMAQ_QR_DEMODULATION_MODE_HISTOGRAM = 0, // The function uses a histogram of
// all of the QR cells to calculate
// a threshold.
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.
IMAQ_QR_DEMODULATION_MODE_COMBINED = 2, // The function uses the histogram of
// the QR code to calculate a
// threshold.
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.
IMAQ_QR_DEMODULATION_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRDemodulationMode;
typedef enum ContrastMode_enum {
IMAQ_ORIGINAL_CONTRAST = 0, // Instructs the geometric matching algorithm to
// find matches with the same contrast as the
// template.
IMAQ_REVERSED_CONTRAST = 1, // Instructs the geometric matching algorithm to
// find matches with the inverted contrast of the
// template.
IMAQ_BOTH_CONTRASTS = 2, // Instructs the geometric matching algorithm to
// find matches with the same and inverted contrast
// of the template.
} ContrastMode;
typedef enum QRPolarities_enum {
IMAQ_QR_POLARITY_AUTO_DETECT =
-2, // The function should determine the polarity of the QR code.
IMAQ_QR_POLARITY_BLACK_ON_WHITE = 0, // The function should search for a QR
// code with dark data on a bright
// background.
IMAQ_QR_POLARITY_WHITE_ON_BLACK = 1, // The function should search for a QR
// code with bright data on a dark
// background.
IMAQ_QR_POLARITY_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRPolarities;
typedef enum QRRotationMode_enum {
IMAQ_QR_ROTATION_MODE_UNLIMITED =
0, // The function allows for unlimited rotation.
IMAQ_QR_ROTATION_MODE_0_DEGREES =
1, // The function allows for ??? 5 degrees of rotation.
IMAQ_QR_ROTATION_MODE_90_DEGREES =
2, // The function allows for between 85 and 95 degrees of rotation.
IMAQ_QR_ROTATION_MODE_180_DEGREES =
3, // The function allows for between 175 and 185 degrees of rotation.
IMAQ_QR_ROTATION_MODE_270_DEGREES =
4, // The function allows for between 265 and 275 degrees of rotation.
IMAQ_QR_ROTATION_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRRotationMode;
typedef enum QRGradingMode_enum {
IMAQ_QR_NO_GRADING =
0, // The function does not make any preparatory calculations.
IMAQ_QR_GRADING_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRGradingMode;
typedef enum StraightEdgeSearchMode_enum {
IMAQ_USE_FIRST_RAKE_EDGES =
0, // Fits a straight edge on the first points detected using a rake.
IMAQ_USE_BEST_RAKE_EDGES =
1, // Fits a straight edge on the best points detected using a rake.
IMAQ_USE_BEST_HOUGH_LINE = 2, // Finds the strongest straight edge using all
// points detected on a rake.
IMAQ_USE_FIRST_PROJECTION_EDGE =
3, // Uses the location of the first projected edge as the straight edge.
IMAQ_USE_BEST_PROJECTION_EDGE = 4, // Finds the strongest projected edge
// location to determine the straight
// edge.
IMAQ_STRAIGHT_EDGE_SEARCH_SIZE_GUARD = 0xFFFFFFFF
} StraightEdgeSearchMode;
typedef enum SearchDirection_enum {
IMAQ_SEARCH_DIRECTION_LEFT_TO_RIGHT = 0, // Searches from the left side of
// the search area to the right side
// of the search area.
IMAQ_SEARCH_DIRECTION_RIGHT_TO_LEFT = 1, // Searches from the right side of
// the search area to the left side
// of the search area.
IMAQ_SEARCH_DIRECTION_TOP_TO_BOTTOM = 2, // Searches from the top side of the
// search area to the bottom side of
// the search area.
IMAQ_SEARCH_DIRECTION_BOTTOM_TO_TOP = 3, // Searches from the bottom side of
// the search area to the top side
// of the search area.
IMAQ_SEARCH_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
} SearchDirection;
typedef enum QRStreamMode_enum {
IMAQ_QR_MODE_NUMERIC =
0, // Specifies that the data was encoded using numeric mode.
IMAQ_QR_MODE_ALPHANUMERIC =
1, // Specifies that the data was encoded using alpha-numeric mode.
IMAQ_QR_MODE_RAW_BYTE = 2, // Specifies that the data was not encoded but is
// only raw binary bytes, or encoded in JIS-8.
IMAQ_QR_MODE_EAN128_TOKEN = 3, // Specifies that the data has a special
// meaning represented by the application ID.
IMAQ_QR_MODE_EAN128_DATA = 4, // Specifies that the data has a special
// meaning represented by the application ID.
IMAQ_QR_MODE_ECI = 5, // Specifies that the data was meant to be read using
// the language represented in the language ID.
IMAQ_QR_MODE_KANJI =
6, // Specifies that the data was encoded in Shift-JIS16 Japanese.
IMAQ_QR_MODE_SIZE_GUARD = 0xFFFFFFFF
} QRStreamMode;
typedef enum ParticleClassifierType_enum {
IMAQ_PARTICLE_LARGEST = 0, // Use only the largest particle in the image.
IMAQ_PARTICLE_ALL = 1, // Use all particles in the image.
IMAQ_PARTICLE_CLASSIFIER_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ParticleClassifierType;
typedef enum QRCellSampleSize_enum {
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.
IMAQ_QR_CELL_SAMPLE_SIZE1X1 =
1, // The function will use a 1x1 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_SIZE2X2 =
2, // The function will use a 2x2 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_SIZE3X3 =
3, // The function will use a 3x3 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_SIZE4X4 =
4, // The function will use a 4x4 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_SIZE5X5 =
5, // The function will use a 5x5 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_SIZE6X6 =
6, // The function will use a 6x6 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_SIZE7X7 =
7, // The function will use a 7x7 sized sample from each cell.
IMAQ_QR_CELL_SAMPLE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} QRCellSampleSize;
typedef enum RakeProcessType_enum {
IMAQ_GET_FIRST_EDGES = 0,
IMAQ_GET_FIRST_AND_LAST_EDGES = 1,
IMAQ_GET_ALL_EDGES = 2,
IMAQ_GET_BEST_EDGES = 3,
IMAQ_RAKE_PROCESS_TYPE_SIZE_GUARD = 0xFFFFFFFF
} RakeProcessType;
typedef enum GeometricSetupDataItem_enum {
IMAQ_CURVE_EXTRACTION_MODE =
0, // Specifies how the function identifies curves in the image.
IMAQ_CURVE_EDGE_THRSHOLD = 1, // Specifies the minimum contrast an edge pixel
// must have for it to be considered part of a
// curve.
IMAQ_CURVE_EDGE_FILTER = 2, // Specifies the width of the edge filter that
// the function uses to identify curves in the
// image.
IMAQ_MINIMUM_CURVE_LENGTH = 3, // Specifies the length, in pixels, of the
// smallest curve that you want the function
// to identify.
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.
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.
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.
IMAQ_EXTRACT_CLOSED_CURVES =
7, // Specifies whether to identify only closed curves in the image.
IMAQ_ENABLE_SUBPIXEL_CURVE_EXTRACTION =
8, // The function ignores this option.
IMAQ_ENABLE_CORRELATION_SCORE = 9, // Specifies that the function should
// calculate the Correlation Score and
// return it for each match result.
IMAQ_ENABLE_SUBPIXEL_ACCURACY = 10, // Determines whether to return the match
// results with subpixel accuracy.
IMAQ_SUBPIXEL_ITERATIONS = 11, // Specifies the maximum number of incremental
// improvements used to refine matches using
// subpixel information.
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.
IMAQ_INITIAL_MATCH_LIST_LENGTH =
13, // Specifies the maximum size of the match list.
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.
IMAQ_MINIMUM_MATCH_SEPARATION_DISTANCE =
15, // Specifies the minimum separation distance, in pixels, between the
// origins of two matches that have unique positions.
IMAQ_MINIMUM_MATCH_SEPARATION_ANGLE =
16, // Specifies the minimum angular difference, in degrees, between two
// matches that have unique angles.
IMAQ_MINIMUM_MATCH_SEPARATION_SCALE =
17, // Specifies the minimum difference in scale, expressed as a
// percentage, between two matches that have unique scales.
IMAQ_MAXIMUM_MATCH_OVERLAP = 18, // Specifies whether you want the algorithm
// to spend less time accurately estimating
// the location of a match.
IMAQ_ENABLE_COARSE_RESULT = 19, // Specifies whether you want the algorithm
// to spend less time accurately estimating
// the location of a match.
IMAQ_ENABLE_CALIBRATION_SUPPORT = 20, // Specifies whether or not the
// algorithm treat the inspection image
// as a calibrated image.
IMAQ_ENABLE_CONTRAST_REVERSAL =
21, // Specifies the contrast of the matches to search for.
IMAQ_SEARCH_STRATEGY = 22, // Specifies the aggressiveness of the strategy
// used to find matches in the image.
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.
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.
IMAQ_MAX_REFINEMENT_ITERATIONS =
25, // Specifies maximum refinement iteration.
} GeometricSetupDataItem;
typedef enum DistortionModel_enum {
IMAQ_POLYNOMIAL_MODEL = 0, // Polynomial model.
IMAQ_DIVISION_MODEL = 1, // Division Model.
IMAQ_NO_DISTORTION_MODEL = -1, // Not a distortion model.
} DistortionModel;
typedef enum CalibrationThumbnailType_enum {
IMAQ_CAMARA_MODEL_TYPE = 0, // Camara model thumbnail type.
IMAQ_PERSPECTIVE_TYPE = 1, // Perspective thumbnail type.
IMAQ_MICRO_PLANE_TYPE = 2, // Micro Plane thumbnail type.
IMAQ_CALIBRATION_THUMBNAIL_TYPE_SIZE_GUARD = 0xFFFFFFFF
} CalibrationThumbnailType;
typedef enum SettingType_enum {
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.
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.
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.
IMAQ_SETTING_TYPE_SIZE_GUARD = 0xFFFFFFFF
} SettingType;
typedef enum SegmentationDistanceLevel_enum {
IMAQ_SEGMENTATION_LEVEL_CONSERVATIVE =
0, // Uses extensive criteria to determine the Maximum Distance.
IMAQ_SEGMENTATION_LEVEL_AGGRESSIVE =
1, // Uses few criteria to determine the Maximum Distance.
IMAQ_SEGMENTATION_LEVEL_SIZE_GUARD = 0xFFFFFFFF
} SegmentationDistanceLevel;
typedef enum ExtractContourSelection_enum {
IMAQ_CLOSEST = 0, // Selects the curve closest to the ROI.
IMAQ_LONGEST = 1, // Selects the longest curve.
IMAQ_STRONGEST = 2, // Selects the curve with the highest edge strength
// averaged from each point on the curve.
IMAQ_EXTRACT_CONTOUR_SELECTION_SIZE_GUARD = 0xFFFFFFFF
} ExtractContourSelection;
typedef enum FindTransformMode_enum {
IMAQ_FIND_REFERENCE = 0, // Update both parts of the coordinate system.
IMAQ_UPDATE_TRANSFORM = 1, // Update only the new reference system.
IMAQ_FIND_TRANSFORM_MODE_SIZE_GUARD = 0xFFFFFFFF
} FindTransformMode;
typedef enum ExtractContourDirection_enum {
IMAQ_RECT_LEFT_RIGHT = 0, // Searches the ROI from left to right.
IMAQ_RECT_RIGHT_LEFT = 1, // Searches the ROI from right to left.
IMAQ_RECT_TOP_BOTTOM = 2, // Searches the ROI from top to bottom.
IMAQ_RECT_BOTTOM_TOP = 3, // Searches the ROI from bottom to top.
IMAQ_ANNULUS_INNER_OUTER =
4, // Searches the ROI from the inner radius to the outer radius.
IMAQ_ANNULUS_OUTER_INNER =
5, // Searches the ROI from the outer radius to the inner radius.
IMAQ_ANNULUS_START_STOP =
6, // Searches the ROI from start angle to end angle.
IMAQ_ANNULUS_STOP_START =
7, // Searches the ROI from end angle to start angle.
IMAQ_EXTRACT_CONTOUR_DIRECTION_SIZE_GUARD = 0xFFFFFFFF
} ExtractContourDirection;
typedef enum EdgePolaritySearchMode_enum {
IMAQ_SEARCH_FOR_ALL_EDGES = 0, // Searches for all edges.
IMAQ_SEARCH_FOR_RISING_EDGES = 1, // Searches for rising edges only.
IMAQ_SEARCH_FOR_FALLING_EDGES = 2, // Searches for falling edges only.
IMAQ_EDGE_POLARITY_MODE_SIZE_GUARD = 0xFFFFFFFF
} EdgePolaritySearchMode;
typedef enum Connectivity_enum {
IMAQ_FOUR_CONNECTED =
0, // Morphological reconstruction is performed in connectivity mode 4.
IMAQ_EIGHT_CONNECTED =
1, // Morphological reconstruction is performed in connectivity mode 8.
IMAQ_CONNECTIVITY_SIZE_GUARD = 0xFFFFFFFF
} Connectivity;
typedef enum MorphologyReconstructOperation_enum {
IMAQ_DILATE_RECONSTRUCT = 0, // Performs Reconstruction by dilation.
IMAQ_ERODE_RECONSTRUCT = 1, // Performs Reconstruction by erosion.
IMAQ_MORPHOLOGY_RECONSTRUCT_OPERATION_SIZE_GUARD = 0xFFFFFFFF
} MorphologyReconstructOperation;
typedef enum WaveletType_enum {
IMAQ_DB02 = 0,
IMAQ_DB03 = 1,
IMAQ_DB04 = 2, // Specifies the Wavelet Type as DB02.
IMAQ_DB05 = 3,
IMAQ_DB06 = 4,
IMAQ_DB07 = 5,
IMAQ_DB08 = 6,
IMAQ_DB09 = 7,
IMAQ_DB10 = 8,
IMAQ_DB11 = 9,
IMAQ_DB12 = 10,
IMAQ_DB13 = 11,
IMAQ_DB14 = 12,
IMAQ_HAAR = 13,
IMAQ_BIOR1_3 = 14,
IMAQ_BIOR1_5 = 15,
IMAQ_BIOR2_2 = 16,
IMAQ_BIOR2_4 = 17,
IMAQ_BIOR2_6 = 18,
IMAQ_BIOR2_8 = 19,
IMAQ_BIOR3_1 = 20,
IMAQ_BIOR3_3 = 21,
IMAQ_BIOR3_5 = 22,
IMAQ_BIOR3_7 = 23,
IMAQ_BIOR3_9 = 24,
IMAQ_BIOR4_4 = 25,
IMAQ_COIF1 = 26,
IMAQ_COIF2 = 27,
IMAQ_COIF3 = 28,
IMAQ_COIF4 = 29,
IMAQ_COIF5 = 30,
IMAQ_SYM2 = 31,
IMAQ_SYM3 = 32,
IMAQ_SYM4 = 33,
IMAQ_SYM5 = 34,
IMAQ_SYM6 = 35,
IMAQ_SYM7 = 36,
IMAQ_SYM8 = 37,
IMAQ_BIOR5_5 = 38,
IMAQ_BIOR6_8 = 39,
IMAQ_WAVE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} WaveletType;
typedef enum ParticleClassifierThresholdType_enum {
IMAQ_THRESHOLD_MANUAL = 0, // The classifier performs a manual threshold on
// the image during preprocessing.
IMAQ_THRESHOLD_AUTO = 1, // The classifier performs an auto threshold on the
// image during preprocessing.
IMAQ_THRESHOLD_LOCAL = 2, // The classifier performs a local threshold on the
// image during preprocessing.
} ParticleClassifierThresholdType;
typedef enum MeasureParticlesCalibrationMode_enum {
IMAQ_CALIBRATION_MODE_PIXEL = 0, // The function takes only pixel
// measurements on the particles in the
// image.
IMAQ_CALIBRATION_MODE_CALIBRATED = 1, // The function takes only calibrated
// measurements on the particles in the
// image.
IMAQ_CALIBRATION_MODE_BOTH = 2, // The function takes both pixel and
// calibrated measurements on the particles
// in the image.
IMAQ_MEASURE_PARTICLES_CALIBRATION_MODE_SIZE_GUARD = 0xFFFFFFFF
} MeasureParticlesCalibrationMode;
typedef enum GeometricMatchingSearchStrategy_enum {
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.
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.
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.
IMAQ_GEOMETRIC_MATCHING_SEARCH_STRATEGY_SIZE_GUARD = 0xFFFFFFFF
} GeometricMatchingSearchStrategy;
typedef enum ColorClassificationResolution_enum {
IMAQ_CLASSIFIER_LOW_RESOLUTION =
0, // Low resolution version of the color classifier.
IMAQ_CLASSIFIER_MEDIUM_RESOLUTION =
1, // Medium resolution version of the color classifier.
IMAQ_CLASSIFIER_HIGH_RESOLUTION =
2, // High resolution version of the color classifier.
IMAQ_CLASSIFIER_RESOLUTION_SIZE_GUARD = 0xFFFFFFFF
} ColorClassificationResolution;
typedef enum ConnectionConstraintType_enum {
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.
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.
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.
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.
IMAQ_NUM_CONNECTION_CONSTRAINT_TYPES = 4, //.
IMAQ_CONNECTION_CONSTRAINT_SIZE_GUARD = 0xFFFFFFFF
} ConnectionConstraintType;
typedef enum Barcode2DContrast_enum {
IMAQ_ALL_BARCODE_2D_CONTRASTS =
0, // The function searches for barcodes of each contrast type.
IMAQ_BLACK_ON_WHITE_BARCODE_2D = 1, // The function searches for 2D barcodes
// containing black data on a white
// background.
IMAQ_WHITE_ON_BLACK_BARCODE_2D = 2, // The function searches for 2D barcodes
// containing white data on a black
// background.
IMAQ_BARCODE_2D_CONTRAST_SIZE_GUARD = 0xFFFFFFFF
} Barcode2DContrast;
typedef enum QRModelType_enum {
IMAQ_QR_MODELTYPE_AUTO_DETECT =
0, // Specifies that the function will auto-detect the type of QR code.
IMAQ_QR_MODELTYPE_MICRO = 1, // Specifies the QR code is of a micro type.
IMAQ_QR_MODELTYPE_MODEL1 = 2, // Specifies the QR code is of a model1 type.
IMAQ_QR_MODELTYPE_MODEL2 = 3, // Specifies the QR code is of a model2 type.
IMAQ_QR_MODEL_TYPE_SIZE_GUARD = 0xFFFFFFFF
} QRModelType;
typedef enum WindowBackgroundFillStyle_enum {
IMAQ_FILL_STYLE_SOLID = 0, // Fill the display window with a solid color.
IMAQ_FILL_STYLE_HATCH = 2, // Fill the display window with a pattern defined
// by WindowBackgroundHatchStyle.
IMAQ_FILL_STYLE_DEFAULT =
3, // Fill the display window with the NI Vision default pattern.
IMAQ_FILL_STYLE_SIZE_GUARD = 0xFFFFFFFF
} WindowBackgroundFillStyle;
typedef enum ExtractionMode_enum {
IMAQ_NORMAL_IMAGE = 0, // Specifies that the function makes no assumptions
// about the uniformity of objects in the image or the
// image background.
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.
IMAQ_EXTRACTION_MODE_SIZE_GUARD = 0xFFFFFFFF
} ExtractionMode;
typedef enum EdgeFilterSize_enum {
IMAQ_FINE =
0, // Specifies that the function uses a fine (narrow) edge filter.
IMAQ_NORMAL = 1, // Specifies that the function uses a normal edge filter.
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.
IMAQ_EDGE_FILTER_SIZE_SIZE_GUARD = 0xFFFFFFFF
} EdgeFilterSize;
typedef enum Barcode2DSearchMode_enum {
IMAQ_SEARCH_MULTIPLE = 0, // The function searches for multiple 2D barcodes.
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.
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.
IMAQ_BARCODE_2D_SEARCH_MODE_SIZE_GUARD = 0xFFFFFFFF
} Barcode2DSearchMode;
typedef enum DataMatrixSubtype_enum {
IMAQ_ALL_DATA_MATRIX_SUBTYPES =
0, // The function searches for Data Matrix barcodes of all subtypes.
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.
IMAQ_DATA_MATRIX_SUBTYPE_ECC_200 =
2, // The function searches for Data Matrix ECC 200 barcodes.
IMAQ_DATA_MATRIX_SUBTYPE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixSubtype;
typedef enum FeatureType_enum {
IMAQ_NOT_FOUND_FEATURE = 0, // Specifies the feature is not found.
IMAQ_CIRCLE_FEATURE = 1, // Specifies the feature is a circle.
IMAQ_ELLIPSE_FEATURE = 2, // Specifies the feature is an ellipse.
IMAQ_CONST_CURVE_FEATURE = 3, // Specifies the features is a constant curve.
IMAQ_RECTANGLE_FEATURE = 4, // Specifies the feature is a rectangle.
IMAQ_LEG_FEATURE = 5, // Specifies the feature is a leg.
IMAQ_CORNER_FEATURE = 6, // Specifies the feature is a corner.
IMAQ_PARALLEL_LINE_PAIR_FEATURE =
7, // Specifies the feature is a parallel line pair.
IMAQ_PAIR_OF_PARALLEL_LINE_PAIRS_FEATURE =
8, // Specifies the feature is a pair of parallel line pairs.
IMAQ_LINE_FEATURE = 9, // Specifies the feature is a line.
IMAQ_CLOSED_CURVE_FEATURE = 10, // Specifies the feature is a closed curve.
IMAQ_FEATURE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} FeatureType;
typedef enum Barcode2DCellShape_enum {
IMAQ_SQUARE_CELLS = 0, // The function uses an algorithm for decoding the 2D
// barcode that works with square data cells.
IMAQ_ROUND_CELLS = 1, // The function uses an algorithm for decoding the 2D
// barcode that works with round data cells.
IMAQ_BARCODE_2D_CELL_SHAPE_SIZE_GUARD = 0xFFFFFFFF
} Barcode2DCellShape;
typedef enum LocalThresholdMethod_enum {
IMAQ_NIBLACK = 0, // The function computes thresholds for each pixel based on
// its local statistics using the Niblack local
// thresholding algorithm.
IMAQ_BACKGROUND_CORRECTION =
1, // The function performs background correction first to eliminate
// non-uniform lighting effects, then performs thresholding using the
// Otsu thresholding algorithm.
IMAQ_LOCAL_THRESHOLD_METHOD_SIZE_GUARD = 0xFFFFFFFF
} LocalThresholdMethod;
typedef enum Barcode2DType_enum {
IMAQ_PDF417 = 0, // The 2D barcode is of type PDF417.
IMAQ_DATA_MATRIX_ECC_000 =
1, // The 2D barcode is of type Data Matrix ECC 000.
IMAQ_DATA_MATRIX_ECC_050 =
2, // The 2D barcode is of type Data Matrix ECC 050.
IMAQ_DATA_MATRIX_ECC_080 =
3, // The 2D barcode is of type Data Matrix ECC 080.
IMAQ_DATA_MATRIX_ECC_100 =
4, // The 2D barcode is of type Data Matrix ECC 100.
IMAQ_DATA_MATRIX_ECC_140 =
5, // The 2D barcode is of type Data Matrix ECC 140.
IMAQ_DATA_MATRIX_ECC_200 =
6, // The 2D barcode is of type Data Matrix ECC 200.
IMAQ_BARCODE_2D_TYPE_SIZE_GUARD = 0xFFFFFFFF
} Barcode2DType;
typedef enum ClassifierEngineType_enum {
IMAQ_ENGINE_NONE = 0, // No engine has been set on this classifier session.
IMAQ_ENGINE_NEAREST_NEIGHBOR = 1, // Nearest neighbor engine.
IMAQ_ENGINE_SUPPORT_VECTOR_MACHINE = 2,
IMAQ_CLASSIFIER_ENGINE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ClassifierEngineType;
typedef enum ClassifierType_enum {
IMAQ_CLASSIFIER_CUSTOM =
0, // The classifier session classifies vectors of doubles.
IMAQ_CLASSIFIER_PARTICLE =
1, // The classifier session classifies particles in binary images.
IMAQ_CLASSIFIER_COLOR =
2, // The classifier session classifies an image based on its color.
IMAQ_CLASSIFIER_TEXTURE =
3, // The classifier session classifies an image based on its texture.
IMAQ_CLASSIFIER_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ClassifierType;
typedef enum ParticleType_enum {
IMAQ_PARTICLE_BRIGHT = 0, // Bright particles.
IMAQ_PARTICLE_DARK = 1, // Dark particles.
IMAQ_PARTICLE_TYPE_SIZE_GUARD = 0xFFFFFFFF
} ParticleType;
typedef enum VisionInfoType2_enum {
IMAQ_VISIONINFO_CALIBRATION = 0x01, // Used to indicate interaction with the
// Calibration information in an image.
IMAQ_VISIONINFO_OVERLAY = 0x02, // Used to indicate interaction with the
// Overlay information in an image.
IMAQ_VISIONINFO_GRAYTEMPLATE = 0x04, // Used to indicate interaction with the
// grayscale template information in an
// image.
IMAQ_VISIONINFO_COLORTEMPLATE = 0x08, // Used to indicate interaction with
// the color template information in an
// image.
IMAQ_VISIONINFO_GEOMETRICTEMPLATE = 0x10, // Used to indicate interaction
// with the geometric template
// information in an image.
IMAQ_VISIONINFO_CUSTOMDATA = 0x20, // Used to indicate interaction with the
// binary or text Custom Data in an image.
IMAQ_VISIONINFO_GOLDENTEMPLATE = 0x40, // Used to indicate interaction with
// the golden template information in
// an image.
IMAQ_VISIONINFO_GEOMETRICTEMPLATE2 = 0x80, // Used to indicate interaction
// with the geometric template 2
// information in an image.
IMAQ_VISIONINFO_ALL = 0xFFFFFFFF, // Removes, checks for, or indicates the
// presence of all types of extra
// information in an image.
} VisionInfoType2;
typedef enum ReadClassifierFileMode_enum {
IMAQ_CLASSIFIER_READ_ALL =
0, // Read all information from the classifier file.
IMAQ_CLASSIFIER_READ_SAMPLES =
1, // Read only the samples from the classifier file.
IMAQ_CLASSIFIER_READ_PROPERTIES =
2, // Read only the properties from the classifier file.
IMAQ_READ_CLASSIFIER_FILE_MODES_SIZE_GUARD = 0xFFFFFFFF
} ReadClassifierFileMode;
typedef enum WriteClassifierFileMode_enum {
IMAQ_CLASSIFIER_WRITE_ALL =
0, // Writes all information to the classifier file.
IMAQ_CLASSIFIER_WRITE_CLASSIFY_ONLY = 1, // Write only the information needed
// to classify to the classifier
// file.
IMAQ_WRITE_CLASSIFIER_FILE_MODES_SIZE_GUARD = 0xFFFFFFFF
} WriteClassifierFileMode;
typedef enum Barcode2DShape_enum {
IMAQ_SQUARE_BARCODE_2D = 0, // The function searches for square 2D barcodes.
IMAQ_RECTANGULAR_BARCODE_2D =
1, // The function searches for rectangular 2D barcodes.
IMAQ_BARCODE_2D_SHAPE_SIZE_GUARD = 0xFFFFFFFF
} Barcode2DShape;
typedef enum DataMatrixRotationMode_enum {
IMAQ_UNLIMITED_ROTATION = 0, // The function allows for unlimited rotation.
IMAQ_0_DEGREES =
1, // The function allows for between -5 and 5 degrees of rotation.
IMAQ_90_DEGREES =
2, // The function allows for between 85 and 95 degrees of rotation.
IMAQ_180_DEGREES =
3, // The function allows for between 175 and 185 degrees of rotation.
IMAQ_270_DEGREES =
4, // The function allows for between 265 and 275 degrees of rotation.
IMAQ_DATA_MATRIX_ROTATION_MODE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixRotationMode;
typedef enum AIMGrade_enum {
IMAQ_AIM_GRADE_F = 0, // The Data Matrix barcode received a grade of F.
IMAQ_AIM_GRADE_D = 1, // The Data Matrix barcode received a grade of D.
IMAQ_AIM_GRADE_C = 2, // The Data Matrix barcode received a grade of C.
IMAQ_AIM_GRADE_B = 3, // The Data Matrix barcode received a grade of B.
IMAQ_AIM_GRADE_A = 4, // The Data Matrix barcode received a grade of A.
IMAQ_DATA_MATRIX_AIM_GRADE_SIZE_GUARD = 0xFFFFFFFF
} AIMGrade;
typedef enum DataMatrixCellFillMode_enum {
IMAQ_AUTO_DETECT_CELL_FILL_MODE = -2, // Sets the function to determine the
// Data Matrix barcode cell fill
// percentage automatically.
IMAQ_LOW_FILL = 0, // Sets the function to read Data Matrix barcodes with a
// cell fill percentage of less than 30 percent.
IMAQ_NORMAL_FILL = 1, // Sets the function to read Data Matrix barcodes with
// a cell fill percentage greater than or equal to 30
// percent.
IMAQ_DATA_MATRIX_CELL_FILL_MODE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixCellFillMode;
typedef enum DataMatrixDemodulationMode_enum {
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.
IMAQ_HISTOGRAM = 0, // The function uses a histogram of all of the Data
// Matrix cells to calculate a threshold.
IMAQ_LOCAL_CONTRAST = 1, // The function examines each of the cell's
// neighbors to determine if the cell is on or off.
IMAQ_COMBINED = 2, // The function uses the histogram of the Data Matrix
// barcode to calculate a threshold.
IMAQ_ALL_DEMODULATION_MODES =
3, // The function tries IMAQ_HISTOGRAM, then IMAQ_LOCAL_CONTRAST and
// then IMAQ_COMBINATION, stopping once one mode is successful.
IMAQ_DATA_MATRIX_DEMODULATION_MODE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixDemodulationMode;
typedef enum DataMatrixECC_enum {
IMAQ_AUTO_DETECT_ECC = -2, // Sets the function to determine the Data Matrix
// barcode ECC automatically.
IMAQ_ECC_000 =
0, // Sets the function to read Data Matrix barcodes of ECC 000 only.
IMAQ_ECC_050 =
50, // Sets the function to read Data Matrix barcodes of ECC 050 only.
IMAQ_ECC_080 =
80, // Sets the function to read Data Matrix barcodes of ECC 080 only.
IMAQ_ECC_100 =
100, // Sets the function to read Data Matrix barcodes of ECC 100 only.
IMAQ_ECC_140 =
140, // Sets the function to read Data Matrix barcodes of ECC 140 only.
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.
IMAQ_ECC_200 =
200, // Sets the function to read Data Matrix barcodes of ECC 200 only.
IMAQ_DATA_MATRIX_ECC_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixECC;
typedef enum DataMatrixPolarity_enum {
IMAQ_AUTO_DETECT_POLARITY = -2, // Sets the function to determine the Data
// Matrix barcode polarity automatically.
IMAQ_BLACK_DATA_ON_WHITE_BACKGROUND = 0, // Sets the function to read Data
// Matrix barcodes with dark data on
// a bright background.
IMAQ_WHITE_DATA_ON_BLACK_BACKGROUND = 1, // Sets the function to read Data
// Matrix barcodes with bright data
// on a dark background.
IMAQ_DATA_MATRIX_POLARITY_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixPolarity;
typedef enum DataMatrixCellFilterMode_enum {
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.
IMAQ_AVERAGE_FILTER = 0, // The function sets the pixel value for the cell to
// the average of the sampled pixels.
IMAQ_MEDIAN_FILTER = 1, // The function sets the pixel value for the cell to
// the median of the sampled pixels.
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.
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.
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.
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.
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.
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.
IMAQ_DATA_MATRIX_CELL_FILTER_MODE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixCellFilterMode;
typedef enum WindowBackgroundHatchStyle_enum {
IMAQ_HATCH_STYLE_HORIZONTAL =
0, // The background of the display window will be horizontal bars.
IMAQ_HATCH_STYLE_VERTICAL =
1, // The background of the display window will be vertical bars.
IMAQ_HATCH_STYLE_FORWARD_DIAGONAL =
2, // The background of the display window will be diagonal bars.
IMAQ_HATCH_STYLE_BACKWARD_DIAGONAL =
3, // The background of the display window will be diagonal bars.
IMAQ_HATCH_STYLE_CROSS = 4, // The background of the display window will be
// intersecting horizontal and vertical bars.
IMAQ_HATCH_STYLE_CROSS_HATCH = 5, // The background of the display window
// will be intersecting forward and
// backward diagonal bars.
IMAQ_HATCH_STYLE_SIZE_GUARD = 0xFFFFFFFF
} WindowBackgroundHatchStyle;
typedef enum DataMatrixMirrorMode_enum {
IMAQ_AUTO_DETECT_MIRROR = -2, // Specifies that the function should determine
// if the Data Matrix barcode is mirrored.
IMAQ_APPEARS_NORMAL = 0, // Specifies that the function should expect the
// Data Matrix barcode to appear normal.
IMAQ_APPEARS_MIRRORED = 1, // Specifies that the function should expect the
// Data Matrix barcode to appear mirrored.
IMAQ_DATA_MATRIX_MIRROR_MODE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixMirrorMode;
typedef enum CalibrationMode2_enum {
IMAQ_PERSPECTIVE_MODE = 0, // Functions correct for distortion caused by the
// camera's perspective.
IMAQ_MICROPLANE_MODE =
1, // Functions correct for distortion caused by the camera's lens.
IMAQ_SIMPLE_CALIBRATION_MODE = 2, // Functions do not correct for distortion.
IMAQ_CORRECTED_IMAGE_MODE = 3, // The image is already corrected.
IMAQ_NO_CALIBRATION_MODE = 4, // Image with No calibration.
IMAQ_CALIBRATION_MODE2_SIZE_GUARD = 0xFFFFFFFF
} CalibrationMode2;
typedef enum DataMatrixGradingMode_enum {
IMAQ_NO_GRADING =
0, // The function does not make any preparatory calculations.
IMAQ_PREPARE_FOR_AIM = 1, // The function prepares the image for grading
// using the AIM Print Quality metrics.
IMAQ_DATA_MATRIX_GRADING_MODE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixGradingMode;
typedef enum WaveletTransformMode_enum {
IMAQ_WAVELET_TRANSFORM_INTEGER =
0, // Uses a 5-3 reversible integer transform.
IMAQ_WAVELET_TRANSFORM_FLOATING_POINT =
1, // Performs a 9-7 irreversible floating-point transform.
IMAQ_WAVELET_TRANSFORM_MODE_SIZE_GUARD = 0xFFFFFFFF
} WaveletTransformMode;
typedef enum NormalizationMethod_enum {
IMAQ_NORMALIZATION_NONE = 0, // No normalization.
IMAQ_NORMALIZATION_HISTOGRAM_MATCHING = 1, // Adjust image so its histogram
// is similar to the golden
// template's histogram.
IMAQ_NORMALIZATION_AVERAGE_MATCHING = 2, // Adjust image so its mean pixel
// value equals the golden
// template's mean pixel value.
IMAQ_NORMALIZATION_SIZE_GUARD = 0xFFFFFFFF
} NormalizationMethod;
typedef enum RegistrationMethod_enum {
IMAQ_REGISTRATION_NONE = 0, // No registration.
IMAQ_REGISTRATION_PERSPECTIVE = 1, // Adjust image to correct for minor
// variations in alignment or perspective.
IMAQ_REGISTRATION_SIZE_GUARD = 0xFFFFFFFF
} RegistrationMethod;
typedef enum LinearAveragesMode_enum {
IMAQ_COLUMN_AVERAGES = 1, // Specifies that the function calculates the mean
// pixel value of each column.
IMAQ_ROW_AVERAGES = 2, // Specifies that the function calculates the mean
// pixel value of each row.
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.
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.
IMAQ_ALL_LINEAR_AVERAGES = 15, // Specifies that the function calculates all
// four linear mean pixel values.
IMAQ_LINEAR_AVERAGES_MODE_SIZE_GUARD = 0xFFFFFFFF
} LinearAveragesMode;
typedef enum CompressionType_enum {
IMAQ_COMPRESSION_NONE =
0, // Specifies that the function should not compress the image.
IMAQ_COMPRESSION_JPEG = 1, // Specifies that the function should use lossy
// JPEG compression on the image.
IMAQ_COMPRESSION_PACKED_BINARY = 2, // Specifies that the function should use
// lossless binary packing on the image.
IMAQ_COMPRESSION_TYPE_SIZE_GUARD = 0xFFFFFFFF
} CompressionType;
typedef enum FlattenType_enum {
IMAQ_FLATTEN_IMAGE = 0, // Flattens just the image data.
IMAQ_FLATTEN_IMAGE_AND_VISION_INFO = 1, // Flattens the image data and any
// Vision information associated with
// the image.
IMAQ_FLATTEN_TYPE_SIZE_GUARD = 0xFFFFFFFF
} FlattenType;
typedef enum DataMatrixCellSampleSize_enum {
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.
IMAQ_1x1 = 1, // The function will use a 1x1 sized sample from each cell.
IMAQ_2x2 = 2, // The function will use a 2x2 sized sample from each cell.
IMAQ_3x3 = 3, // The function will use a 3x3 sized sample from each cell.
IMAQ_4x4 = 4, // The function will use a 4x4 sized sample from each cell.
IMAQ_5x5 = 5, // The function will use a 5x5 sized sample from each cell.
IMAQ_6x6 = 6, // The function will use a 6x6 sized sample from each cell.
IMAQ_7x7 = 7, // The function will use a 7x7 sized sample from each cell.
IMAQ_DATA_MATRIX_CELL_SAMPLE_SIZE_SIZE_GUARD = 0xFFFFFFFF
} DataMatrixCellSampleSize;
//============================================================================
// Forward Declare Data Structures
//============================================================================
typedef struct Image_struct Image;
typedef struct ROI_struct ROI;
typedef struct Overlay_struct Overlay;
typedef struct ClassifierSession_struct ClassifierSession;
typedef struct MultipleGeometricPattern_struct MultipleGeometricPattern;
typedef int ContourID;
typedef unsigned long SESSION_ID;
typedef int AVISession;
typedef char* FilterName;
typedef char String255[256];
typedef struct CharSet_struct CharSet;
typedef struct OCRSpacingOptions_struct OCRSpacingOptions;
typedef struct OCRProcessingOptions_struct OCRProcessingOptions;
typedef struct ReadTextOptions_struct ReadTextOptions;
typedef struct CharInfo_struct CharInfo;
typedef struct CharReport_struct CharReport;
typedef struct ReadTextReport_struct ReadTextReport;
typedef struct DivisionModel_struct DivisionModel;
typedef struct FocalLength_struct FocalLength;
typedef struct PolyModel_struct PolyModel;
typedef struct DistortionModelParams_struct DistortionModelParams;
typedef struct PointFloat_struct PointFloat;
typedef struct InternalParameters_struct InternalParameters;
typedef struct MaxGridSize_struct MaxGridSize;
typedef struct ImageSize_struct ImageSize;
typedef struct CalibrationReferencePoints_struct CalibrationReferencePoints;
typedef struct GetCameraParametersReport_struct GetCameraParametersReport;
typedef struct CalibrationAxisInfo_struct CalibrationAxisInfo;
typedef struct CalibrationLearnSetupInfo_struct CalibrationLearnSetupInfo;
typedef struct GridDescriptor_struct GridDescriptor;
typedef struct ErrorStatistics_struct ErrorStatistics;
typedef struct GetCalibrationInfoReport_struct GetCalibrationInfoReport;
typedef struct EdgePolarity_struct EdgePolarity;
typedef struct ClampSettings_struct ClampSettings;
typedef struct PointDouble_struct PointDouble;
typedef struct PointDoublePair_struct PointDoublePair;
typedef struct ClampResults_struct ClampResults;
typedef struct ClampPoints_struct ClampPoints;
typedef struct RGBValue_struct RGBValue;
typedef struct ClampOverlaySettings_struct ClampOverlaySettings;
typedef struct ClampMax2Report_struct ClampMax2Report;
typedef struct ContourFitSplineReport_struct ContourFitSplineReport;
typedef struct LineFloat_struct LineFloat;
typedef struct LineEquation_struct LineEquation;
typedef struct ContourFitLineReport_struct ContourFitLineReport;
typedef struct ContourFitPolynomialReport_struct ContourFitPolynomialReport;
typedef struct PartialCircle_struct PartialCircle;
typedef struct PartialEllipse_struct PartialEllipse;
typedef struct SetupMatchPatternData_struct SetupMatchPatternData;
typedef struct RangeSettingDouble_struct RangeSettingDouble;
typedef struct GeometricAdvancedSetupDataOption_struct
GeometricAdvancedSetupDataOption;
typedef struct ContourInfoReport_struct ContourInfoReport;
typedef struct ROILabel_struct ROILabel;
typedef struct SupervisedColorSegmentationReport_struct
SupervisedColorSegmentationReport;
typedef struct LabelToROIReport_struct LabelToROIReport;
typedef struct ColorSegmenationOptions_struct ColorSegmenationOptions;
typedef struct ClassifiedCurve_struct ClassifiedCurve;
typedef struct RangeDouble_struct RangeDouble;
typedef struct RangeLabel_struct RangeLabel;
typedef struct CurvatureAnalysisReport_struct CurvatureAnalysisReport;
typedef struct Disparity_struct Disparity;
typedef struct ComputeDistancesReport_struct ComputeDistancesReport;
typedef struct MatchMode_struct MatchMode;
typedef struct ClassifiedDisparity_struct ClassifiedDisparity;
typedef struct ClassifyDistancesReport_struct ClassifyDistancesReport;
typedef struct ContourComputeCurvatureReport_struct
ContourComputeCurvatureReport;
typedef struct ContourOverlaySettings_struct ContourOverlaySettings;
typedef struct CurveParameters_struct CurveParameters;
typedef struct ExtractContourReport_struct ExtractContourReport;
typedef struct ConnectionConstraint_struct ConnectionConstraint;
typedef struct ExtractTextureFeaturesReport_struct ExtractTextureFeaturesReport;
typedef struct WaveletBandsReport_struct WaveletBandsReport;
typedef struct CircleFitOptions_struct CircleFitOptions;
typedef struct EdgeOptions2_struct EdgeOptions2;
typedef struct FindCircularEdgeOptions_struct FindCircularEdgeOptions;
typedef struct FindConcentricEdgeOptions_struct FindConcentricEdgeOptions;
typedef struct ConcentricEdgeFitOptions_struct ConcentricEdgeFitOptions;
typedef struct FindConcentricEdgeReport_struct FindConcentricEdgeReport;
typedef struct FindCircularEdgeReport_struct FindCircularEdgeReport;
typedef struct WindowSize_struct WindowSize;
typedef struct DisplacementVector_struct DisplacementVector;
typedef struct WaveletOptions_struct WaveletOptions;
typedef struct CooccurrenceOptions_struct CooccurrenceOptions;
typedef struct ParticleClassifierLocalThresholdOptions_struct
ParticleClassifierLocalThresholdOptions;
typedef struct RangeFloat_struct RangeFloat;
typedef struct ParticleClassifierAutoThresholdOptions_struct
ParticleClassifierAutoThresholdOptions;
typedef struct ParticleClassifierPreprocessingOptions2_struct
ParticleClassifierPreprocessingOptions2;
typedef struct MeasureParticlesReport_struct MeasureParticlesReport;
typedef struct GeometricPatternMatch3_struct GeometricPatternMatch3;
typedef struct MatchGeometricPatternAdvancedOptions3_struct
MatchGeometricPatternAdvancedOptions3;
typedef struct ColorOptions_struct ColorOptions;
typedef struct SampleScore_struct SampleScore;
typedef struct ClassifierReportAdvanced_struct ClassifierReportAdvanced;
typedef struct LearnGeometricPatternAdvancedOptions2_struct
LearnGeometricPatternAdvancedOptions2;
typedef struct ParticleFilterOptions2_struct ParticleFilterOptions2;
typedef struct FindEdgeOptions2_struct FindEdgeOptions2;
typedef struct FindEdgeReport_struct FindEdgeReport;
typedef struct FindTransformRectOptions2_struct FindTransformRectOptions2;
typedef struct FindTransformRectsOptions2_struct FindTransformRectsOptions2;
typedef struct ReadTextReport3_struct ReadTextReport3;
typedef struct CharacterStatistics_struct CharacterStatistics;
typedef struct CharReport3_struct CharReport3;
typedef struct ArcInfo2_struct ArcInfo2;
typedef struct EdgeReport2_struct EdgeReport2;
typedef struct SearchArcInfo_struct SearchArcInfo;
typedef struct ConcentricRakeReport2_struct ConcentricRakeReport2;
typedef struct SpokeReport2_struct SpokeReport2;
typedef struct EdgeInfo_struct EdgeInfo;
typedef struct SearchLineInfo_struct SearchLineInfo;
typedef struct RakeReport2_struct RakeReport2;
typedef struct TransformBehaviors_struct TransformBehaviors;
typedef struct QRCodeDataToken_struct QRCodeDataToken;
typedef struct ParticleFilterOptions_struct ParticleFilterOptions;
typedef struct StraightEdgeReport2_struct StraightEdgeReport2;
typedef struct StraightEdgeOptions_struct StraightEdgeOptions;
typedef struct StraightEdge_struct StraightEdge;
typedef struct QRCodeSearchOptions_struct QRCodeSearchOptions;
typedef struct QRCodeSizeOptions_struct QRCodeSizeOptions;
typedef struct QRCodeDescriptionOptions_struct QRCodeDescriptionOptions;
typedef struct QRCodeReport_struct QRCodeReport;
typedef struct AIMGradeReport_struct AIMGradeReport;
typedef struct DataMatrixSizeOptions_struct DataMatrixSizeOptions;
typedef struct DataMatrixDescriptionOptions_struct DataMatrixDescriptionOptions;
typedef struct DataMatrixSearchOptions_struct DataMatrixSearchOptions;
typedef struct DataMatrixReport_struct DataMatrixReport;
typedef struct JPEG2000FileAdvancedOptions_struct JPEG2000FileAdvancedOptions;
typedef struct MatchGeometricPatternAdvancedOptions2_struct
MatchGeometricPatternAdvancedOptions2;
typedef struct InspectionAlignment_struct InspectionAlignment;
typedef struct InspectionOptions_struct InspectionOptions;
typedef struct CharReport2_struct CharReport2;
typedef struct CharInfo2_struct CharInfo2;
typedef struct ReadTextReport2_struct ReadTextReport2;
typedef struct EllipseFeature_struct EllipseFeature;
typedef struct CircleFeature_struct CircleFeature;
typedef struct ConstCurveFeature_struct ConstCurveFeature;
typedef struct RectangleFeature_struct RectangleFeature;
typedef struct LegFeature_struct LegFeature;
typedef struct CornerFeature_struct CornerFeature;
typedef struct LineFeature_struct LineFeature;
typedef struct ParallelLinePairFeature_struct ParallelLinePairFeature;
typedef struct PairOfParallelLinePairsFeature_struct
PairOfParallelLinePairsFeature;
typedef union GeometricFeature_union GeometricFeature;
typedef struct FeatureData_struct FeatureData;
typedef struct GeometricPatternMatch2_struct GeometricPatternMatch2;
typedef struct ClosedCurveFeature_struct ClosedCurveFeature;
typedef struct LineMatch_struct LineMatch;
typedef struct LineDescriptor_struct LineDescriptor;
typedef struct RectangleDescriptor_struct RectangleDescriptor;
typedef struct RectangleMatch_struct RectangleMatch;
typedef struct EllipseDescriptor_struct EllipseDescriptor;
typedef struct EllipseMatch_struct EllipseMatch;
typedef struct CircleMatch_struct CircleMatch;
typedef struct CircleDescriptor_struct CircleDescriptor;
typedef struct ShapeDetectionOptions_struct ShapeDetectionOptions;
typedef struct Curve_struct Curve;
typedef struct CurveOptions_struct CurveOptions;
typedef struct Barcode2DInfo_struct Barcode2DInfo;
typedef struct DataMatrixOptions_struct DataMatrixOptions;
typedef struct ClassifierAccuracyReport_struct ClassifierAccuracyReport;
typedef struct NearestNeighborClassResult_struct NearestNeighborClassResult;
typedef struct NearestNeighborTrainingReport_struct
NearestNeighborTrainingReport;
typedef struct ParticleClassifierPreprocessingOptions_struct
ParticleClassifierPreprocessingOptions;
typedef struct ClassifierSampleInfo_struct ClassifierSampleInfo;
typedef struct ClassScore_struct ClassScore;
typedef struct ClassifierReport_struct ClassifierReport;
typedef struct NearestNeighborOptions_struct NearestNeighborOptions;
typedef struct ParticleClassifierOptions_struct ParticleClassifierOptions;
typedef struct RGBU64Value_struct RGBU64Value;
typedef struct GeometricPatternMatch_struct GeometricPatternMatch;
typedef struct MatchGeometricPatternAdvancedOptions_struct
MatchGeometricPatternAdvancedOptions;
typedef struct MatchGeometricPatternOptions_struct MatchGeometricPatternOptions;
typedef struct LearnGeometricPatternAdvancedOptions_struct
LearnGeometricPatternAdvancedOptions;
typedef struct FitEllipseOptions_struct FitEllipseOptions;
typedef struct FitCircleOptions_struct FitCircleOptions;
typedef struct ConstructROIOptions2_struct ConstructROIOptions2;
typedef struct HSLValue_struct HSLValue;
typedef struct HSVValue_struct HSVValue;
typedef struct HSIValue_struct HSIValue;
typedef struct CIELabValue_struct CIELabValue;
typedef struct CIEXYZValue_struct CIEXYZValue;
typedef union Color2_union Color2;
typedef struct BestEllipse2_struct BestEllipse2;
typedef struct LearnPatternAdvancedOptions_struct LearnPatternAdvancedOptions;
typedef struct AVIInfo_struct AVIInfo;
typedef struct LearnPatternAdvancedShiftOptions_struct
LearnPatternAdvancedShiftOptions;
typedef struct LearnPatternAdvancedRotationOptions_struct
LearnPatternAdvancedRotationOptions;
typedef struct MatchPatternAdvancedOptions_struct MatchPatternAdvancedOptions;
typedef struct ParticleFilterCriteria2_struct ParticleFilterCriteria2;
typedef struct BestCircle2_struct BestCircle2;
typedef struct OCRSpacingOptions_struct OCRSpacingOptions;
typedef struct OCRProcessingOptions_struct OCRProcessingOptions;
typedef struct ReadTextOptions_struct ReadTextOptions;
typedef struct CharInfo_struct CharInfo;
#if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
typedef struct Rect_struct Rect;
#endif
typedef struct CharReport_struct CharReport;
typedef struct ReadTextReport_struct ReadTextReport;
#if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
typedef struct Point_struct Point;
#endif
typedef struct Annulus_struct Annulus;
typedef struct EdgeLocationReport_struct EdgeLocationReport;
typedef struct EdgeOptions_struct EdgeOptions;
typedef struct EdgeReport_struct EdgeReport;
typedef struct ExtremeReport_struct ExtremeReport;
typedef struct FitLineOptions_struct FitLineOptions;
typedef struct DisplayMapping_struct DisplayMapping;
typedef struct DetectExtremesOptions_struct DetectExtremesOptions;
typedef struct ImageInfo_struct ImageInfo;
typedef struct LCDOptions_struct LCDOptions;
typedef struct LCDReport_struct LCDReport;
typedef struct LCDSegments_struct LCDSegments;
typedef struct LearnCalibrationOptions_struct LearnCalibrationOptions;
typedef struct LearnColorPatternOptions_struct LearnColorPatternOptions;
typedef struct Line_struct Line;
typedef struct LinearAverages_struct LinearAverages;
typedef struct LineProfile_struct LineProfile;
typedef struct MatchColorPatternOptions_struct MatchColorPatternOptions;
typedef struct HistogramReport_struct HistogramReport;
typedef struct ArcInfo_struct ArcInfo;
typedef struct AxisReport_struct AxisReport;
typedef struct BarcodeInfo_struct BarcodeInfo;
typedef struct BCGOptions_struct BCGOptions;
typedef struct BestCircle_struct BestCircle;
typedef struct BestEllipse_struct BestEllipse;
typedef struct BestLine_struct BestLine;
typedef struct BrowserOptions_struct BrowserOptions;
typedef struct CoordinateSystem_struct CoordinateSystem;
typedef struct CalibrationInfo_struct CalibrationInfo;
typedef struct CalibrationPoints_struct CalibrationPoints;
typedef struct CaliperOptions_struct CaliperOptions;
typedef struct CaliperReport_struct CaliperReport;
typedef struct DrawTextOptions_struct DrawTextOptions;
typedef struct CircleReport_struct CircleReport;
typedef struct ClosedContour_struct ClosedContour;
typedef struct ColorHistogramReport_struct ColorHistogramReport;
typedef struct ColorInformation_struct ColorInformation;
typedef struct Complex_struct Complex;
typedef struct ConcentricRakeReport_struct ConcentricRakeReport;
typedef struct ConstructROIOptions_struct ConstructROIOptions;
typedef struct ContourInfo_struct ContourInfo;
typedef union ContourUnion_union ContourUnion;
typedef struct ContourInfo2_struct ContourInfo2;
typedef struct ContourPoint_struct ContourPoint;
typedef struct CoordinateTransform_struct CoordinateTransform;
typedef struct CoordinateTransform2_struct CoordinateTransform2;
typedef struct CannyOptions_struct CannyOptions;
typedef struct Range_struct Range;
typedef struct UserPointSymbol_struct UserPointSymbol;
typedef struct View3DOptions_struct View3DOptions;
typedef struct MatchPatternOptions_struct MatchPatternOptions;
typedef struct TIFFFileOptions_struct TIFFFileOptions;
typedef union Color_union Color;
typedef union PixelValue_union PixelValue;
typedef struct OpenContour_struct OpenContour;
typedef struct OverlayTextOptions_struct OverlayTextOptions;
typedef struct ParticleFilterCriteria_struct ParticleFilterCriteria;
typedef struct ParticleReport_struct ParticleReport;
typedef struct PatternMatch_struct PatternMatch;
typedef struct QuantifyData_struct QuantifyData;
typedef struct QuantifyReport_struct QuantifyReport;
typedef struct RakeOptions_struct RakeOptions;
typedef struct RakeReport_struct RakeReport;
typedef struct TransformReport_struct TransformReport;
typedef struct ShapeReport_struct ShapeReport;
typedef struct MeterArc_struct MeterArc;
typedef struct ThresholdData_struct ThresholdData;
typedef struct StructuringElement_struct StructuringElement;
typedef struct SpokeReport_struct SpokeReport;
typedef struct SimpleEdgeOptions_struct SimpleEdgeOptions;
typedef struct SelectParticleCriteria_struct SelectParticleCriteria;
typedef struct SegmentInfo_struct SegmentInfo;
typedef struct RotationAngleRange_struct RotationAngleRange;
typedef struct RotatedRect_struct RotatedRect;
typedef struct ROIProfile_struct ROIProfile;
typedef struct ToolWindowOptions_struct ToolWindowOptions;
typedef struct SpokeOptions_struct SpokeOptions;
//============================================================================
// Data Structures
//============================================================================
#if !defined __GNUC__ && !defined _M_X64
#pragma pack(push, 1)
#endif
typedef struct DivisionModel_struct {
float kappa; // The learned kappa coefficient of division model.
} DivisionModel;
typedef struct FocalLength_struct {
float fx; // Focal length in X direction.
float fy; // Focal length in Y direction.
} FocalLength;
typedef struct PolyModel_struct {
float* kCoeffs; // The learned radial coefficients of polynomial model.
unsigned int numKCoeffs; // Number of K coefficients.
float p1; // The P1(learned tangential coefficients of polynomial model).
float p2; // The P2(learned tangential coefficients of polynomial model).
} PolyModel;
typedef struct DistortionModelParams_struct {
DistortionModel distortionModel; // Type of learned distortion model.
PolyModel polyModel; // The learned coefficients of polynomial model.
DivisionModel divisionModel; // The learned coefficient of division model.
} DistortionModelParams;
typedef struct PointFloat_struct {
float x; // The x-coordinate of the point.
float y; // The y-coordinate of the point.
} PointFloat;
typedef struct InternalParameters_struct {
char isInsufficientData;
FocalLength focalLength;
PointFloat opticalCenter;
} InternalParameters;
typedef struct MaxGridSize_struct {
unsigned int xMax; // Maximum x limit for the grid size.
unsigned int yMax; // Maximum y limit for the grid size.
} MaxGridSize;
typedef struct ImageSize_struct {
unsigned int xRes; // X resolution of the image.
unsigned int yRes; // Y resolution of the image.
} ImageSize;
typedef struct CalibrationReferencePoints_struct {
PointDouble*
pixelCoords; // Specifies the coordinates of the pixel reference points.
unsigned int numPixelCoords; // Number of pixel coordinates.
PointDouble*
realCoords; // Specifies the measuring unit associated with the image.
unsigned int numRealCoords; // Number of real coordinates.
CalibrationUnit units; // Specifies the units of X Step and Y Step.
ImageSize imageSize; // Specifies the size of calibration template image.
} CalibrationReferencePoints;
typedef struct GetCameraParametersReport_struct {
double*
projectionMatrix; // The projection(homography) matrix of working plane.
unsigned int projectionMatrixRows; // Number of rows in projection matrix.
unsigned int projectionMatrixCols; // Number of columns in projection matrix.
DistortionModelParams distortion; // Distortion model Coefficients.
InternalParameters internalParams; // The learned internal paramters of
// camera model such as focal length and
// optical center.
} GetCameraParametersReport;
typedef struct CalibrationAxisInfo_struct {
PointFloat center; // The origin of the reference coordinate system,
// expressed in pixel units.
float rotationAngle; // The angle of the x-axis of the real-world coordinate
// system, in relation to the horizontal.
AxisOrientation axisDirection; // Specifies the direction of the calibraiton
// axis which is either Direct or Indirect.
} CalibrationAxisInfo;
typedef struct CalibrationLearnSetupInfo_struct {
CalibrationMode2 calibrationMethod; // Type of calibration method used.
DistortionModel distortionModel; // Type of learned distortion model.
ScalingMethod
scaleMode; // The aspect scaling to use when correcting an image.
CalibrationROI roiMode; // The ROI to use when correcting an image.
char learnCorrectionTable; // Set this input to true value if you want the
// correction table to be determined and stored.
} CalibrationLearnSetupInfo;
typedef struct GridDescriptor_struct {
float xStep; // The distance in the x direction between two adjacent pixels
// in units specified by unit.
float yStep; // The distance in the y direction between two adjacent pixels
// in units specified by unit.
CalibrationUnit unit; // The unit of measure for the image.
} GridDescriptor;
typedef struct ErrorStatistics_struct {
double mean; // Mean error statistics value.
double maximum; // Maximum value of error.
double standardDeviation; // The standard deviation error statistiscs value.
double distortion; // The distortion error statistics value.
} ErrorStatistics;
typedef struct GetCalibrationInfoReport_struct {
ROI* userRoi; // Specifies the ROI the user provided when learning the
// calibration.
ROI* calibrationRoi; // Specifies the ROI that corresponds to the region of
// the image where the calibration information is
// accurate.
CalibrationAxisInfo
axisInfo; // Reference Coordinate System for the real-world coordinates.
CalibrationLearnSetupInfo
learnSetupInfo; // Calibration learn setup information.
GridDescriptor gridDescriptor; // Specifies scaling constants used to
// calibrate the image.
float* errorMap; // The the error map of calibration template image.
unsigned int errorMapRows; // Number of rows in error map.
unsigned int errorMapCols; // Number of Columns in error map.
ErrorStatistics errorStatistics; // Error statistics of the calibration.
} GetCalibrationInfoReport;
typedef struct EdgePolarity_struct {
EdgePolaritySearchMode start;
EdgePolaritySearchMode end;
} EdgePolarity;
typedef struct ClampSettings_struct {
double angleRange; // Specifies the angle range.
EdgePolarity edgePolarity; // Specifies the edge polarity.
} ClampSettings;
typedef struct PointDouble_struct {
double x; // The x-coordinate of the point.
double y; // The y-coordinate of the point.
} PointDouble;
typedef struct PointDoublePair_struct {
PointDouble start; // The Start co-ordinate of the pair.
PointDouble end; // The End co-ordinate of the pair.
} PointDoublePair;
typedef struct ClampResults_struct {
double distancePix; // Defines the Pixel world distance.
double distanceRealWorld; // Defines the real world distance.
double angleAbs; // Defines the absolute angle.
double angleRelative; // Defines the relative angle.
} ClampResults;
typedef struct ClampPoints_struct {
PointDoublePair pixel; // Specifies the pixel world point pair for clamp.
PointDoublePair realWorld; // Specifies the real world point pair for clamp.
} ClampPoints;
typedef struct RGBValue_struct {
unsigned char B; // The blue value of the color.
unsigned char G; // The green value of the color.
unsigned char R; // The red value of the color.
unsigned char alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} RGBValue;
typedef struct ClampOverlaySettings_struct {
int showSearchArea; // If TRUE, the function overlays the search area on the
// image.
int showCurves; // If TRUE, the function overlays the curves on the image.
int showClampLocation; // If TRUE, the function overlays the clamp location
// on the image.
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.
RGBValue searchAreaColor; // Specifies the RGB color value to use to overlay
// the search area.
RGBValue curvesColor; // Specifies the RGB color value to use to overlay the
// curves.
RGBValue clampLocationsColor; // Specifies the RGB color value to use to
// overlay the clamp locations.
RGBValue resultColor; // Specifies the RGB color value to use to overlay the
// results.
char* overlayGroupName; // Specifies the group overlay name for the step
// overlays.
} ClampOverlaySettings;
typedef struct ClampMax2Report_struct {
ClampResults clampResults; // Specifies the Clamp results information
// returned by the function.
ClampPoints clampPoints; // Specifies the clamp points information returned
// by the function.
unsigned int calibrationValid; // Specifies if the calibration information is
// valid or not.
} ClampMax2Report;
typedef struct ContourFitSplineReport_struct {
PointDouble* points; // It returns the points of the best-fit B-spline curve.
int numberOfPoints; // Number of Best fit points returned.
} ContourFitSplineReport;
typedef struct LineFloat_struct {
PointFloat start; // The coordinate location of the start of the line.
PointFloat end; // The coordinate location of the end of the line.
} LineFloat;
typedef struct LineEquation_struct {
double a; // The a coefficient of the line equation.
double b; // The b coefficient of the line equation.
double c; // The c coefficient of the line equation.
} LineEquation;
typedef struct ContourFitLineReport_struct {
LineFloat lineSegment; // Line Segment represents the intersection of the
// line equation and the contour.
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.
} ContourFitLineReport;
typedef struct ContourFitPolynomialReport_struct {
PointDouble* bestFit; // It returns the points of the best-fit polynomial.
int numberOfPoints; // Number of Best fit points returned.
double* polynomialCoefficients; // Polynomial Coefficients returns the
// coefficients of the polynomial equation.
int numberOfCoefficients; // Number of Coefficients returned in the
// polynomial coefficients array.
} ContourFitPolynomialReport;
typedef struct PartialCircle_struct {
PointFloat center; // Center of the circle.
double radius; // Radius of the circle.
double startAngle; // Start angle of the fitted structure.
double endAngle; // End angle of the fitted structure.
} PartialCircle;
typedef struct PartialEllipse_struct {
PointFloat center; // Center of the Ellipse.
double angle; // Angle of the ellipse.
double majorRadius; // The length of the semi-major axis of the ellipse.
double minorRadius; // The length of the semi-minor axis of the ellipse.
double startAngle; // Start angle of the fitted structure.
double endAngle; // End angle of the fitted structure.
} PartialEllipse;
typedef struct SetupMatchPatternData_struct {
unsigned char* matchSetupData; // String containing the match setup data.
int numMatchSetupData; // Number of match setup data.
} SetupMatchPatternData;
typedef struct RangeSettingDouble_struct {
SettingType settingType; // Match Constraints specifies the match option
// whose values you want to constrain by the given
// range.
double min; // Min is the minimum value of the range for a given Match
// Constraint.
double max; // Max is the maximum value of the range for a given Match
// Constraint.
} RangeSettingDouble;
typedef struct GeometricAdvancedSetupDataOption_struct {
GeometricSetupDataItem type; // It determines the option you want to use
// during the matching phase.
double value; // Value is the value for the option you want to use during the
// matching phase.
} GeometricAdvancedSetupDataOption;
typedef struct ContourInfoReport_struct {
PointDouble* pointsPixel; // Points (pixel) specifies the location of every
// point detected on the curve, in pixels.
unsigned int numPointsPixel; // Number of points pixel elements.
PointDouble* pointsReal; // Points (real) specifies the location of every
// point detected on the curve, in calibrated units.
unsigned int numPointsReal; // Number of points real elements.
double* curvaturePixel; // Curvature Pixel displays the curvature profile for
// the selected contour, in pixels.
unsigned int numCurvaturePixel; // Number of curvature pixels.
double* curvatureReal; // Curvature Real displays the curvature profile for
// the selected contour, in calibrated units.
unsigned int numCurvatureReal; // Number of curvature Real elements.
double length; // Length (pixel) specifies the length, in pixels, of the
// curves in the image.
double lengthReal; // Length (real) specifies the length, in calibrated
// units, of the curves within the curvature range.
unsigned int hasEquation; // Has Equation specifies whether the contour has a
// fitted equation.
} ContourInfoReport;
typedef struct ROILabel_struct {
char* className; // Specifies the classname you want to segment.
unsigned int
label; // Label is the label number associated with the Class Name.
} ROILabel;
typedef struct SupervisedColorSegmentationReport_struct {
ROILabel* labelOut; // The Roi labels array.
unsigned int numLabelOut; // The number of elements in labelOut array.
} SupervisedColorSegmentationReport;
typedef struct LabelToROIReport_struct {
ROI** roiArray; // Array of ROIs.
unsigned int numOfROIs; // Number of ROIs in the roiArray.
unsigned int* labelsOutArray; // Array of labels.
unsigned int numOfLabels; // Number of labels.
int* isTooManyVectorsArray; // isTooManyVectorsArray array.
unsigned int isTooManyVectorsArraySize; // Number of elements in
// isTooManyVectorsArray.
} LabelToROIReport;
typedef struct ColorSegmenationOptions_struct {
unsigned int windowX; // X is the window size in x direction.
unsigned int windowY; // Y is the window size in y direction.
unsigned int stepSize; // Step Size is the distance between two windows.
unsigned int minParticleArea; // Min Particle Area is the minimum number of
// allowed pixels.
unsigned int maxParticleArea; // Max Particle Area is the maximum number of
// allowed pixels.
short isFineSegment; // When enabled, the step processes the boundary pixels
// of each segmentation cluster using a step size of 1.
} ColorSegmenationOptions;
typedef struct ClassifiedCurve_struct {
double length; // Specifies the length, in pixels, of the curves within the
// curvature range.
double lengthReal; // specifies the length, in calibrated units, of the
// curves within the curvature range.
double maxCurvature; // specifies the maximum curvature, in pixels, for the
// selected curvature range.
double maxCurvatureReal; // specifies the maximum curvature, in calibrated
// units, for the selected curvature range.
unsigned int label; // specifies the class to which the the sample belongs.
PointDouble* curvePoints; // Curve Points is a point-coordinate cluster that
// defines the points of the curve.
unsigned int numCurvePoints; // Number of curve points.
} ClassifiedCurve;
typedef struct RangeDouble_struct {
double minValue; // The minimum value of the range.
double maxValue; // The maximum value of the range.
} RangeDouble;
typedef struct RangeLabel_struct {
RangeDouble range; // Specifies the range of curvature values.
unsigned int label; // Class Label specifies the class to which the the
// sample belongs.
} RangeLabel;
typedef struct CurvatureAnalysisReport_struct {
ClassifiedCurve* curves;
unsigned int numCurves;
} CurvatureAnalysisReport;
typedef struct Disparity_struct {
PointDouble
current; // Current is a array of points that defines the target contour.
PointDouble reference; // reference is a array of points that defines the
// template contour.
double distance; // Specifies the distance, in pixels, between the template
// contour point and the target contour point.
} Disparity;
typedef struct ComputeDistancesReport_struct {
Disparity*
distances; // Distances is an array containing the computed distances.
unsigned int numDistances; // Number elements in the distances array.
Disparity* distancesReal; // Distances Real is an array containing the
// computed distances in calibrated units.
unsigned int numDistancesReal; // Number of elements in real distances array.
} ComputeDistancesReport;
typedef struct MatchMode_struct {
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.
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.
unsigned int occlusion; // Occlusion specifies whether or not to search for
// occluded versions of the shape.
} MatchMode;
typedef struct ClassifiedDisparity_struct {
double length; // Length (pixel) specifies the length, in pixels, of the
// curves within the curvature range.
double lengthReal; // Length (real) specifies the length, in calibrated
// units, of the curves within the curvature range.
double maxDistance; // Maximum Distance (pixel) specifies the maximum
// distance, in pixels, between points along the selected
// contour and the template contour.
double maxDistanceReal; // Maximum Distance (real) specifies the maximum
// distance, in calibrated units, between points
// along the selected contour and the template
// contour.
unsigned int label; // Class Label specifies the class to which the the
// sample belongs.
PointDouble* templateSubsection; // Template subsection points is an array of
// points that defines the boundary of the
// template.
unsigned int numTemplateSubsection; // Number of reference points.
PointDouble* targetSubsection; // Current Points(Target subsection points) is
// an array of points that defines the
// boundary of the target.
unsigned int numTargetSubsection; // Number of current points.
} ClassifiedDisparity;
typedef struct ClassifyDistancesReport_struct {
ClassifiedDisparity* classifiedDistances; // Disparity array containing the
// classified distances.
unsigned int
numClassifiedDistances; // Number of elements in the disparity array.
} ClassifyDistancesReport;
typedef struct ContourComputeCurvatureReport_struct {
double* curvaturePixel; // Curvature Pixel displays the curvature profile for
// the selected contour, in pixels.
unsigned int numCurvaturePixel; // Number of curvature pixels.
double* curvatureReal; // Curvature Real displays the curvature profile for
// the selected contour, in calibrated units.
unsigned int numCurvatureReal; // Number of curvature Real elements.
} ContourComputeCurvatureReport;
typedef struct ContourOverlaySettings_struct {
unsigned int overlay; // Overlay specifies whether to display the overlay on
// the image.
RGBValue color; // Color is the color of the overlay.
unsigned int width; // Width specifies the width of the overlay in pixels.
unsigned int maintainWidth; // Maintain Width? specifies whether you want the
// overlay measured in screen pixels or image
// pixels.
} ContourOverlaySettings;
typedef struct CurveParameters_struct {
ExtractionMode extractionMode; // Specifies the method the function uses to
// identify curves in the image.
int threshold; // Specifies the minimum contrast a seed point must have in
// order to begin a curve.
EdgeFilterSize filterSize; // Specifies the width of the edge filter the
// function uses to identify curves in the image.
int minLength; // Specifies the length, in pixels, of the smallest curve the
// function will extract.
int searchStep; // Search Step Size specifies the distance, in the y
// direction, between the image rows that the algorithm
// inspects for curve seed points.
int maxEndPointGap; // Specifies the maximum gap, in pixels, between the
// endpoints of a curve that the function identifies as a
// closed curve.
int subpixel; // Subpixel specifies whether to detect curve points with
// subpixel accuracy.
} CurveParameters;
typedef struct ExtractContourReport_struct {
PointDouble* contourPoints; // Contour Points specifies every point found on
// the contour.
int numContourPoints; // Number of contour points.
PointDouble* sourcePoints; // Source Image Points specifies every point found
// on the contour in the source image.
int numSourcePoints; // Number of source points.
} ExtractContourReport;
typedef struct ConnectionConstraint_struct {
ConnectionConstraintType constraintType; // Constraint Type specifies what
// criteria to use to consider two
// curves part of a contour.
RangeDouble range; // Specifies range for a given Match Constraint.
} ConnectionConstraint;
typedef struct ExtractTextureFeaturesReport_struct {
int* waveletBands; // The array having all the Wavelet Banks used for
// extraction.
int numWaveletBands; // Number of wavelet banks in the Array.
double** textureFeatures; // 2-D array to store all the Texture features
// extracted.
int textureFeaturesRows; // Number of Rows in the Texture Features array.
int textureFeaturesCols; // Number of Cols in Texture Features array.
} ExtractTextureFeaturesReport;
typedef struct WaveletBandsReport_struct {
float** LLBand; // 2-D array for LL Band.
float** LHBand; // 2-D array for LH Band.
float** HLBand; // 2-D array for HL Band.
float** HHBand; // 2-D array for HH Band.
float** LLLBand; // 2-D array for LLL Band.
float** LLHBand; // 2-D array for LLH Band.
float LHLBand; // 2-D array for LHL Band.
float** LHHBand; // 2-D array for LHH Band.
int rows; // Number of Rows for each of the 2-D arrays.
int cols; // Number of Columns for each of the 2-D arrays.
} WaveletBandsReport;
typedef struct CircleFitOptions_struct {
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.
double stepSize; // Step Size is the angle, in degrees, between each radial
// line in the annular region.
RakeProcessType processType; // Method used to process the data extracted for
// edge detection.
} CircleFitOptions;
typedef struct EdgeOptions2_struct {
EdgePolaritySearchMode
polarity; // Specifies the polarity of the edges to be found.
unsigned int kernelSize; // Specifies the size of the edge detection kernel.
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.
float minThreshold; // Specifies the minimum edge strength (gradient
// magnitude) required for a detected edge.
InterpolationMethod interpolationType; // Specifies the interpolation method
// used to locate the edge position.
ColumnProcessingMode columnProcessingMode; // Specifies the method used to
// find the straight edge.
} EdgeOptions2;
typedef struct FindCircularEdgeOptions_struct {
SpokeDirection
direction; // Specifies the Spoke direction to search in the ROI.
int showSearchArea; // If TRUE, the function overlays the search area on the
// image.
int showSearchLines; // If TRUE, the function overlays the search lines used
// to locate the edges on the image.
int showEdgesFound; // If TRUE, the function overlays the locations of the
// edges found on the image.
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.
RGBValue searchAreaColor; // Specifies the RGB color value to use to overlay
// the search area.
RGBValue searchLinesColor; // Specifies the RGB color value to use to overlay
// the search lines.
RGBValue searchEdgesColor; // Specifies the RGB color value to use to overlay
// the search edges.
RGBValue resultColor; // Specifies the RGB color value to use to overlay the
// results.
char* overlayGroupName; // Specifies the overlay group name to assign to the
// overlays.
EdgeOptions2 edgeOptions; // Specifies the edge detection options along a
// single search line.
} FindCircularEdgeOptions;
typedef struct FindConcentricEdgeOptions_struct {
ConcentricRakeDirection direction; // Specifies the Concentric Rake
// direction.
int showSearchArea; // If TRUE, the function overlays the search area on the
// image.
int showSearchLines; // If TRUE, the function overlays the search lines used
// to locate the edges on the image.
int showEdgesFound; // If TRUE, the function overlays the locations of the
// edges found on the image.
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.
RGBValue searchAreaColor; // Specifies the RGB color value to use to overlay
// the search area.
RGBValue searchLinesColor; // Specifies the RGB color value to use to overlay
// the search lines.
RGBValue searchEdgesColor; // Specifies the RGB color value to use to overlay
// the search edges.
RGBValue resultColor; // Specifies the RGB color value to use to overlay the
// results.
char* overlayGroupName; // Specifies the overlay group name to assign to the
// overlays.
EdgeOptions2 edgeOptions; // Specifies the edge detection options along a
// single search line.
} FindConcentricEdgeOptions;
typedef struct ConcentricEdgeFitOptions_struct {
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.
double stepSize; // The sampling factor that determines the gap between the
// rake lines.
RakeProcessType processType; // Method used to process the data extracted for
// edge detection.
} ConcentricEdgeFitOptions;
typedef struct FindConcentricEdgeReport_struct {
PointFloat startPt; // Pixel Coordinates for starting point of the edge.
PointFloat endPt; // Pixel Coordinates for end point of the edge.
PointFloat startPtCalibrated; // Real world Coordinates for starting point of
// the edge.
PointFloat
endPtCalibrated; // Real world Coordinates for end point of the edge.
double angle; // Angle of the edge found.
double angleCalibrated; // Calibrated angle of the edge found.
double straightness; // The straightness value of the detected straight edge.
double avgStrength; // Average strength of the egde found.
double avgSNR; // Average SNR(Signal to Noise Ratio) for the edge found.
int lineFound; // If the edge is found or not.
} FindConcentricEdgeReport;
typedef struct FindCircularEdgeReport_struct {
PointFloat centerCalibrated; // Real world Coordinates of the Center.
double radiusCalibrated; // Real world radius of the Circular Edge found.
PointFloat center; // Pixel Coordinates of the Center.
double radius; // Radius in pixels of the Circular Edge found.
double roundness; // The roundness of the calculated circular edge.
double avgStrength; // Average strength of the egde found.
double avgSNR; // Average SNR(Signal to Noise Ratio) for the edge found.
int circleFound; // If the circlular edge is found or not.
} FindCircularEdgeReport;
typedef struct WindowSize_struct {
int x; // Window lenght on X direction.
int y; // Window lenght on Y direction.
int stepSize; // Distance between windows.
} WindowSize;
typedef struct DisplacementVector_struct {
int x; // length on X direction.
int y; // length on Y direction.
} DisplacementVector;
typedef struct WaveletOptions_struct {
WaveletType typeOfWavelet; // Type of wavelet(db, bior.
float minEnergy; // Minimum Energy in the bands to consider for texture
// defect detection.
} WaveletOptions;
typedef struct CooccurrenceOptions_struct {
int level; // Level/size of matrix.
DisplacementVector
displacement; // Displacemnet between pixels to accumulate the matrix.
} CooccurrenceOptions;
typedef struct ParticleClassifierLocalThresholdOptions_struct {
LocalThresholdMethod
method; // Specifies the local thresholding method the function uses.
ParticleType particleType; // Specifies what kind of particles to look for.
unsigned int windowWidth; // The width of the rectangular window around the
// pixel on which the function performs the local
// threshold.
unsigned int windowHeight; // The height of the rectangular window around the
// pixel on which the function performs the local
// threshold.
double deviationWeight; // Specifies the k constant used in the Niblack local
// thresholding algorithm, which determines the
// weight applied to the variance calculation.
} ParticleClassifierLocalThresholdOptions;
typedef struct RangeFloat_struct {
float minValue; // The minimum value of the range.
float maxValue; // The maximum value of the range.
} RangeFloat;
typedef struct ParticleClassifierAutoThresholdOptions_struct {
ThresholdMethod method; // The method for binary thresholding, which
// specifies how to calculate the classes.
ParticleType particleType; // Specifies what kind of particles to look for.
RangeFloat limits; // The limits on the automatic threshold range.
} ParticleClassifierAutoThresholdOptions;
typedef struct ParticleClassifierPreprocessingOptions2_struct {
ParticleClassifierThresholdType
thresholdType; // The type of threshold to perform on the image.
RangeFloat manualThresholdRange; // The range of pixels to keep if manually
// thresholding the image.
ParticleClassifierAutoThresholdOptions
autoThresholdOptions; // The options used to auto threshold the image.
ParticleClassifierLocalThresholdOptions
localThresholdOptions; // The options used to local threshold the image.
int rejectBorder; // Set this element to TRUE to reject border particles.
int numErosions; // The number of erosions to perform.
} ParticleClassifierPreprocessingOptions2;
typedef struct MeasureParticlesReport_struct {
double** pixelMeasurements; // The measurements on the particles in the
// image, in pixel coordinates.
double** calibratedMeasurements; // The measurements on the particles in the
// image, in real-world coordinates.
size_t numParticles; // The number of particles on which measurements were
// taken.
size_t numMeasurements; // The number of measurements taken.
} MeasureParticlesReport;
typedef struct GeometricPatternMatch3_struct {
PointFloat
position; // The location of the origin of the template in the match.
float rotation; // The rotation of the match relative to the template image,
// in degrees.
float scale; // The size of the match relative to the size of the template
// image, expressed as a percentage.
float score; // The accuracy of the match.
PointFloat corner[4]; // An array of four points describing the rectangle
// surrounding the template image.
int inverse; // This element is TRUE if the match is an inverse of the
// template image.
float occlusion; // The percentage of the match that is occluded.
float templateMatchCurveScore; // The accuracy of the match obtained by
// comparing the template curves to the curves
// in the match region.
float matchTemplateCurveScore; // The accuracy of the match obtained by
// comparing the curves in the match region to
// the template curves.
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.
PointFloat calibratedPosition; // The location of the origin of the template
// in the match.
float calibratedRotation; // The rotation of the match relative to the
// template image, in degrees.
PointFloat calibratedCorner[4]; // An array of four points describing the
// rectangle surrounding the template image.
} GeometricPatternMatch3;
typedef struct MatchGeometricPatternAdvancedOptions3_struct {
unsigned int subpixelIterations; // Specifies the maximum number of
// incremental improvements used to refine
// matches with subpixel information.
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.
unsigned int
initialMatchListLength; // Specifies the maximum size of the match list.
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.
int correlationScore; // Set this element to TRUE to specify that the
// function should calculate the correlation score and
// return it for each match result.
double minMatchSeparationDistance; // Specifies the minimum separation
// distance, in pixels, between the
// origins of two matches that have unique
// positions.
double minMatchSeparationAngle; // Specifies the minimum angular difference,
// in degrees, between two matches that have
// unique angles.
double minMatchSeparationScale; // Specifies the minimum difference in scale,
// expressed as a percentage, between two
// matches that have unique scales.
double maxMatchOverlap; // Specifies the maximum amount of overlap, expressed
// as a percentage, allowed between the bounding
// rectangles of two unique matches.
int coarseResult; // Specifies whether you want the function to spend less
// time accurately estimating the location of a match.
int enableCalibrationSupport; // Set this element to TRUE to specify the
// algorithm treat the inspection image as a
// calibrated image.
ContrastMode enableContrastReversal; // Use this element to specify the
// contrast of the matches to search for
// in the image.
GeometricMatchingSearchStrategy
matchStrategy; // Specifies the aggressiveness of the search strategy.
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.
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.
} MatchGeometricPatternAdvancedOptions3;
typedef struct ColorOptions_struct {
ColorClassificationResolution colorClassificationResolution; // Specifies the
// color
// resolution of
// the
// classifier.
unsigned int useLuminance; // Specifies if the luminance band is going to be
// used in the feature vector.
ColorMode colorMode; // Specifies the color mode of the classifier.
} ColorOptions;
typedef struct SampleScore_struct {
char* className; // The name of the class.
float distance; // The distance from the item to this class.
unsigned int index; // index of this sample.
} SampleScore;
typedef struct ClassifierReportAdvanced_struct {
char* bestClassName; // The name of the best class for the sample.
float classificationScore; // The similarity of the sample and the two
// closest classes in the classifier.
float identificationScore; // The similarity of the sample and the assigned
// class.
ClassScore* allScores; // All classes and their scores.
int allScoresSize; // The number of entries in allScores.
SampleScore* sampleScores; // All samples and their scores.
int sampleScoresSize; // The number of entries in sampleScores.
} ClassifierReportAdvanced;
typedef struct LearnGeometricPatternAdvancedOptions2_struct {
double minScaleFactor; // Specifies the minimum scale factor that the
// template is learned for.
double maxScaleFactor; // Specifies the maximum scale factor the template is
// learned for.
double minRotationAngleValue; // Specifies the minimum rotation angle the
// template is learned for.
double maxRotationAngleValue; // Specifies the maximum rotation angle the
// template is learned for.
unsigned int imageSamplingFactor; // Specifies the factor that is used to
// subsample the template and the image for
// the initial matching phase.
} LearnGeometricPatternAdvancedOptions2;
typedef struct ParticleFilterOptions2_struct {
int rejectMatches; // Set this parameter to TRUE to transfer only those
// particles that do not meet all the criteria.
int rejectBorder; // Set this element to TRUE to reject border particles.
int fillHoles; // Set this element to TRUE to fill holes in particles.
int connectivity8; // Set this parameter to TRUE to use connectivity-8 to
// determine whether particles are touching.
} ParticleFilterOptions2;
typedef struct FindEdgeOptions2_struct {
RakeDirection direction; // The direction to search in the ROI.
int showSearchArea; // If TRUE, the function overlays the search area on the
// image.
int showSearchLines; // If TRUE, the function overlays the search lines used
// to locate the edges on the image.
int showEdgesFound; // If TRUE, the function overlays the locations of the
// edges found on the image.
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.
RGBValue searchAreaColor; // Specifies the RGB color value to use to overlay
// the search area.
RGBValue searchLinesColor; // Specifies the RGB color value to use to overlay
// the search lines.
RGBValue searchEdgesColor; // Specifies the RGB color value to use to overlay
// the search edges.
RGBValue resultColor; // Specifies the RGB color value to use to overlay the
// results.
char* overlayGroupName; // Specifies the overlay group name to assign to the
// overlays.
EdgeOptions2 edgeOptions; // Specifies the edge detection options along a
// single search line.
} FindEdgeOptions2;
typedef struct FindEdgeReport_struct {
StraightEdge* straightEdges; // An array of straight edges detected.
unsigned int
numStraightEdges; // Indicates the number of straight edges found.
} FindEdgeReport;
typedef struct FindTransformRectOptions2_struct {
FindReferenceDirection direction; // Specifies the direction and orientation
// in which the function searches for the
// primary axis.
int showSearchArea; // If TRUE, the function overlays the search area on the
// image.
int showSearchLines; // If TRUE, the function overlays the search lines used
// to locate the edges on the image.
int showEdgesFound; // If TRUE, the function overlays the locations of the
// edges found on the image.
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.
RGBValue searchAreaColor; // Specifies the RGB color value to use to overlay
// the search area.
RGBValue searchLinesColor; // Specifies the RGB color value to use to overlay
// the search lines.
RGBValue searchEdgesColor; // Specifies the RGB color value to use to overlay
// the search edges.
RGBValue resultColor; // Specifies the RGB color value to use to overlay the
// results.
char* overlayGroupName; // Specifies the overlay group name to assign to the
// overlays.
EdgeOptions2 edgeOptions; // Specifies the edge detection options along a
// single search line.
} FindTransformRectOptions2;
typedef struct FindTransformRectsOptions2_struct {
FindReferenceDirection direction; // Specifies the direction and orientation
// in which the function searches for the
// primary axis.
int showSearchArea; // If TRUE, the function overlays the search area on the
// image.
int showSearchLines; // If TRUE, the function overlays the search lines used
// to locate the edges on the image.
int showEdgesFound; // If TRUE, the function overlays the locations of the
// edges found on the image.
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.
RGBValue searchAreaColor; // Specifies the RGB color value to use to overlay
// the search area.
RGBValue searchLinesColor; // Specifies the RGB color value to use to overlay
// the search lines.
RGBValue searchEdgesColor; // Specifies the RGB color value to use to overlay
// the search edges.
RGBValue resultColor; // Specifies the RGB color value to use to overlay the
// results.
char* overlayGroupName; // Specifies the overlay group name to assign to the
// overlays.
EdgeOptions2 primaryEdgeOptions; // Specifies the parameters used to compute
// the edge gradient information and detect
// the edges for the primary ROI.
EdgeOptions2 secondaryEdgeOptions; // Specifies the parameters used to
// compute the edge gradient information
// and detect the edges for the secondary
// ROI.
} FindTransformRectsOptions2;
typedef struct ReadTextReport3_struct {
const char* readString; // The read string.
CharReport3* characterReport; // An array of reports describing the
// properties of each identified character.
int numCharacterReports; // The number of identified characters.
ROI* roiBoundingCharacters; // An array specifying the coordinates of the
// character bounding ROI.
} ReadTextReport3;
typedef struct CharacterStatistics_struct {
int left; // The left offset of the character bounding rectangles in the
// current ROI.
int top; // The top offset of the character bounding rectangles in the
// current ROI.
int width; // The width of each of the characters you trained in the current
// ROI.
int height; // The height of each trained character in the current ROI.
int characterSize; // The size of the character in pixels.
} CharacterStatistics;
typedef struct CharReport3_struct {
const char* character; // The character value.
int classificationScore; // The degree to which the assigned character class
// represents the object better than the other
// character classes in the character set.
int verificationScore; // The similarity of the character and the reference
// character for the character class.
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.
int lowThreshold; // The minimum value of the threshold range used for this
// character.
int highThreshold; // The maximum value of the threshold range used for this
// character.
CharacterStatistics
characterStats; // Describes the characters segmented in the ROI.
} CharReport3;
typedef struct ArcInfo2_struct {
PointFloat center; // The center point of the arc.
double radius; // The radius of the arc.
double startAngle; // The starting angle of the arc, specified
// counter-clockwise from the x-axis.
double endAngle; // The ending angle of the arc, specified counter-clockwise
// from the x-axis.
} ArcInfo2;
typedef struct EdgeReport2_struct {
EdgeInfo* edges; // An array of edges detected.
unsigned int numEdges; // Indicates the number of edges detected.
double* gradientInfo; // An array that contains the calculated edge strengths
// along the user-defined search area.
unsigned int numGradientInfo; // Indicates the number of elements contained
// in gradientInfo.
int calibrationValid; // Indicates if the calibration data corresponding to
// the location of the edges is correct.
} EdgeReport2;
typedef struct SearchArcInfo_struct {
ArcInfo2 arcCoordinates; // Describes the arc used for edge detection.
EdgeReport2 edgeReport; // Describes the edges found in this search line.
} SearchArcInfo;
typedef struct ConcentricRakeReport2_struct {
EdgeInfo* firstEdges; // The first edge point detected along each search line
// in the ROI.
unsigned int numFirstEdges; // The number of points in the firstEdges array.
EdgeInfo* lastEdges; // The last edge point detected along each search line
// in the ROI.
unsigned int numLastEdges; // The number of points in the lastEdges array.
SearchArcInfo* searchArcs; // Contains the arcs used for edge detection and
// the edge information for each arc.
unsigned int numSearchArcs; // The number of arcs in the searchArcs array.
} ConcentricRakeReport2;
typedef struct SpokeReport2_struct {
EdgeInfo* firstEdges; // The first edge point detected along each search line
// in the ROI.
unsigned int numFirstEdges; // The number of points in the firstEdges array.
EdgeInfo* lastEdges; // The last edge point detected along each search line
// in the ROI.
unsigned int numLastEdges; // The number of points in the lastEdges array.
SearchLineInfo* searchLines; // The search lines used for edge detection.
unsigned int
numSearchLines; // The number of search lines used in the edge detection.
} SpokeReport2;
typedef struct EdgeInfo_struct {
PointFloat position; // The location of the edge in the image.
PointFloat calibratedPosition; // The position of the edge in the image in
// real-world coordinates.
double distance; // The location of the edge from the first point along the
// boundary of the input ROI.
double calibratedDistance; // The location of the edge from the first point
// along the boundary of the input ROI in
// real-world coordinates.
double magnitude; // The intensity contrast at the edge.
double
noisePeak; // The strength of the noise associated with the current edge.
int rising; // Indicates the polarity of the edge.
} EdgeInfo;
typedef struct SearchLineInfo_struct {
LineFloat lineCoordinates; // The endpoints of the search line.
EdgeReport2 edgeReport; // Describes the edges found in this search line.
} SearchLineInfo;
typedef struct RakeReport2_struct {
EdgeInfo* firstEdges; // The first edge point detected along each search line
// in the ROI.
unsigned int numFirstEdges; // The number of points in the firstEdges array.
EdgeInfo* lastEdges; // The last edge point detected along each search line
// in the ROI.
unsigned int numLastEdges; // The number of points in the lastEdges array.
SearchLineInfo* searchLines; // The search lines used for edge detection.
unsigned int
numSearchLines; // The number of search lines used in the edge detection.
} RakeReport2;
typedef struct TransformBehaviors_struct {
GroupBehavior ShiftBehavior; // Specifies the behavior of an overlay group
// when a shift operation is applied to an
// image.
GroupBehavior ScaleBehavior; // Specifies the behavior of an overlay group
// when a scale operation is applied to an
// image.
GroupBehavior RotateBehavior; // Specifies the behavior of an overlay group
// when a rotate operation is applied to an
// image.
GroupBehavior SymmetryBehavior; // Specifies the behavior of an overlay group
// when a symmetry operation is applied to an
// image.
} TransformBehaviors;
typedef struct QRCodeDataToken_struct {
QRStreamMode mode; // Specifies the stream mode or the format of the data
// that is encoded in the QR code.
unsigned int modeData; // Indicates specifiers used by the user to
// postprocess the data if it requires it.
unsigned char* data; // Shows the encoded data in the QR code.
unsigned int
dataLength; // Specifies the length of the data found in the QR code.
} QRCodeDataToken;
typedef struct ParticleFilterOptions_struct {
int rejectMatches; // Set this parameter to TRUE to transfer only those
// particles that do not meet all the criteria.
int rejectBorder; // Set this element to TRUE to reject border particles.
int connectivity8; // Set this parameter to TRUE to use connectivity-8 to
// determine whether particles are touching.
} ParticleFilterOptions;
typedef struct StraightEdgeReport2_struct {
StraightEdge* straightEdges; // Contains an array of found straight edges.
unsigned int
numStraightEdges; // Indicates the number of straight edges found.
SearchLineInfo* searchLines; // Contains an array of all search lines used in
// the detection.
unsigned int
numSearchLines; // The number of search lines used in the edge detection.
} StraightEdgeReport2;
typedef struct StraightEdgeOptions_struct {
unsigned int numLines; // Specifies the number of straight edges to find.
StraightEdgeSearchMode
searchMode; // Specifies the method used to find the straight edge.
double minScore; // Specifies the minimum score of a detected straight edge.
double maxScore; // Specifies the maximum score of a detected edge.
double orientation; // Specifies the angle at which the straight edge is
// expected to be found.
double angleRange; // Specifies the +/- range around the orientation within
// which the straight edge is expected to be found.
double angleTolerance; // Specifies the expected angular accuracy of the
// straight edge.
unsigned int stepSize; // Specifies the gap in pixels between the search
// lines used with the rake-based methods.
double minSignalToNoiseRatio; // Specifies the minimum signal to noise ratio
// (SNR) of the edge points used to fit the
// straight edge.
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.
unsigned int houghIterations; // Specifies the number of iterations used in
// the Hough-based method.
} StraightEdgeOptions;
typedef struct StraightEdge_struct {
LineFloat straightEdgeCoordinates; // End points of the detected straight
// edge in pixel coordinates.
LineFloat calibratedStraightEdgeCoordinates; // End points of the detected
// straight edge in real-world
// coordinates.
double angle; // Angle of the found edge using the pixel coordinates.
double calibratedAngle; // Angle of the found edge using the real-world
// coordinates.
double score; // Describes the score of the detected edge.
double straightness; // The straightness value of the detected straight edge.
double averageSignalToNoiseRatio; // Describes the average signal to noise
// ratio (SNR) of the detected edge.
int calibrationValid; // Indicates if the calibration data for the straight
// edge is valid.
EdgeInfo* usedEdges; // An array of edges that were used to determine this
// straight line.
unsigned int
numUsedEdges; // Indicates the number of edges in the usedEdges array.
} StraightEdge;
typedef struct QRCodeSearchOptions_struct {
QRRotationMode rotationMode; // Specifies the amount of QR code rotation the
// function should allow for.
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).
unsigned int edgeThreshold; // The strength of the weakest edge the function
// uses to find the coarse location of the QR
// code in the image.
QRDemodulationMode demodulationMode; // The demodulation mode the function
// uses to locate the QR code.
QRCellSampleSize cellSampleSize; // The cell sample size the function uses to
// locate the QR code.
QRCellFilterMode cellFilterMode; // The cell filter mode the function uses to
// locate the QR code.
unsigned int skewDegreesAllowed; // Specifies the amount of skew in the QR
// code the function should allow for.
} QRCodeSearchOptions;
typedef struct QRCodeSizeOptions_struct {
unsigned int minSize; // Specifies the minimum size (in pixels) of the QR
// code in the image.
unsigned int maxSize; // Specifies the maximum size (in pixels) of the QR
// code in the image.
} QRCodeSizeOptions;
typedef struct QRCodeDescriptionOptions_struct {
QRDimensions dimensions; // The number of rows and columns that are populated
// for the QR code, measured in cells.
QRPolarities polarity; // The polarity of the QR code.
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.
QRModelType
modelType; // This option allows you to specify the type of QR code.
} QRCodeDescriptionOptions;
typedef struct QRCodeReport_struct {
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.
unsigned char* data; // The data encoded in the QR code.
unsigned int dataLength; // The length of the data array.
PointFloat boundingBox[4]; // An array of four points describing the
// rectangle surrounding the QR code.
QRCodeDataToken* tokenizedData; // Contains the data tokenized in exactly the
// way it was encoded in the code.
unsigned int sizeOfTokenizedData; // Size of the tokenized data.
unsigned int numErrorsCorrected; // The number of errors the function
// corrected when decoding the QR code.
unsigned int dimensions; // The number of rows and columns that are populated
// for the QR code, measured in cells.
unsigned int version; // The version of the QR code.
QRModelType modelType; // This option allows you to specify what type of QR
// code this is.
QRStreamMode streamMode; // The format of the data encoded in the stream.
QRPolarities matrixPolarity; // The polarity of the QR code.
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.
unsigned int positionInAppendStream; // Indicates what position the QR code
// is in with respect to the stream of
// data in all codes.
unsigned int sizeOfAppendStream; // Specifies how many QR codes are part of a
// larger array of codes.
int firstEAN128ApplicationID; // The first EAN-128 Application ID encountered
// in the stream.
int firstECIDesignator; // The first Regional Language Designator encountered
// in the stream.
unsigned int appendStreamIdentifier; // Specifies what stream the QR code is
// in relation to when the code is part
// of a larger array of codes.
unsigned int minimumEdgeStrength; // The strength of the weakest edge the
// function used to find the coarse
// location of the QR code in the image.
QRDemodulationMode demodulationMode; // The demodulation mode the function
// used to locate the QR code.
QRCellSampleSize cellSampleSize; // The cell sample size the function used to
// locate the QR code.
QRCellFilterMode cellFilterMode; // The cell filter mode the function used to
// locate the QR code.
} QRCodeReport;
typedef struct AIMGradeReport_struct {
AIMGrade overallGrade; // The overall letter grade, which is equal to the
// lowest of the other five letter grades.
AIMGrade decodingGrade; // The letter grade assigned to a Data Matrix barcode
// based on the success of the function in decoding
// the Data Matrix barcode.
AIMGrade symbolContrastGrade; // The letter grade assigned to a Data Matrix
// barcode based on the symbol contrast raw
// score.
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.
AIMGrade printGrowthGrade; // The print growth letter grade for the Data
// Matrix barcode.
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.
AIMGrade axialNonuniformityGrade; // The axial nonuniformity grade for the
// Data Matrix barcode.
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.
AIMGrade unusedErrorCorrectionGrade; // The unused error correction letter
// grade for the Data Matrix barcode.
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.
} AIMGradeReport;
typedef struct DataMatrixSizeOptions_struct {
unsigned int minSize; // Specifies the minimum size (in pixels) of the Data
// Matrix barcode in the image.
unsigned int maxSize; // Specifies the maximum size (in pixels) of the Data
// Matrix barcode in the image.
unsigned int quietZoneWidth; // Specifies the expected minimum size of the
// quiet zone, in pixels.
} DataMatrixSizeOptions;
typedef struct DataMatrixDescriptionOptions_struct {
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).
unsigned int rows; // Specifies the number of rows in the Data Matrix
// barcode.
unsigned int
columns; // Specifies the number of columns in the Data Matrix barcode.
int rectangle; // Set this element to TRUE to specify that the Data Matrix
// barcode is rectangular.
DataMatrixECC ecc; // Specifies the ECC used for this Data Matrix barcode.
DataMatrixPolarity polarity; // Specifies the data-to-background contrast for
// the Data Matrix barcode.
DataMatrixCellFillMode cellFill; // Specifies the fill percentage for a cell
// of the Data Matrix barcode that is in the
// "ON" state.
float minBorderIntegrity; // Specifies the minimum percentage of the border
// (locator pattern and timing pattern) the
// function should expect in the Data Matrix
// barcode.
DataMatrixMirrorMode mirrorMode; // Specifies if the Data Matrix barcode
// appears normally in the image or if the
// barcode appears mirrored in the image.
} DataMatrixDescriptionOptions;
typedef struct DataMatrixSearchOptions_struct {
DataMatrixRotationMode rotationMode; // Specifies the amount of Data Matrix
// barcode rotation the function should
// allow for.
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).
unsigned int edgeThreshold; // Specifies the minimum contrast a pixel must
// have in order to be considered part of a
// matrix cell edge.
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.
DataMatrixCellSampleSize cellSampleSize; // Specifies the sample size, in
// pixels, the function should take
// to determine if each cell is on
// or off.
DataMatrixCellFilterMode cellFilterMode; // Specifies the mode the function
// uses to determine the pixel value
// for each cell.
unsigned int skewDegreesAllowed; // Specifies the amount of skew in the Data
// Matrix barcode the function should allow
// for.
unsigned int maxIterations; // Specifies the maximum number of iterations
// before the function stops looking for the Data
// Matrix barcode.
unsigned int initialSearchVectorWidth; // Specifies the number of pixels the
// function should average together to
// determine the location of an edge.
} DataMatrixSearchOptions;
typedef struct DataMatrixReport_struct {
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.
int binary; // This element is TRUE if the Data Matrix barcode contains
// binary data and FALSE if the Data Matrix barcode contains text
// data.
unsigned char* data; // The data encoded in the Data Matrix barcode.
unsigned int dataLength; // The length of the data array.
PointFloat boundingBox[4]; // An array of four points describing the
// rectangle surrounding the Data Matrix barcode.
unsigned int numErrorsCorrected; // The number of errors the function
// corrected when decoding the Data Matrix
// barcode.
unsigned int numErasuresCorrected; // The number of erasures the function
// corrected when decoding the Data Matrix
// barcode.
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).
unsigned int rows; // The number of rows in the Data Matrix barcode.
unsigned int columns; // The number of columns in the Data Matrix barcode.
DataMatrixECC
ecc; // The Error Correction Code (ECC) used by the Data Matrix barcode.
DataMatrixPolarity polarity; // The polarity of the Data Matrix barcode.
DataMatrixCellFillMode
cellFill; // The cell fill percentage of the Data Matrix barcode.
float borderIntegrity; // The percentage of the Data Matrix barcode border
// that appears correctly in the image.
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.
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.
DataMatrixDemodulationMode demodulationMode; // The demodulation mode the
// function used to locate the
// Data Matrix barcode.
DataMatrixCellSampleSize cellSampleSize; // The cell sample size the function
// used to locate the Data Matrix
// barcode.
DataMatrixCellFilterMode cellFilterMode; // The cell filter mode the function
// used to locate the Data Matrix
// barcode.
unsigned int iterations; // The number of iterations the function took in
// attempting to locate the Data Matrix barcode.
} DataMatrixReport;
typedef struct JPEG2000FileAdvancedOptions_struct {
WaveletTransformMode waveletMode; // Determines which wavelet transform to
// use when writing the file.
int useMultiComponentTransform; // Set this parameter to TRUE to use an
// additional transform on RGB images.
unsigned int maxWaveletTransformLevel; // Specifies the maximum allowed level
// of wavelet transform.
float quantizationStepSize; // Specifies the absolute base quantization step
// size for derived quantization mode.
} JPEG2000FileAdvancedOptions;
typedef struct MatchGeometricPatternAdvancedOptions2_struct {
int minFeaturesUsed; // Specifies the minimum number of features the function
// uses when matching.
int maxFeaturesUsed; // Specifies the maximum number of features the function
// uses when matching.
int subpixelIterations; // Specifies the maximum number of incremental
// improvements used to refine matches with subpixel
// information.
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.
int initialMatchListLength; // Specifies the maximum size of the match list.
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.
int correlationScore; // Set this element to TRUE to specify that the
// function should calculate the correlation score and
// return it for each match result.
double minMatchSeparationDistance; // Specifies the minimum separation
// distance, in pixels, between the
// origins of two matches that have unique
// positions.
double minMatchSeparationAngle; // Specifies the minimum angular difference,
// in degrees, between two matches that have
// unique angles.
double minMatchSeparationScale; // Specifies the minimum difference in scale,
// expressed as a percentage, between two
// matches that have unique scales.
double maxMatchOverlap; // Specifies the maximum amount of overlap, expressed
// as a percentage, allowed between the bounding
// rectangles of two unique matches.
int coarseResult; // Specifies whether you want the function to spend less
// time accurately estimating the location of a match.
int smoothContours; // Set this element to TRUE to specify smoothing be done
// on the contours of the inspection image before feature
// extraction.
int enableCalibrationSupport; // Set this element to TRUE to specify the
// algorithm treat the inspection image as a
// calibrated image.
} MatchGeometricPatternAdvancedOptions2;
typedef struct InspectionAlignment_struct {
PointFloat position; // The location of the center of the golden template in
// the image under inspection.
float rotation; // The rotation of the golden template in the image under
// inspection, in degrees.
float scale; // The percentage of the size of the area under inspection
// compared to the size of the golden template.
} InspectionAlignment;
typedef struct InspectionOptions_struct {
RegistrationMethod registrationMethod; // Specifies how the function
// registers the golden template and
// the target image.
NormalizationMethod normalizationMethod; // Specifies how the function
// normalizes the golden template to
// the target image.
int edgeThicknessToIgnore; // Specifies desired thickness of edges to be
// ignored.
float brightThreshold; // Specifies the threshold for areas where the target
// image is brighter than the golden template.
float darkThreshold; // Specifies the threshold for areas where the target
// image is darker than the golden template.
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.
} InspectionOptions;
typedef struct CharReport2_struct {
const char* character; // The character value.
PointFloat corner[4]; // An array of four points that describes the rectangle
// that surrounds the character.
int lowThreshold; // The minimum value of the threshold range used for this
// character.
int highThreshold; // The maximum value of the threshold range used for this
// character.
int classificationScore; // The degree to which the assigned character class
// represents the object better than the other
// character classes in the character set.
int verificationScore; // The similarity of the character and the reference
// character for the character class.
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.
} CharReport2;
typedef struct CharInfo2_struct {
const char* charValue; // Retrieves the character value of the corresponding
// character in the character set.
const Image* charImage; // The image you used to train this character.
const Image* internalImage; // The internal representation that NI Vision
// uses to match objects to this character.
int isReferenceChar; // This element is TRUE if the character is the
// reference character for the character class.
} CharInfo2;
typedef struct ReadTextReport2_struct {
const char* readString; // The read string.
CharReport2* characterReport; // An array of reports describing the
// properties of each identified character.
int numCharacterReports; // The number of identified characters.
} ReadTextReport2;
typedef struct EllipseFeature_struct {
PointFloat position; // The location of the center of the ellipse.
double rotation; // The orientation of the semi-major axis of the ellipse
// with respect to the horizontal.
double minorRadius; // The length of the semi-minor axis of the ellipse.
double majorRadius; // The length of the semi-major axis of the ellipse.
} EllipseFeature;
typedef struct CircleFeature_struct {
PointFloat position; // The location of the center of the circle.
double radius; // The radius of the circle.
} CircleFeature;
typedef struct ConstCurveFeature_struct {
PointFloat
position; // The center of the circle that this constant curve lies upon.
double radius; // The radius of the circle that this constant curve lies
// upon.
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.
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.
} ConstCurveFeature;
typedef struct RectangleFeature_struct {
PointFloat position; // The center of the rectangle.
PointFloat corner[4]; // The four corners of the rectangle.
double rotation; // The orientation of the rectangle with respect to the
// horizontal.
double width; // The width of the rectangle.
double height; // The height of the rectangle.
} RectangleFeature;
typedef struct LegFeature_struct {
PointFloat position; // The location of the leg feature.
PointFloat corner[4]; // The four corners of the leg feature.
double rotation; // The orientation of the leg with respect to the
// horizontal.
double width; // The width of the leg.
double height; // The height of the leg.
} LegFeature;
typedef struct CornerFeature_struct {
PointFloat position; // The location of the corner feature.
double rotation; // The angular component of the vector bisecting the corner
// from position.
double enclosedAngle; // The measure of the enclosed angle of the corner.
int isVirtual;
} CornerFeature;
typedef struct LineFeature_struct {
PointFloat startPoint; // The starting point of the line.
PointFloat endPoint; // The ending point of the line.
double length; // The length of the line measured in pixels from the start
// point to the end point.
double
rotation; // The orientation of the line with respect to the horizontal.
} LineFeature;
typedef struct ParallelLinePairFeature_struct {
PointFloat
firstStartPoint; // The starting point of the first line of the pair.
PointFloat firstEndPoint; // The ending point of the first line of the pair.
PointFloat
secondStartPoint; // The starting point of the second line of the pair.
PointFloat secondEndPoint; // The ending point of the second line of the
// pair.
double rotation; // The orientation of the feature with respect to the
// horizontal.
double distance; // The distance from the first line to the second line.
} ParallelLinePairFeature;
typedef struct PairOfParallelLinePairsFeature_struct {
ParallelLinePairFeature
firstParallelLinePair; // The first parallel line pair.
ParallelLinePairFeature
secondParallelLinePair; // The second parallel line pair.
double rotation; // The orientation of the feature with respect to the
// horizontal.
double distance; // The distance from the midline of the first parallel line
// pair to the midline of the second parallel line pair.
} PairOfParallelLinePairsFeature;
typedef union GeometricFeature_union {
CircleFeature* circle; // A pointer to a CircleFeature.
EllipseFeature* ellipse; // A pointer to an EllipseFeature.
ConstCurveFeature* constCurve; // A pointer to a ConstCurveFeature.
RectangleFeature* rectangle; // A pointer to a RectangleFeature.
LegFeature* leg; // A pointer to a LegFeature.
CornerFeature* corner; // A pointer to a CornerFeature.
ParallelLinePairFeature*
parallelLinePair; // A pointer to a ParallelLinePairFeature.
PairOfParallelLinePairsFeature*
pairOfParallelLinePairs; // A pointer to a
// PairOfParallelLinePairsFeature.
LineFeature* line; // A pointer to a LineFeature.
ClosedCurveFeature* closedCurve; // A pointer to a ClosedCurveFeature.
} GeometricFeature;
typedef struct FeatureData_struct {
FeatureType type; // An enumeration representing the type of the feature.
PointFloat*
contourPoints; // A set of points describing the contour of the feature.
int numContourPoints; // The number of points in the contourPoints array.
GeometricFeature
feature; // The feature data specific to this type of feature.
} FeatureData;
typedef struct GeometricPatternMatch2_struct {
PointFloat
position; // The location of the origin of the template in the match.
float rotation; // The rotation of the match relative to the template image,
// in degrees.
float scale; // The size of the match relative to the size of the template
// image, expressed as a percentage.
float score; // The accuracy of the match.
PointFloat corner[4]; // An array of four points describing the rectangle
// surrounding the template image.
int inverse; // This element is TRUE if the match is an inverse of the
// template image.
float occlusion; // The percentage of the match that is occluded.
float templateMatchCurveScore; // The accuracy of the match obtained by
// comparing the template curves to the curves
// in the match region.
float matchTemplateCurveScore; // The accuracy of the match obtained by
// comparing the curves in the match region to
// the template curves.
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.
String255 label; // The label corresponding to this match when the match is
// returned by imaqMatchMultipleGeometricPatterns().
FeatureData* featureData; // The features used in this match.
int numFeatureData; // The size of the featureData array.
PointFloat calibratedPosition; // The location of the origin of the template
// in the match.
float calibratedRotation; // The rotation of the match relative to the
// template image, in degrees.
PointFloat calibratedCorner[4]; // An array of four points describing the
// rectangle surrounding the template image.
} GeometricPatternMatch2;
typedef struct ClosedCurveFeature_struct {
PointFloat position; // The center of the closed curve feature.
double arcLength; // The arc length of the closed curve feature.
} ClosedCurveFeature;
typedef struct LineMatch_struct {
PointFloat startPoint; // The starting point of the matched line.
PointFloat endPoint; // The ending point of the matched line.
double length; // The length of the line measured in pixels from the start
// point to the end point.
double rotation; // The orientation of the matched line.
double score; // The score of the matched line.
} LineMatch;
typedef struct LineDescriptor_struct {
double minLength; // Specifies the minimum length of a line the function will
// return.
double maxLength; // Specifies the maximum length of a line the function will
// return.
} LineDescriptor;
typedef struct RectangleDescriptor_struct {
double minWidth; // Specifies the minimum width of a rectangle the algorithm
// will return.
double maxWidth; // Specifies the maximum width of a rectangle the algorithm
// will return.
double minHeight; // Specifies the minimum height of a rectangle the
// algorithm will return.
double maxHeight; // Specifies the maximum height of a rectangle the
// algorithm will return.
} RectangleDescriptor;
typedef struct RectangleMatch_struct {
PointFloat corner[4]; // The corners of the matched rectangle.
double rotation; // The orientation of the matched rectangle.
double width; // The width of the matched rectangle.
double height; // The height of the matched rectangle.
double score; // The score of the matched rectangle.
} RectangleMatch;
typedef struct EllipseDescriptor_struct {
double minMajorRadius; // Specifies the minimum length of the semi-major axis
// of an ellipse the function will return.
double maxMajorRadius; // Specifies the maximum length of the semi-major axis
// of an ellipse the function will return.
double minMinorRadius; // Specifies the minimum length of the semi-minor axis
// of an ellipse the function will return.
double maxMinorRadius; // Specifies the maximum length of the semi-minor axis
// of an ellipse the function will return.
} EllipseDescriptor;
typedef struct EllipseMatch_struct {
PointFloat position; // The location of the center of the matched ellipse.
double rotation; // The orientation of the matched ellipse.
double
majorRadius; // The length of the semi-major axis of the matched ellipse.
double
minorRadius; // The length of the semi-minor axis of the matched ellipse.
double score; // The score of the matched ellipse.
} EllipseMatch;
typedef struct CircleMatch_struct {
PointFloat position; // The location of the center of the matched circle.
double radius; // The radius of the matched circle.
double score; // The score of the matched circle.
} CircleMatch;
typedef struct CircleDescriptor_struct {
double minRadius; // Specifies the minimum radius of a circle the function
// will return.
double maxRadius; // Specifies the maximum radius of a circle the function
// will return.
} CircleDescriptor;
typedef struct ShapeDetectionOptions_struct {
unsigned int mode; // Specifies the method used when looking for the shape in
// the image.
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.
int numAngleRanges; // The size of the orientationRanges array.
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.
double minMatchScore;
} ShapeDetectionOptions;
typedef struct Curve_struct {
PointFloat* points; // The points on the curve.
unsigned int numPoints; // The number of points in the curve.
int closed; // This element is TRUE if the curve is closed and FALSE if the
// curve is open.
double curveLength; // The length of the curve.
double minEdgeStrength; // The lowest edge strength detected on the curve.
double maxEdgeStrength; // The highest edge strength detected on the curve.
double averageEdgeStrength; // The average of all edge strengths detected on
// the curve.
} Curve;
typedef struct CurveOptions_struct {
ExtractionMode extractionMode; // Specifies the method the function uses to
// identify curves in the image.
int threshold; // Specifies the minimum contrast a seed point must have in
// order to begin a curve.
EdgeFilterSize filterSize; // Specifies the width of the edge filter the
// function uses to identify curves in the image.
int minLength; // Specifies the length, in pixels, of the smallest curve the
// function will extract.
int rowStepSize; // Specifies the distance, in the y direction, between lines
// the function inspects for curve seed points.
int columnStepSize; // Specifies the distance, in the x direction, between
// columns the function inspects for curve seed points.
int maxEndPointGap; // Specifies the maximum gap, in pixels, between the
// endpoints of a curve that the function identifies as a
// closed curve.
int onlyClosed; // Set this element to TRUE to specify that the function
// should only identify closed curves in the image.
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.
} CurveOptions;
typedef struct Barcode2DInfo_struct {
Barcode2DType type; // The type of the 2D barcode.
int binary; // This element is TRUE if the 2D barcode contains binary data
// and FALSE if the 2D barcode contains text data.
unsigned char* data; // The data encoded in the 2D barcode.
unsigned int dataLength; // The length of the data array.
PointFloat boundingBox[4]; // An array of four points describing the
// rectangle surrounding the 2D barcode.
unsigned int numErrorsCorrected; // The number of errors the function
// corrected when decoding the 2D barcode.
unsigned int numErasuresCorrected; // The number of erasures the function
// corrected when decoding the 2D barcode.
unsigned int rows; // The number of rows in the 2D barcode.
unsigned int columns; // The number of columns in the 2D barcode.
} Barcode2DInfo;
typedef struct DataMatrixOptions_struct {
Barcode2DSearchMode searchMode; // Specifies the mode the function uses to
// search for barcodes.
Barcode2DContrast contrast; // Specifies the contrast of the barcodes that
// the function searches for.
Barcode2DCellShape cellShape; // Specifies the shape of the barcode data
// cells, which affects how the function
// decodes the barcode.
Barcode2DShape barcodeShape; // Specifies the shape of the barcodes that the
// function searches for.
DataMatrixSubtype subtype; // Specifies the Data Matrix subtypes of the
// barcodes that the function searches for.
} DataMatrixOptions;
typedef struct ClassifierAccuracyReport_struct {
int size; // The size of the arrays in this structure.
float accuracy; // The overall accuracy of the classifier, from 0 to 1000.
char** classNames; // The names of the classes of this classifier.
double* classAccuracy; // An array of size elements that contains accuracy
// information for each class.
double* classPredictiveValue; // An array containing size elements that
// contains the predictive values of each
// class.
int** classificationDistribution; // A two-dimensional array containing
// information about how the classifier
// classifies its samples.
} ClassifierAccuracyReport;
typedef struct NearestNeighborClassResult_struct {
char* className; // The name of the class.
float standardDeviation; // The standard deviation of the members of this
// class.
int count; // The number of samples in this class.
} NearestNeighborClassResult;
typedef struct NearestNeighborTrainingReport_struct {
float** classDistancesTable; // The confidence in the training.
NearestNeighborClassResult* allScores; // All classes and their scores.
int allScoresSize; // The number of entries in allScores.
} NearestNeighborTrainingReport;
typedef struct ParticleClassifierPreprocessingOptions_struct {
int manualThreshold; // Set this element to TRUE to specify the threshold
// range manually.
RangeFloat manualThresholdRange; // If a manual threshold is being done, the
// range of pixels to keep.
ThresholdMethod autoThresholdMethod; // If an automatic threshold is being
// done, the method used to calculate
// the threshold range.
RangeFloat limits; // The limits on the automatic threshold range.
ParticleType particleType; // Specifies what kind of particles to look for.
int rejectBorder; // Set this element to TRUE to reject border particles.
int numErosions; // The number of erosions to perform.
} ParticleClassifierPreprocessingOptions;
typedef struct ClassifierSampleInfo_struct {
char* className; // The name of the class this sample is in.
double* featureVector; // The feature vector of this sample, or NULL if this
// is not a custom classifier session.
int featureVectorSize; // The number of elements in the feature vector.
Image* thumbnail; // A thumbnail image of this sample, or NULL if no image
// was specified.
} ClassifierSampleInfo;
typedef struct ClassScore_struct {
char* className; // The name of the class.
float distance; // The distance from the item to this class.
} ClassScore;
typedef struct ClassifierReport_struct {
char* bestClassName; // The name of the best class for the sample.
float classificationScore; // The similarity of the sample and the two
// closest classes in the classifier.
float identificationScore; // The similarity of the sample and the assigned
// class.
ClassScore* allScores; // All classes and their scores.
int allScoresSize; // The number of entries in allScores.
} ClassifierReport;
typedef struct NearestNeighborOptions_struct {
NearestNeighborMethod method; // The method to use.
NearestNeighborMetric metric; // The metric to use.
int k; // The value of k, if the IMAQ_K_NEAREST_NEIGHBOR method is used.
} NearestNeighborOptions;
typedef struct ParticleClassifierOptions_struct {
float scaleDependence; // The relative importance of scale when classifying
// particles.
float mirrorDependence; // The relative importance of mirror symmetry when
// classifying particles.
} ParticleClassifierOptions;
typedef struct RGBU64Value_struct {
unsigned short B; // The blue value of the color.
unsigned short G; // The green value of the color.
unsigned short R; // The red value of the color.
unsigned short alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} RGBU64Value;
typedef struct GeometricPatternMatch_struct {
PointFloat
position; // The location of the origin of the template in the match.
float rotation; // The rotation of the match relative to the template image,
// in degrees.
float scale; // The size of the match relative to the size of the template
// image, expressed as a percentage.
float score; // The accuracy of the match.
PointFloat corner[4]; // An array of four points describing the rectangle
// surrounding the template image.
int inverse; // This element is TRUE if the match is an inverse of the
// template image.
float occlusion; // The percentage of the match that is occluded.
float templateMatchCurveScore; // The accuracy of the match obtained by
// comparing the template curves to the curves
// in the match region.
float matchTemplateCurveScore; // The accuracy of the match obtained by
// comparing the curves in the match region to
// the template curves.
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.
} GeometricPatternMatch;
typedef struct MatchGeometricPatternAdvancedOptions_struct {
int minFeaturesUsed; // Specifies the minimum number of features the function
// uses when matching.
int maxFeaturesUsed; // Specifies the maximum number of features the function
// uses when matching.
int subpixelIterations; // Specifies the maximum number of incremental
// improvements used to refine matches with subpixel
// information.
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.
int initialMatchListLength; // Specifies the maximum size of the match list.
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.
int correlationScore; // Set this element to TRUE to specify that the
// function should calculate the correlation score and
// return it for each match result.
double minMatchSeparationDistance; // Specifies the minimum separation
// distance, in pixels, between the
// origins of two matches that have unique
// positions.
double minMatchSeparationAngle; // Specifies the minimum angular difference,
// in degrees, between two matches that have
// unique angles.
double minMatchSeparationScale; // Specifies the minimum difference in scale,
// expressed as a percentage, between two
// matches that have unique scales.
double maxMatchOverlap; // Specifies the maximum amount of overlap, expressed
// as a percentage, allowed between the bounding
// rectangles of two unique matches.
int coarseResult; // Specifies whether you want the function to spend less
// time accurately estimating the location of a match.
} MatchGeometricPatternAdvancedOptions;
typedef struct MatchGeometricPatternOptions_struct {
unsigned int mode; // Specifies the method imaqMatchGeometricPattern() uses
// when looking for the pattern in the image.
int subpixelAccuracy; // Set this element to TRUE to specify that the
// function should calculate match locations with
// subpixel accuracy.
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.
int numAngleRanges; // Number of angle ranges in the angleRanges array.
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.
RangeFloat occlusionRange; // A range that specifies the percentage of the
// pattern you expect to be occluded in the image.
int numMatchesRequested; // Number of valid matches expected.
float minMatchScore; // The minimum score a match can have for the function
// to consider the match valid.
} MatchGeometricPatternOptions;
typedef struct LearnGeometricPatternAdvancedOptions_struct {
int minRectLength; // Specifies the minimum length for each side of a
// rectangular feature.
double minRectAspectRatio; // Specifies the minimum aspect ratio of a
// rectangular feature.
int minRadius; // Specifies the minimum radius for a circular feature.
int minLineLength; // Specifies the minimum length for a linear feature.
double minFeatureStrength; // Specifies the minimum strength for a feature.
int maxFeaturesUsed; // Specifies the maximum number of features the function
// uses when learning.
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.
} LearnGeometricPatternAdvancedOptions;
typedef struct FitEllipseOptions_struct {
int rejectOutliers; // Whether to use every given point or only a subset of
// the points to fit the ellipse.
double minScore; // Specifies the required quality of the fitted ellipse.
double pixelRadius; // The acceptable distance, in pixels, that a point
// determined to belong to the ellipse can be from the
// circumference of the ellipse.
int maxIterations; // Specifies the number of refinement iterations you allow
// the function to perform on the initial subset of
// points.
} FitEllipseOptions;
typedef struct FitCircleOptions_struct {
int rejectOutliers; // Whether to use every given point or only a subset of
// the points to fit the circle.
double minScore; // Specifies the required quality of the fitted circle.
double pixelRadius; // The acceptable distance, in pixels, that a point
// determined to belong to the circle can be from the
// circumference of the circle.
int maxIterations; // Specifies the number of refinement iterations you allow
// the function to perform on the initial subset of
// points.
} FitCircleOptions;
typedef struct ConstructROIOptions2_struct {
int windowNumber; // The window number of the image window.
const char* windowTitle; // Specifies the message string that the function
// displays in the title bar of the window.
PaletteType type; // The palette type to use.
RGBValue* palette; // If type is IMAQ_PALETTE_USER, this array is the palette
// of colors to use with the window.
int numColors; // If type is IMAQ_PALETTE_USER, this element is the number of
// colors in the palette array.
unsigned int maxContours; // The maximum number of contours the user will be
// able to select.
} ConstructROIOptions2;
typedef struct HSLValue_struct {
unsigned char L; // The color luminance.
unsigned char S; // The color saturation.
unsigned char H; // The color hue.
unsigned char alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} HSLValue;
typedef struct HSVValue_struct {
unsigned char V; // The color value.
unsigned char S; // The color saturation.
unsigned char H; // The color hue.
unsigned char alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} HSVValue;
typedef struct HSIValue_struct {
unsigned char I; // The color intensity.
unsigned char S; // The color saturation.
unsigned char H; // The color hue.
unsigned char alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} HSIValue;
typedef struct CIELabValue_struct {
double b; // The yellow/blue information of the color.
double a; // The red/green information of the color.
double L; // The color lightness.
unsigned char alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} CIELabValue;
typedef struct CIEXYZValue_struct {
double Z; // The Z color information.
double Y; // The color luminance.
double X; // The X color information.
unsigned char alpha; // The alpha value of the color, which represents extra
// information about a color image, such as gamma
// correction.
} CIEXYZValue;
typedef union Color2_union {
RGBValue rgb; // The information needed to describe a color in the RGB (Red,
// Green, and Blue) color space.
HSLValue hsl; // The information needed to describe a color in the HSL (Hue,
// Saturation, and Luminance) color space.
HSVValue hsv; // The information needed to describe a color in the HSI (Hue,
// Saturation, and Value) color space.
HSIValue hsi; // The information needed to describe a color in the HSI (Hue,
// Saturation, and Intensity) color space.
CIELabValue cieLab; // The information needed to describe a color in the CIE
// L*a*b* (L, a, b) color space.
CIEXYZValue cieXYZ; // The information needed to describe a color in the CIE
// XYZ (X, Y, Z) color space.
int rawValue; // The integer value for the data in the color union.
} Color2;
typedef struct BestEllipse2_struct {
PointFloat center; // The coordinate location of the center of the ellipse.
PointFloat majorAxisStart; // The coordinate location of the start of the
// major axis of the ellipse.
PointFloat majorAxisEnd; // The coordinate location of the end of the major
// axis of the ellipse.
PointFloat minorAxisStart; // The coordinate location of the start of the
// minor axis of the ellipse.
PointFloat minorAxisEnd; // The coordinate location of the end of the minor
// axis of the ellipse.
double area; // The area of the ellipse.
double perimeter; // The length of the perimeter of the ellipse.
double error; // Represents the least square error of the fitted ellipse to
// the entire set of points.
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.
int* pointsUsed; // An array of the indexes for the points array indicating
// which points the function used to fit the ellipse.
int numPointsUsed; // The number of points the function used to fit the
// ellipse.
} BestEllipse2;
typedef struct LearnPatternAdvancedOptions_struct {
LearnPatternAdvancedShiftOptions* shiftOptions; // Use this element to
// control the behavior of
// imaqLearnPattern2() during
// the shift-invariant
// learning phase.
LearnPatternAdvancedRotationOptions*
rotationOptions; // Use this element to control the behavior of
// imaqLearnPattern2()during the rotation-invariant
// learning phase.
} LearnPatternAdvancedOptions;
typedef struct AVIInfo_struct {
unsigned int width; // The width of each frame.
unsigned int height; // The height of each frame.
ImageType imageType; // The type of images this AVI contains.
unsigned int numFrames; // The number of frames in the AVI.
unsigned int framesPerSecond; // The number of frames per second this AVI
// should be shown at.
char* filterName; // The name of the compression filter used to create this
// AVI.
int hasData; // Specifies whether this AVI has data attached to each frame or
// not.
unsigned int maxDataSize; // If this AVI has data, the maximum size of the
// data in each frame.
} AVIInfo;
typedef struct LearnPatternAdvancedShiftOptions_struct {
int initialStepSize; // The largest number of image pixels to shift the
// sample across the inspection image during the initial
// phase of shift-invariant matching.
int initialSampleSize; // Specifies the number of template pixels that you
// want to include in a sample for the initial phase
// of shift-invariant matching.
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.
int finalSampleSize; // Specifies the number of template pixels you want to
// add to initialSampleSize for the final phase of
// shift-invariant matching.
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.
int subpixelSampleSize; // Specifies the number of template pixels that you
// want to include in a sample for the subpixel phase
// of shift-invariant matching.
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.
} LearnPatternAdvancedShiftOptions;
typedef struct LearnPatternAdvancedRotationOptions_struct {
SearchStrategy searchStrategySupport; // Specifies the aggressiveness of the
// rotation search strategy available
// during the matching phase.
int initialStepSize; // The largest number of image pixels to shift the
// sample across the inspection image during the initial
// phase of matching.
int initialSampleSize; // Specifies the number of template pixels that you
// want to include in a sample for the initial phase
// of rotation-invariant matching.
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.
int initialAngularAccuracy; // Sets the angle accuracy, in degrees, to use
// during the initial phase of rotation-invariant
// matching.
int finalSampleSize; // Specifies the number of template pixels you want to
// add to initialSampleSize for the final phase of
// rotation-invariant matching.
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.
int finalAngularAccuracy; // Sets the angle accuracy, in degrees, to use
// during the final phase of the rotation-invariant
// matching.
int subpixelSampleSize; // Specifies the number of template pixels that you
// want to include in a sample for the subpixel phase
// of rotation-invariant matching.
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.
} LearnPatternAdvancedRotationOptions;
typedef struct MatchPatternAdvancedOptions_struct {
int subpixelIterations; // Defines the maximum number of incremental
// improvements used to refine matching using
// subpixel information.
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.
int initialMatchListLength; // Specifies the maximum size of the match list.
int matchListReductionFactor; // Specifies the reduction of the match list as
// matches are refined.
int initialStepSize; // Specifies the number of pixels to shift the sample
// across the inspection image during the initial phase
// of shift-invariant matching.
SearchStrategy searchStrategy; // Specifies the aggressiveness of the
// rotation search strategy.
int intermediateAngularAccuracy; // Specifies the accuracy to use during the
// intermediate phase of rotation-invariant
// matching.
} MatchPatternAdvancedOptions;
typedef struct ParticleFilterCriteria2_struct {
MeasurementType parameter; // The morphological measurement that the function
// uses for filtering.
float lower; // The lower bound of the criteria range.
float upper; // The upper bound of the criteria range.
int calibrated; // Set this element to TRUE to take calibrated measurements.
int exclude; // Set this element to TRUE to indicate that a match occurs when
// the measurement is outside the criteria range.
} ParticleFilterCriteria2;
typedef struct BestCircle2_struct {
PointFloat center; // The coordinate location of the center of the circle.
double radius; // The radius of the circle.
double area; // The area of the circle.
double perimeter; // The length of the perimeter of the circle.
double error; // Represents the least square error of the fitted circle to
// the entire set of points.
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.
int* pointsUsed; // An array of the indexes for the points array indicating
// which points the function used to fit the circle.
int numPointsUsed; // The number of points the function used to fit the
// circle.
} BestCircle2;
typedef struct OCRSpacingOptions_struct {
int minCharSpacing; // The minimum number of pixels that must be between two
// characters for NI Vision to train or read the
// characters separately.
int minCharSize; // The minimum number of pixels required for an object to be
// a potentially identifiable character.
int maxCharSize; // The maximum number of pixels required for an object to be
// a potentially identifiable character.
int maxHorizontalElementSpacing; // The maximum horizontal spacing, in
// pixels, allowed between character
// elements to train or read the character
// elements as a single character.
int maxVerticalElementSpacing; // The maximum vertical element spacing in
// pixels.
int minBoundingRectWidth; // The minimum possible width, in pixels, for a
// character bounding rectangle.
int maxBoundingRectWidth; // The maximum possible width, in pixels, for a
// character bounding rectangle.
int minBoundingRectHeight; // The minimum possible height, in pixels, for a
// character bounding rectangle.
int maxBoundingRectHeight; // The maximum possible height, in pixels, for a
// character bounding rectangle.
int autoSplit; // Set this element to TRUE to automatically adjust the
// location of the character bounding rectangle when
// characters overlap vertically.
} OCRSpacingOptions;
typedef struct OCRProcessingOptions_struct {
ThresholdMode mode; // The thresholding mode.
int lowThreshold; // The low threshold value when you set mode to
// IMAQ_FIXED_RANGE.
int highThreshold; // The high threshold value when you set mode to
// IMAQ_FIXED_RANGE.
int blockCount; // The number of blocks for threshold calculation algorithms
// that require blocks.
int fastThreshold; // Set this element to TRUE to use a faster, less accurate
// threshold calculation algorithm.
int biModalCalculation; // Set this element to TRUE to calculate both the low
// and high threshold values when using the fast
// thresholding method.
int darkCharacters; // Set this element to TRUE to read or train dark
// characters on a light background.
int removeParticlesTouchingROI; // Set this element to TRUE to remove the
// particles touching the ROI.
int erosionCount; // The number of erosions to perform.
} OCRProcessingOptions;
typedef struct ReadTextOptions_struct {
String255 validChars[255]; // An array of strings that specifies the valid
// characters.
int numValidChars; // The number of strings in the validChars array that you
// have initialized.
char substitutionChar; // The character to substitute for objects that the
// function cannot match with any of the trained
// characters.
ReadStrategy readStrategy; // The read strategy, which determines how closely
// the function analyzes images in the reading
// process to match objects with trained
// characters.
int acceptanceLevel; // The minimum acceptance level at which an object is
// considered a trained character.
int aspectRatio; // The maximum aspect ratio variance percentage for valid
// characters.
ReadResolution readResolution; // The read resolution, which determines how
// much of the trained character data the
// function uses to match objects to trained
// characters.
} ReadTextOptions;
typedef struct CharInfo_struct {
const char* charValue; // Retrieves the character value of the corresponding
// character in the character set.
const Image* charImage; // The image you used to train this character.
const Image* internalImage; // The internal representation that NI Vision
// uses to match objects to this character.
} CharInfo;
#if !defined(USERINT_HEADER) && !defined(_CVI_RECT_DEFINED)
typedef struct Rect_struct {
int top; // Location of the top edge of the rectangle.
int left; // Location of the left edge of the rectangle.
int height; // Height of the rectangle.
int width; // Width of the rectangle.
} Rect;
#define _CVI_RECT_DEFINED
#endif
typedef struct CharReport_struct {
const char* character; // The character value.
PointFloat corner[4]; // An array of four points that describes the rectangle
// that surrounds the character.
int reserved; // This element is reserved.
int lowThreshold; // The minimum value of the threshold range used for this
// character.
int highThreshold; // The maximum value of the threshold range used for this
// character.
} CharReport;
typedef struct ReadTextReport_struct {
const char* readString; // The read string.
const CharReport* characterReport; // An array of reports describing the
// properties of each identified
// character.
int numCharacterReports; // The number of identified characters.
} ReadTextReport;
#if !defined(USERINT_HEADER) && !defined(_CVI_POINT_DEFINED)
typedef struct Point_struct {
int x; // The x-coordinate of the point.
int y; // The y-coordinate of the point.
} Point;
#define _CVI_POINT_DEFINED
#endif
typedef struct Annulus_struct {
Point center; // The coordinate location of the center of the annulus.
int innerRadius; // The internal radius of the annulus.
int outerRadius; // The external radius of the annulus.
double startAngle; // The start angle, in degrees, of the annulus.
double endAngle; // The end angle, in degrees, of the annulus.
} Annulus;
typedef struct EdgeLocationReport_struct {
PointFloat* edges; // The coordinate location of all edges detected by the
// search line.
int numEdges; // The number of points in the edges array.
} EdgeLocationReport;
typedef struct EdgeOptions_struct {
unsigned
threshold; // Specifies the threshold value for the contrast of the edge.
unsigned width; // The number of pixels that the function averages to find
// the contrast at either side of the edge.
unsigned steepness; // The span, in pixels, of the slope of the edge
// projected along the path specified by the input
// points.
InterpolationMethod subpixelType; // The method for interpolating.
unsigned subpixelDivisions; // The number of samples the function obtains
// from a pixel.
} EdgeOptions;
typedef struct EdgeReport_struct {
float location; // The location of the edge from the first point in the
// points array.
float contrast; // The contrast at the edge.
PolarityType polarity; // The polarity of the edge.
float reserved; // This element is reserved.
PointFloat coordinate; // The coordinates of the edge.
} EdgeReport;
typedef struct ExtremeReport_struct {
double location; // The locations of the extreme.
double amplitude; // The amplitude of the extreme.
double secondDerivative; // The second derivative of the extreme.
} ExtremeReport;
typedef struct FitLineOptions_struct {
float minScore; // Specifies the required quality of the fitted line.
float pixelRadius; // Specifies the neighborhood pixel relationship for the
// initial subset of points being used.
int numRefinements; // Specifies the number of refinement iterations you
// allow the function to perform on the initial subset of
// points.
} FitLineOptions;
typedef struct DisplayMapping_struct {
MappingMethod method; // Describes the method for converting 16-bit pixels to
// 8-bit pixels.
int minimumValue; // When method is IMAQ_RANGE, minimumValue represents the
// value that is mapped to 0.
int maximumValue; // When method is IMAQ_RANGE, maximumValue represents the
// value that is mapped to 255.
int shiftCount; // When method is IMAQ_DOWNSHIFT, shiftCount represents the
// number of bits the function right-shifts the 16-bit pixel
// values.
} DisplayMapping;
typedef struct DetectExtremesOptions_struct {
double threshold; // Defines which extremes are too small.
int width; // Specifies the number of consecutive data points the function
// uses in the quadratic least-squares fit.
} DetectExtremesOptions;
typedef struct ImageInfo_struct {
CalibrationUnit imageUnit; // If you set calibration information with
// imaqSetSimpleCalibrationInfo(), imageUnit is
// the calibration unit.
float stepX; // If you set calibration information with
// imaqSetCalibrationInfo(), stepX is the distance in the
// calibration unit between two pixels in the x direction.
float stepY; // If you set calibration information with
// imaqSetCalibrationInfo(), stepY is the distance in the
// calibration unit between two pixels in the y direction.
ImageType imageType; // The type of the image.
int xRes; // The number of columns in the image.
int yRes; // The number of rows in the image.
int xOffset; // If you set mask offset information with imaqSetMaskOffset(),
// xOffset is the offset of the mask origin in the x direction.
int yOffset; // If you set mask offset information with imaqSetMaskOffset(),
// yOffset is the offset of the mask origin in the y direction.
int border; // The number of border pixels around the image.
int pixelsPerLine; // The number of pixels stored for each line of the image.
void* reserved0; // This element is reserved.
void* reserved1; // This element is reserved.
void* imageStart; // A pointer to pixel (0,0).
} ImageInfo;
typedef struct LCDOptions_struct {
int litSegments; // Set this parameter to TRUE if the segments are brighter
// than the background.
float threshold; // Determines whether a segment is ON or OFF.
int sign; // Indicates whether the function must read the sign of the
// indicator.
int decimalPoint; // Determines whether to look for a decimal separator after
// each digit.
} LCDOptions;
typedef struct LCDReport_struct {
const char* text; // A string of the characters of the LCD.
LCDSegments* segmentInfo; // An array of LCDSegment structures describing
// which segments of each digit are on.
int numCharacters; // The number of characters that the function reads.
int reserved; // This element is reserved.
} LCDReport;
typedef struct LCDSegments_struct {
unsigned a : 1; // True if the a segment is on.
unsigned b : 1; // True if the b segment is on.
unsigned c : 1; // True if the c segment is on.
unsigned d : 1; // True if the d segment is on.
unsigned e : 1; // True if the e segment is on.
unsigned f : 1; // True if the f segment is on.
unsigned g : 1; // True if the g segment is on.
unsigned reserved : 25; // This element is reserved.
} LCDSegments;
typedef struct LearnCalibrationOptions_struct {
CalibrationMode mode; // Specifies the type of algorithm you want to use to
// reduce distortion in your image.
ScalingMethod method; // Defines the scaling method correction functions use
// to correct the image.
CalibrationROI roi; // Specifies the ROI correction functions use when
// correcting an image.
int learnMap; // Set this element to TRUE if you want the function to
// calculate and store an error map during the learning
// process.
int learnTable; // Set this element to TRUE if you want the function to
// calculate and store the correction table.
} LearnCalibrationOptions;
typedef struct LearnColorPatternOptions_struct {
LearningMode learnMode; // Specifies the invariance mode the function uses
// when learning the pattern.
ImageFeatureMode featureMode; // Specifies the features the function uses
// when learning the color pattern.
int threshold; // Specifies the saturation threshold the function uses to
// distinguish between two colors that have the same hue
// values.
ColorIgnoreMode ignoreMode; // Specifies whether the function excludes
// certain colors from the color features of the
// template image.
ColorInformation* colorsToIgnore; // An array of ColorInformation structures
// providing a set of colors to exclude
// from the color features of the template
// image.
int numColorsToIgnore; // The number of ColorInformation structures in the
// colorsToIgnore array.
} LearnColorPatternOptions;
typedef struct Line_struct {
Point start; // The coordinate location of the start of the line.
Point end; // The coordinate location of the end of the line.
} Line;
typedef struct LinearAverages_struct {
float* columnAverages; // An array containing the mean pixel value of each
// column.
int columnCount; // The number of elements in the columnAverages array.
float* rowAverages; // An array containing the mean pixel value of each row.
int rowCount; // The number of elements in the rowAverages array.
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.
int risingDiagCount; // The number of elements in the risingDiagAverages
// array.
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.
int fallingDiagCount; // The number of elements in the fallingDiagAverages
// array.
} LinearAverages;
typedef struct LineProfile_struct {
float*
profileData; // An array containing the value of each pixel in the line.
Rect boundingBox; // The bounding rectangle of the line.
float min; // The smallest pixel value in the line profile.
float max; // The largest pixel value in the line profile.
float mean; // The mean value of the pixels in the line profile.
float stdDev; // The standard deviation of the line profile.
int dataCount; // The size of the profileData array.
} LineProfile;
typedef struct MatchColorPatternOptions_struct {
MatchingMode matchMode; // Specifies the method to use when looking for the
// color pattern in the image.
ImageFeatureMode featureMode; // Specifies the features to use when looking
// for the color pattern in the image.
int minContrast; // Specifies the minimum contrast expected in the image.
int subpixelAccuracy; // Set this parameter to TRUE to return areas in the
// image that match the pattern area with subpixel
// accuracy.
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.
int numRanges; // Number of angle ranges in the angleRanges array.
double colorWeight; // Determines the percent contribution of the color score
// to the final color pattern matching score.
ColorSensitivity sensitivity; // Specifies the sensitivity of the color
// information in the image.
SearchStrategy strategy; // Specifies how the color features of the image are
// used during the search phase.
int numMatchesRequested; // Number of valid matches expected.
float minMatchScore; // The minimum score a match can have for the function
// to consider the match valid.
} MatchColorPatternOptions;
typedef struct HistogramReport_struct {
int* histogram; // An array describing the number of pixels that fell into
// each class.
int histogramCount; // The number of elements in the histogram array.
float min; // The smallest pixel value that the function classified.
float max; // The largest pixel value that the function classified.
float start; // The smallest pixel value that fell into the first class.
float width; // The size of each class.
float mean; // The mean value of the pixels that the function classified.
float stdDev; // The standard deviation of the pixels that the function
// classified.
int numPixels; // The number of pixels that the function classified.
} HistogramReport;
typedef struct ArcInfo_struct {
Rect boundingBox; // The coordinate location of the bounding box of the arc.
double startAngle; // The counterclockwise angle from the x-axis in degrees
// to the start of the arc.
double endAngle; // The counterclockwise angle from the x-axis in degrees to
// the end of the arc.
} ArcInfo;
typedef struct AxisReport_struct {
PointFloat origin; // The origin of the coordinate system, which is the
// intersection of the two axes of the coordinate system.
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.
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.
} AxisReport;
typedef struct BarcodeInfo_struct {
const char* outputString; // A string containing the decoded barcode data.
int size; // The size of the output string.
char outputChar1; // The contents of this character depend on the barcode
// type.
char outputChar2; // The contents of this character depend on the barcode
// type.
double confidenceLevel; // A quality measure of the decoded barcode ranging
// from 0 to 100, with 100 being the best.
BarcodeType type; // The type of barcode.
} BarcodeInfo;
typedef struct BCGOptions_struct {
float brightness; // Adjusts the brightness of the image.
float contrast; // Adjusts the contrast of the image.
float gamma; // Performs gamma correction.
} BCGOptions;
typedef struct BestCircle_struct {
PointFloat center; // The coordinate location of the center of the circle.
double radius; // The radius of the circle.
double area; // The area of the circle.
double perimeter; // The length of the perimeter of the circle.
double error; // Represents the least square error of the fitted circle to
// the entire set of points.
} BestCircle;
typedef struct BestEllipse_struct {
PointFloat center; // The coordinate location of the center of the ellipse.
PointFloat majorAxisStart; // The coordinate location of the start of the
// major axis of the ellipse.
PointFloat majorAxisEnd; // The coordinate location of the end of the major
// axis of the ellipse.
PointFloat minorAxisStart; // The coordinate location of the start of the
// minor axis of the ellipse.
PointFloat minorAxisEnd; // The coordinate location of the end of the minor
// axis of the ellipse.
double area; // The area of the ellipse.
double perimeter; // The length of the perimeter of the ellipse.
} BestEllipse;
typedef struct BestLine_struct {
PointFloat start; // The coordinate location of the start of the line.
PointFloat end; // The coordinate location of the end of the line.
LineEquation equation; // Defines the three coefficients of the equation of
// the best fit line.
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.
double error; // Represents the least square error of the fitted line to the
// entire set of points.
int* pointsUsed; // An array of the indexes for the points array indicating
// which points the function used to fit the line.
int numPointsUsed; // The number of points the function used to fit the line.
} BestLine;
typedef struct BrowserOptions_struct {
int width; // The width to make the browser.
int height; // The height to make the browser image.
int imagesPerLine; // The number of images to place on a single line.
RGBValue backgroundColor; // The background color of the browser.
int frameSize; // Specifies the number of pixels with which to border each
// thumbnail.
BrowserFrameStyle style; // The style for the frame around each thumbnail.
float ratio; // Specifies the width to height ratio of each thumbnail.
RGBValue focusColor; // The color to use to display focused cells.
} BrowserOptions;
typedef struct CoordinateSystem_struct {
PointFloat origin; // The origin of the coordinate system.
float angle; // The angle, in degrees, of the x-axis of the coordinate system
// relative to the image x-axis.
AxisOrientation axisOrientation; // The direction of the y-axis of the
// coordinate reference system.
} CoordinateSystem;
typedef struct CalibrationInfo_struct {
float* errorMap; // The error map for the calibration.
int mapColumns; // The number of columns in the error map.
int mapRows; // The number of rows in the error map.
ROI* userRoi; // Specifies the ROI the user provided when learning the
// calibration.
ROI* calibrationRoi; // Specifies the ROI that corresponds to the region of
// the image where the calibration information is
// accurate.
LearnCalibrationOptions options; // Specifies the calibration options the
// user provided when learning the
// calibration.
GridDescriptor grid; // Specifies the scaling constants for the image.
CoordinateSystem system; // Specifies the coordinate system for the real
// world coordinates.
RangeFloat range; // The range of the grayscale the function used to
// represent the circles in the grid image.
float quality; // The quality score of the learning process, which is a value
// between 0-1000.
} CalibrationInfo;
typedef struct CalibrationPoints_struct {
PointFloat* pixelCoordinates; // The array of pixel coordinates.
PointFloat* realWorldCoordinates; // The array of corresponding real-world
// coordinates.
int numCoordinates; // The number of coordinates in both of the arrays.
} CalibrationPoints;
typedef struct CaliperOptions_struct {
TwoEdgePolarityType
polarity; // Specifies the edge polarity of the edge pairs.
float separation; // The distance between edge pairs.
float separationDeviation; // Sets the range around the separation value.
} CaliperOptions;
typedef struct CaliperReport_struct {
float edge1Contrast; // The contrast of the first edge.
PointFloat edge1Coord; // The coordinates of the first edge.
float edge2Contrast; // The contrast of the second edge.
PointFloat edge2Coord; // The coordinates of the second edge.
float separation; // The distance between the two edges.
float reserved; // This element is reserved.
} CaliperReport;
typedef struct DrawTextOptions_struct {
char fontName[32]; // The font name to use.
int fontSize; // The size of the font.
int bold; // Set this parameter to TRUE to bold text.
int italic; // Set this parameter to TRUE to italicize text.
int underline; // Set this parameter to TRUE to underline text.
int strikeout; // Set this parameter to TRUE to strikeout text.
TextAlignment textAlignment; // Sets the alignment of text.
FontColor fontColor; // Sets the font color.
} DrawTextOptions;
typedef struct CircleReport_struct {
Point center; // The coordinate point of the center of the circle.
int radius; // The radius of the circle, in pixels.
int area; // The area of the circle, in pixels.
} CircleReport;
typedef struct ClosedContour_struct {
Point* points; // The points that make up the closed contour.
int numPoints; // The number of points in the array.
} ClosedContour;
typedef struct ColorHistogramReport_struct {
HistogramReport plane1; // The histogram report of the first color plane.
HistogramReport plane2; // The histogram report of the second plane.
HistogramReport plane3; // The histogram report of the third plane.
} ColorHistogramReport;
typedef struct ColorInformation_struct {
int infoCount; // The size of the info array.
int saturation; // The saturation level the function uses to learn the color
// information.
double* info; // An array of color information that represents the color
// spectrum analysis of a region of an image in a compact form.
} ColorInformation;
typedef struct Complex_struct {
float r; // The real part of the value.
float i; // The imaginary part of the value.
} Complex;
typedef struct ConcentricRakeReport_struct {
ArcInfo* rakeArcs; // An array containing the location of each concentric arc
// line used for edge detection.
int numArcs; // The number of arc lines in the rakeArcs array.
PointFloat* firstEdges; // The coordinate location of all edges detected as
// first edges.
int numFirstEdges; // The number of points in the first edges array.
PointFloat* lastEdges; // The coordinate location of all edges detected as
// last edges.
int numLastEdges; // The number of points in the last edges array.
EdgeLocationReport* allEdges; // An array of reports describing the location
// of the edges located by each concentric rake
// arc line.
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.
int numLinesWithEdges; // The number of concentric rake arc lines along which
// the function detected edges.
} ConcentricRakeReport;
typedef struct ConstructROIOptions_struct {
int windowNumber; // The window number of the image window.
const char* windowTitle; // Specifies the message string that the function
// displays in the title bar of the window.
PaletteType type; // The palette type to use.
RGBValue* palette; // If type is IMAQ_PALETTE_USER, this array is the palette
// of colors to use with the window.
int numColors; // If type is IMAQ_PALETTE_USER, this element is the number of
// colors in the palette array.
} ConstructROIOptions;
typedef struct ContourInfo_struct {
ContourType type; // The contour type.
unsigned numPoints; // The number of points that make up the contour.
Point* points; // The points describing the contour.
RGBValue contourColor; // The contour color.
} ContourInfo;
typedef union ContourUnion_union {
Point* point; // Use this member when the contour is of type IMAQ_POINT.
Line* line; // Use this member when the contour is of type IMAQ_LINE.
Rect* rect; // Use this member when the contour is of type IMAQ_RECT.
Rect* ovalBoundingBox; // Use this member when the contour is of type
// IMAQ_OVAL.
ClosedContour* closedContour; // Use this member when the contour is of type
// IMAQ_CLOSED_CONTOUR.
OpenContour* openContour; // Use this member when the contour is of type
// IMAQ_OPEN_CONTOUR.
Annulus* annulus; // Use this member when the contour is of type
// IMAQ_ANNULUS.
RotatedRect* rotatedRect; // Use this member when the contour is of type
// IMAQ_ROTATED_RECT.
} ContourUnion;
typedef struct ContourInfo2_struct {
ContourType type; // The contour type.
RGBValue color; // The contour color.
ContourUnion structure; // The information necessary to describe the contour
// in coordinate space.
} ContourInfo2;
typedef struct ContourPoint_struct {
double x; // The x-coordinate value in the image.
double y; // The y-coordinate value in the image.
double curvature; // The change in slope at this edge point of the segment.
double xDisplacement; // The x displacement of the current edge pixel from a
// cubic spline fit of the current edge segment.
double yDisplacement; // The y displacement of the current edge pixel from a
// cubic spline fit of the current edge segment.
} ContourPoint;
typedef struct CoordinateTransform_struct {
Point initialOrigin; // The origin of the initial coordinate system.
float initialAngle; // The angle, in degrees, of the x-axis of the initial
// coordinate system relative to the image x-axis.
Point finalOrigin; // The origin of the final coordinate system.
float finalAngle; // The angle, in degrees, of the x-axis of the final
// coordinate system relative to the image x-axis.
} CoordinateTransform;
typedef struct CoordinateTransform2_struct {
CoordinateSystem
referenceSystem; // Defines the coordinate system for input coordinates.
CoordinateSystem measurementSystem; // Defines the coordinate system in which
// the function should perform
// measurements.
} CoordinateTransform2;
typedef struct CannyOptions_struct {
float sigma; // The sigma of the Gaussian smoothing filter that the function
// applies to the image before edge detection.
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.
float lowerThreshold; // The function multiplies this value by upperThreshold
// to determine the lower threshold for all the pixels
// in an edge segment.
int windowSize; // The window size of the Gaussian filter that the function
// applies to the image.
} CannyOptions;
typedef struct Range_struct {
int minValue; // The minimum value of the range.
int maxValue; // The maximum value of the range.
} Range;
typedef struct UserPointSymbol_struct {
int cols; // Number of columns in the symbol.
int rows; // Number of rows in the symbol.
int* pixels; // The pixels of the symbol.
} UserPointSymbol;
typedef struct View3DOptions_struct {
int sizeReduction; // A divisor the function uses when determining the final
// height and width of the 3D image.
int maxHeight; // Defines the maximum height of a pixel from the image source
// drawn in 3D.
Direction3D direction; // Defines the 3D orientation.
float alpha; // Determines the angle between the horizontal and the baseline.
float beta; // Determines the angle between the horizontal and the second
// baseline.
int border; // Defines the border size.
int background; // Defines the background color.
Plane3D plane; // Indicates the view a function uses to show complex images.
} View3DOptions;
typedef struct MatchPatternOptions_struct {
MatchingMode mode; // Specifies the method to use when looking for the
// pattern in the image.
int minContrast; // Specifies the minimum contrast expected in the image.
int subpixelAccuracy; // Set this element to TRUE to return areas in the
// image that match the pattern area with subpixel
// accuracy.
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.
int numRanges; // Number of angle ranges in the angleRanges array.
int numMatchesRequested; // Number of valid matches expected.
int matchFactor; // Controls the number of potential matches that the
// function examines.
float minMatchScore; // The minimum score a match can have for the function
// to consider the match valid.
} MatchPatternOptions;
typedef struct TIFFFileOptions_struct {
int rowsPerStrip; // Indicates the number of rows that the function writes
// per strip.
PhotometricMode
photoInterp; // Designates which photometric interpretation to use.
TIFFCompressionType compressionType; // Indicates the type of compression to
// use on the TIFF file.
} TIFFFileOptions;
typedef union Color_union {
RGBValue rgb; // The information needed to describe a color in the RGB (Red,
// Green, and Blue) color space.
HSLValue hsl; // The information needed to describe a color in the HSL (Hue,
// Saturation, and Luminance) color space.
HSVValue hsv; // The information needed to describe a color in the HSI (Hue,
// Saturation, and Value) color space.
HSIValue hsi; // The information needed to describe a color in the HSI (Hue,
// Saturation, and Intensity) color space.
int rawValue; // The integer value for the data in the color union.
} Color;
typedef union PixelValue_union {
float grayscale; // A grayscale pixel value.
RGBValue rgb; // A RGB pixel value.
HSLValue hsl; // A HSL pixel value.
Complex complex; // A complex pixel value.
RGBU64Value rgbu64; // An unsigned 64-bit RGB pixel value.
} PixelValue;
typedef struct OpenContour_struct {
Point* points; // The points that make up the open contour.
int numPoints; // The number of points in the array.
} OpenContour;
typedef struct OverlayTextOptions_struct {
const char* fontName; // The name of the font to use.
int fontSize; // The size of the font.
int bold; // Set this element to TRUE to bold the text.
int italic; // Set this element to TRUE to italicize the text.
int underline; // Set this element to TRUE to underline the text.
int strikeout; // Set this element to TRUE to strikeout the text.
TextAlignment horizontalTextAlignment; // Sets the alignment of the text.
VerticalTextAlignment
verticalTextAlignment; // Sets the vertical alignment for the text.
RGBValue backgroundColor; // Sets the color for the text background pixels.
double angle; // The counterclockwise angle, in degrees, of the text relative
// to the x-axis.
} OverlayTextOptions;
typedef struct ParticleFilterCriteria_struct {
MeasurementValue parameter; // The morphological measurement that the
// function uses for filtering.
float lower; // The lower bound of the criteria range.
float upper; // The upper bound of the criteria range.
int exclude; // Set this element to TRUE to indicate that a match occurs when
// the value is outside the criteria range.
} ParticleFilterCriteria;
typedef struct ParticleReport_struct {
int area; // The number of pixels in the particle.
float calibratedArea; // The size of the particle, calibrated to the
// calibration information of the image.
float perimeter; // The length of the perimeter, calibrated to the
// calibration information of the image.
int numHoles; // The number of holes in the particle.
int areaOfHoles; // The total surface area, in pixels, of all the holes in a
// particle.
float perimeterOfHoles; // The length of the perimeter of all the holes in
// the particle calibrated to the calibration
// information of the image.
Rect boundingBox; // The smallest rectangle that encloses the particle.
float sigmaX; // The sum of the particle pixels on the x-axis.
float sigmaY; // The sum of the particle pixels on the y-axis.
float sigmaXX; // The sum of the particle pixels on the x-axis, squared.
float sigmaYY; // The sum of the particle pixels on the y-axis, squared.
float sigmaXY; // The sum of the particle pixels on the x-axis and y-axis.
int longestLength; // The length of the longest horizontal line segment.
Point longestPoint; // The location of the leftmost pixel of the longest
// segment in the particle.
int projectionX; // The length of the particle when projected onto the
// x-axis.
int projectionY; // The length of the particle when projected onto the
// y-axis.
int connect8; // This element is TRUE if the function used connectivity-8 to
// determine if particles are touching.
} ParticleReport;
typedef struct PatternMatch_struct {
PointFloat position; // The location of the center of the match.
float rotation; // The rotation of the match relative to the template image,
// in degrees.
float scale; // The size of the match relative to the size of the template
// image, expressed as a percentage.
float score; // The accuracy of the match.
PointFloat corner[4]; // An array of four points describing the rectangle
// surrounding the template image.
} PatternMatch;
typedef struct QuantifyData_struct {
float mean; // The mean value of the pixel values.
float stdDev; // The standard deviation of the pixel values.
float min; // The smallest pixel value.
float max; // The largest pixel value.
float calibratedArea; // The area, calibrated to the calibration information
// of the image.
int pixelArea; // The area, in number of pixels.
float relativeSize; // The proportion, expressed as a percentage, of the
// associated region relative to the whole image.
} QuantifyData;
typedef struct QuantifyReport_struct {
QuantifyData global; // Statistical data of the whole image.
QuantifyData* regions; // An array of QuantifyData structures containing
// statistical data of each region of the image.
int regionCount; // The number of regions.
} QuantifyReport;
typedef struct RakeOptions_struct {
int threshold; // Specifies the threshold value for the contrast of the edge.
int width; // The number of pixels that the function averages to find the
// contrast at either side of the edge.
int steepness; // The span, in pixels, of the slope of the edge projected
// along the path specified by the input points.
int subsamplingRatio; // Specifies the number of pixels that separate two
// consecutive search lines.
InterpolationMethod subpixelType; // The method for interpolating.
int subpixelDivisions; // The number of samples the function obtains from a
// pixel.
} RakeOptions;
typedef struct RakeReport_struct {
LineFloat* rakeLines; // The coordinate location of each of the rake lines
// used by the function.
int numRakeLines; // The number of lines in the rakeLines array.
PointFloat* firstEdges; // The coordinate location of all edges detected as
// first edges.
unsigned int numFirstEdges; // The number of points in the firstEdges array.
PointFloat* lastEdges; // The coordinate location of all edges detected as
// last edges.
unsigned int numLastEdges; // The number of points in the lastEdges array.
EdgeLocationReport* allEdges; // An array of reports describing the location
// of the edges located by each rake line.
int* linesWithEdges; // An array of indices into the rakeLines array
// indicating the rake lines on which the function
// detected at least one edge.
int numLinesWithEdges; // The number of rake lines along which the function
// detected edges.
} RakeReport;
typedef struct TransformReport_struct {
PointFloat* points; // An array of transformed coordinates.
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().
int numPoints; // The length of both the points array and the validPoints
// array.
} TransformReport;
typedef struct ShapeReport_struct {
Rect coordinates; // The bounding rectangle of the object.
Point centroid; // The coordinate location of the centroid of the object.
int size; // The size, in pixels, of the object.
double score; // A value ranging between 1 and 1,000 that specifies how
// similar the object in the image is to the template.
} ShapeReport;
typedef struct MeterArc_struct {
PointFloat
needleBase; // The coordinate location of the base of the meter needle.
PointFloat* arcCoordPoints; // An array of points describing the coordinate
// location of the meter arc.
int numOfArcCoordPoints; // The number of points in the arcCoordPoints array.
int needleColor; // This element is TRUE when the meter has a light-colored
// needle on a dark background.
} MeterArc;
typedef struct ThresholdData_struct {
float rangeMin; // The lower boundary of the range to keep.
float rangeMax; // The upper boundary of the range to keep.
float newValue; // If useNewValue is TRUE, newValue is the replacement value
// for pixels within the range.
int useNewValue; // If TRUE, the function sets pixel values within [rangeMin,
// rangeMax] to the value specified in newValue.
} ThresholdData;
typedef struct StructuringElement_struct {
int matrixCols; // Number of columns in the matrix.
int matrixRows; // Number of rows in the matrix.
int hexa; // Set this element to TRUE if you specify a hexagonal structuring
// element in kernel.
int* kernel; // The values of the structuring element.
} StructuringElement;
typedef struct SpokeReport_struct {
LineFloat* spokeLines; // The coordinate location of each of the spoke lines
// used by the function.
int numSpokeLines; // The number of lines in the spokeLines array.
PointFloat* firstEdges; // The coordinate location of all edges detected as
// first edges.
int numFirstEdges; // The number of points in the firstEdges array.
PointFloat* lastEdges; // The coordinate location of all edges detected as
// last edges.
int numLastEdges; // The number of points in the lastEdges array.
EdgeLocationReport* allEdges; // An array of reports describing the location
// of the edges located by each spoke line.
int* linesWithEdges; // An array of indices into the spokeLines array
// indicating the rake lines on which the function
// detected at least one edge.
int numLinesWithEdges; // The number of spoke lines along which the function
// detects edges.
} SpokeReport;
typedef struct SimpleEdgeOptions_struct {
LevelType type; // Determines how the function evaluates the threshold and
// hysteresis values.
int threshold; // The pixel value at which an edge occurs.
int hysteresis; // A value that helps determine edges in noisy images.
EdgeProcess process; // Determines which edges the function looks for.
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.
} SimpleEdgeOptions;
typedef struct SelectParticleCriteria_struct {
MeasurementValue parameter; // The morphological measurement that the
// function uses for filtering.
float lower; // The lower boundary of the criteria range.
float upper; // The upper boundary of the criteria range.
} SelectParticleCriteria;
typedef struct SegmentInfo_struct {
int numberOfPoints; // The number of points in the segment.
int isOpen; // If TRUE, the contour is open.
double weight; // The significance of the edge in terms of the gray values
// that constitute the edge.
ContourPoint* points; // The points of the segment.
} SegmentInfo;
typedef struct RotationAngleRange_struct {
float lower; // The lowest amount of rotation, in degrees, a valid pattern
// can have.
float upper; // The highest amount of rotation, in degrees, a valid pattern
// can have.
} RotationAngleRange;
typedef struct RotatedRect_struct {
int top; // Location of the top edge of the rectangle before rotation.
int left; // Location of the left edge of the rectangle before rotation.
int height; // Height of the rectangle.
int width; // Width of the rectangle.
double angle; // The rotation, in degrees, of the rectangle.
} RotatedRect;
typedef struct ROIProfile_struct {
LineProfile report; // Quantifying information about the points along the
// edge of each contour in the ROI.
Point* pixels; // An array of the points along the edge of each contour in
// the ROI.
} ROIProfile;
typedef struct ToolWindowOptions_struct {
int showSelectionTool; // If TRUE, the selection tool becomes visible.
int showZoomTool; // If TRUE, the zoom tool becomes visible.
int showPointTool; // If TRUE, the point tool becomes visible.
int showLineTool; // If TRUE, the line tool becomes visible.
int showRectangleTool; // If TRUE, the rectangle tool becomes visible.
int showOvalTool; // If TRUE, the oval tool becomes visible.
int showPolygonTool; // If TRUE, the polygon tool becomes visible.
int showClosedFreehandTool; // If TRUE, the closed freehand tool becomes
// visible.
int showPolyLineTool; // If TRUE, the polyline tool becomes visible.
int showFreehandTool; // If TRUE, the freehand tool becomes visible.
int showAnnulusTool; // If TRUE, the annulus becomes visible.
int showRotatedRectangleTool; // If TRUE, the rotated rectangle tool becomes
// visible.
int showPanTool; // If TRUE, the pan tool becomes visible.
int showZoomOutTool; // If TRUE, the zoom out tool becomes visible.
int reserved2; // This element is reserved and should be set to FALSE.
int reserved3; // This element is reserved and should be set to FALSE.
int reserved4; // This element is reserved and should be set to FALSE.
} ToolWindowOptions;
typedef struct SpokeOptions_struct {
int threshold; // Specifies the threshold value for the contrast of the edge.
int width; // The number of pixels that the function averages to find the
// contrast at either side of the edge.
int steepness; // The span, in pixels, of the slope of the edge projected
// along the path specified by the input points.
double subsamplingRatio; // The angle, in degrees, between each radial search
// line in the spoke.
InterpolationMethod subpixelType; // The method for interpolating.
int subpixelDivisions; // The number of samples the function obtains from a
// pixel.
} SpokeOptions;
#if !defined __GNUC__ && !defined _M_X64
#pragma pack(pop)
#endif
//============================================================================
// Callback Function Type
//============================================================================
#ifndef __GNUC__
typedef void(IMAQ_CALLBACK* EventCallback)(WindowEventType event,
int windowNumber, Tool tool,
Rect rect);
#endif
//============================================================================
// Globals
//============================================================================
#ifndef __GNUC__
#pragma const_seg("IMAQVisionColorConstants")
#endif
static const RGBValue IMAQ_RGB_TRANSPARENT = {0, 0, 0, 1};
static const RGBValue IMAQ_RGB_RED = {0, 0, 255, 0};
static const RGBValue IMAQ_RGB_BLUE = {255, 0, 0, 0};
static const RGBValue IMAQ_RGB_GREEN = {0, 255, 0, 0};
static const RGBValue IMAQ_RGB_YELLOW = {0, 255, 255, 0};
static const RGBValue IMAQ_RGB_WHITE = {255, 255, 255, 0};
static const RGBValue IMAQ_RGB_BLACK = {0, 0, 0, 0};
#ifndef __GNUC__
#pragma const_seg()
#endif
//============================================================================
// Backwards Compatibility
//============================================================================
typedef ColorSensitivity ColorComplexity;
#define IMAQ_COMPLEXITY_LOW IMAQ_SENSITIVITY_LOW
#define IMAQ_COMPLEXITY_MED IMAQ_SENSITIVITY_MED
#define IMAQ_COMPLEXITY_HIGH IMAQ_SENSITIVITY_HIGH
#define ERR_INVALID_COLORCOMPLEXITY ERR_INVALID_COLORSENSITIVITY
//============================================================================
// Logical functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqAnd(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqAndConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL imaqCompare(Image* dest, const Image* source,
const Image* compareImage,
ComparisonFunction compare);
IMAQ_FUNC int IMAQ_STDCALL imaqCompareConstant(Image* dest, const Image* source,
PixelValue value,
ComparisonFunction compare);
IMAQ_FUNC int IMAQ_STDCALL
imaqLogicalDifference(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL imaqLogicalDifferenceConstant(Image* dest,
const Image* source,
PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqNand(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqNandConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqNor(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqNorConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqOr(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqOrConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqXnor(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqXnorConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqXor(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqXorConstant(Image* dest, const Image* source, PixelValue value);
//============================================================================
// Particle Analysis functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqCountParticles(Image* image, int connectivity8, int* numParticles);
IMAQ_FUNC int IMAQ_STDCALL
imaqMeasureParticle(Image* image, int particleNumber, int calibrated,
MeasurementType measurement, double* value);
IMAQ_FUNC MeasureParticlesReport* IMAQ_STDCALL
imaqMeasureParticles(Image* image,
MeasureParticlesCalibrationMode calibrationMode,
const MeasurementType* measurements,
size_t numMeasurements);
IMAQ_FUNC int IMAQ_STDCALL
imaqParticleFilter4(Image* dest, Image* source,
const ParticleFilterCriteria2* criteria, int criteriaCount,
const ParticleFilterOptions2* options, const ROI* roi,
int* numParticles);
//============================================================================
// Morphology functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqConvexHull(Image* dest, Image* source, int connectivity8);
IMAQ_FUNC int IMAQ_STDCALL imaqDanielssonDistance(Image* dest, Image* source);
IMAQ_FUNC int IMAQ_STDCALL
imaqFillHoles(Image* dest, const Image* source, int connectivity8);
IMAQ_FUNC CircleReport* IMAQ_STDCALL
imaqFindCircles(Image* dest, Image* source, float minRadius, float maxRadius,
int* numCircles);
IMAQ_FUNC int IMAQ_STDCALL
imaqLabel2(Image* dest, Image* source, int connectivity8, int* particleCount);
IMAQ_FUNC int IMAQ_STDCALL
imaqMorphology(Image* dest, Image* source, MorphologyMethod method,
const StructuringElement* structuringElement);
IMAQ_FUNC int IMAQ_STDCALL
imaqRejectBorder(Image* dest, Image* source, int connectivity8);
IMAQ_FUNC int IMAQ_STDCALL imaqSegmentation(Image* dest, Image* source);
IMAQ_FUNC int IMAQ_STDCALL
imaqSeparation(Image* dest, Image* source, int erosions,
const StructuringElement* structuringElement);
IMAQ_FUNC int IMAQ_STDCALL
imaqSimpleDistance(Image* dest, Image* source,
const StructuringElement* structuringElement);
IMAQ_FUNC int IMAQ_STDCALL
imaqSizeFilter(Image* dest, Image* source, int connectivity8, int erosions,
SizeType keepSize, const StructuringElement* structuringElement);
IMAQ_FUNC int IMAQ_STDCALL
imaqSkeleton(Image* dest, Image* source, SkeletonMethod method);
//============================================================================
// Acquisition functions
//============================================================================
IMAQ_FUNC Image* IMAQ_STDCALL imaqCopyFromRing(SESSION_ID sessionID,
Image* image, int imageToCopy,
int* imageNumber, Rect rect);
IMAQ_FUNC Image* IMAQ_STDCALL imaqEasyAcquire(const char* interfaceName);
IMAQ_FUNC Image* IMAQ_STDCALL
imaqExtractFromRing(SESSION_ID sessionID, int imageToExtract, int* imageNumber);
IMAQ_FUNC Image* IMAQ_STDCALL
imaqGrab(SESSION_ID sessionID, Image* image, int immediate);
IMAQ_FUNC int IMAQ_STDCALL imaqReleaseImage(SESSION_ID sessionID);
IMAQ_FUNC int IMAQ_STDCALL imaqSetupGrab(SESSION_ID sessionID, Rect rect);
IMAQ_FUNC int IMAQ_STDCALL imaqSetupRing(SESSION_ID sessionID, Image** images,
int numImages, int skipCount,
Rect rect);
IMAQ_FUNC int IMAQ_STDCALL imaqSetupSequence(SESSION_ID sessionID,
Image** images, int numImages,
int skipCount, Rect rect);
IMAQ_FUNC Image* IMAQ_STDCALL
imaqSnap(SESSION_ID sessionID, Image* image, Rect rect);
IMAQ_FUNC int IMAQ_STDCALL imaqStartAcquisition(SESSION_ID sessionID);
IMAQ_FUNC int IMAQ_STDCALL imaqStopAcquisition(SESSION_ID sessionID);
//============================================================================
// Arithmetic functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqAbsoluteDifference(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL imaqAbsoluteDifferenceConstant(Image* dest,
const Image* source,
PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqAdd(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqAddConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqAverage(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqAverageConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL imaqDivide2(Image* dest, const Image* sourceA,
const Image* sourceB,
RoundingMode roundingMode);
IMAQ_FUNC int IMAQ_STDCALL imaqDivideConstant2(Image* dest, const Image* source,
PixelValue value,
RoundingMode roundingMode);
IMAQ_FUNC int IMAQ_STDCALL
imaqMax(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqMaxConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqMin(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqMinConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqModulo(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqModuloConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL imaqMulDiv(Image* dest, const Image* sourceA,
const Image* sourceB, float value);
IMAQ_FUNC int IMAQ_STDCALL
imaqMultiply(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqMultiplyConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqSubtract(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC int IMAQ_STDCALL
imaqSubtractConstant(Image* dest, const Image* source, PixelValue value);
//============================================================================
// Caliper functions
//============================================================================
IMAQ_FUNC CaliperReport* IMAQ_STDCALL
imaqCaliperTool(const Image* image, const Point* points, int numPoints,
const EdgeOptions* edgeOptions,
const CaliperOptions* caliperOptions, int* numEdgePairs);
IMAQ_FUNC ConcentricRakeReport2* IMAQ_STDCALL
imaqConcentricRake2(Image* image, ROI* roi, ConcentricRakeDirection direction,
EdgeProcess process, int stepSize,
EdgeOptions2* edgeOptions);
IMAQ_FUNC ExtremeReport* IMAQ_STDCALL
imaqDetectExtremes(const double* pixels, int numPixels, DetectionMode mode,
const DetectExtremesOptions* options, int* numExtremes);
IMAQ_FUNC int IMAQ_STDCALL
imaqDetectRotation(const Image* referenceImage, const Image* testImage,
PointFloat referenceCenter, PointFloat testCenter,
int radius, float precision, double* angle);
IMAQ_FUNC EdgeReport2* IMAQ_STDCALL
imaqEdgeTool4(Image* image, ROI* roi, EdgeProcess processType,
EdgeOptions2* edgeOptions, const unsigned int reverseDirection);
IMAQ_FUNC FindEdgeReport* IMAQ_STDCALL
imaqFindEdge2(Image* image, const ROI* roi, const CoordinateSystem* baseSystem,
const CoordinateSystem* newSystem,
const FindEdgeOptions2* findEdgeOptions,
const StraightEdgeOptions* straightEdgeOptions);
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);
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);
IMAQ_FUNC int IMAQ_STDCALL
imaqLineGaugeTool2(const Image* image, Point start, Point end,
LineGaugeMethod method, const EdgeOptions* edgeOptions,
const CoordinateTransform2* transform, float* distance);
IMAQ_FUNC RakeReport2* IMAQ_STDCALL
imaqRake2(Image* image, ROI* roi, RakeDirection direction, EdgeProcess process,
int stepSize, EdgeOptions2* edgeOptions);
IMAQ_FUNC PointFloat* IMAQ_STDCALL
imaqSimpleEdge(const Image* image, const Point* points, int numPoints,
const SimpleEdgeOptions* options, int* numEdges);
IMAQ_FUNC SpokeReport2* IMAQ_STDCALL
imaqSpoke2(Image* image, ROI* roi, SpokeDirection direction,
EdgeProcess process, int stepSize, EdgeOptions2* edgeOptions);
IMAQ_FUNC StraightEdgeReport2* IMAQ_STDCALL
imaqStraightEdge(const Image* image, const ROI* roi,
SearchDirection searchDirection,
const EdgeOptions2* edgeOptions,
const StraightEdgeOptions* straightEdgeOptions);
IMAQ_FUNC StraightEdgeReport2* IMAQ_STDCALL
imaqStraightEdge2(const Image* image, const ROI* roi,
SearchDirection searchDirection,
const EdgeOptions2* edgeOptions,
const StraightEdgeOptions* straightEdgeOptions,
unsigned int optimizedMode);
//============================================================================
// Spatial Filters functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqCannyEdgeFilter(Image* dest, const Image* source,
const CannyOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqConvolve2(Image* dest, Image* source, float* kernel, int matrixRows,
int matrixCols, float normalize, Image* mask,
RoundingMode roundingMode);
IMAQ_FUNC int IMAQ_STDCALL imaqCorrelate(Image* dest, Image* source,
const Image* templateImage, Rect rect);
IMAQ_FUNC int IMAQ_STDCALL imaqEdgeFilter(Image* dest, Image* source,
OutlineMethod method,
const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL imaqLowPass(Image* dest, Image* source, int width,
int height, float tolerance,
const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL imaqMedianFilter(Image* dest, Image* source,
int width, int height,
const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL imaqNthOrderFilter(Image* dest, Image* source,
int width, int height, int n,
const Image* mask);
//============================================================================
// Drawing functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqDrawLineOnImage(Image* dest, const Image* source,
DrawMode mode, Point start,
Point end, float newPixelValue);
IMAQ_FUNC int IMAQ_STDCALL
imaqDrawShapeOnImage(Image* dest, const Image* source, Rect rect, DrawMode mode,
ShapeMode shape, float newPixelValue);
IMAQ_FUNC int IMAQ_STDCALL imaqDrawTextOnImage(Image* dest, const Image* source,
Point coord, const char* text,
const DrawTextOptions* options,
int* fontNameUsed);
//============================================================================
// Interlacing functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqInterlaceCombine(Image* frame, const Image* odd, const Image* even);
IMAQ_FUNC int IMAQ_STDCALL
imaqInterlaceSeparate(const Image* frame, Image* odd, Image* even);
//============================================================================
// Image Information functions
//============================================================================
IMAQ_FUNC char** IMAQ_STDCALL
imaqEnumerateCustomKeys(const Image* image, unsigned int* size);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetBitDepth(const Image* image, unsigned int* bitDepth);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetBytesPerPixel(const Image* image, int* byteCount);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetImageInfo(const Image* image, ImageInfo* info);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetImageSize(const Image* image, int* width, int* height);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetImageType(const Image* image, ImageType* type);
IMAQ_FUNC int IMAQ_STDCALL imaqGetMaskOffset(const Image* image, Point* offset);
IMAQ_FUNC void* IMAQ_STDCALL
imaqGetPixelAddress(const Image* image, Point pixel);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetVisionInfoTypes(const Image* image, unsigned int* present);
IMAQ_FUNC int IMAQ_STDCALL imaqIsImageEmpty(const Image* image, int* empty);
IMAQ_FUNC void* IMAQ_STDCALL
imaqReadCustomData(const Image* image, const char* key, unsigned int* size);
IMAQ_FUNC int IMAQ_STDCALL imaqRemoveCustomData(Image* image, const char* key);
IMAQ_FUNC int IMAQ_STDCALL
imaqRemoveVisionInfo2(const Image* image, unsigned int info);
IMAQ_FUNC int IMAQ_STDCALL imaqSetBitDepth(Image* image, unsigned int bitDepth);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetImageSize(Image* image, int width, int height);
IMAQ_FUNC int IMAQ_STDCALL imaqSetMaskOffset(Image* image, Point offset);
IMAQ_FUNC int IMAQ_STDCALL imaqWriteCustomData(Image* image, const char* key,
const void* data,
unsigned int size);
//============================================================================
// Display functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqAreToolsContextSensitive(int* sensitive);
IMAQ_FUNC int IMAQ_STDCALL imaqCloseWindow(int windowNumber);
IMAQ_FUNC int IMAQ_STDCALL
imaqDisplayImage(const Image* image, int windowNumber, int resize);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetLastKey(char* keyPressed, int* windowNumber, int* modifiers);
IMAQ_FUNC void* IMAQ_STDCALL imaqGetSystemWindowHandle(int windowNumber);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowCenterPos(int windowNumber, Point* centerPosition);
IMAQ_FUNC int IMAQ_STDCALL imaqSetToolContextSensitivity(int sensitive);
IMAQ_FUNC int IMAQ_STDCALL imaqShowWindow(int windowNumber, int visible);
//============================================================================
// Image Manipulation functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqCast(Image* dest, const Image* source,
ImageType type, const float* lookup,
int shift);
IMAQ_FUNC int IMAQ_STDCALL
imaqCopyRect(Image* dest, const Image* source, Rect rect, Point destLoc);
IMAQ_FUNC int IMAQ_STDCALL imaqDuplicate(Image* dest, const Image* source);
IMAQ_FUNC void* IMAQ_STDCALL imaqFlatten(const Image* image, FlattenType type,
CompressionType compression,
int quality, unsigned int* size);
IMAQ_FUNC int IMAQ_STDCALL
imaqFlip(Image* dest, const Image* source, FlipAxis axis);
IMAQ_FUNC int IMAQ_STDCALL
imaqMask(Image* dest, const Image* source, const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL imaqResample(Image* dest, const Image* source,
int newWidth, int newHeight,
InterpolationMethod method, Rect rect);
IMAQ_FUNC int IMAQ_STDCALL
imaqRotate2(Image* dest, const Image* source, float angle, PixelValue fill,
InterpolationMethod method, int maintainSize);
IMAQ_FUNC int IMAQ_STDCALL imaqScale(Image* dest, const Image* source,
int xScale, int yScale,
ScalingMode scaleMode, Rect rect);
IMAQ_FUNC int IMAQ_STDCALL imaqShift(Image* dest, const Image* source,
int shiftX, int shiftY, PixelValue fill);
IMAQ_FUNC int IMAQ_STDCALL imaqTranspose(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL
imaqUnflatten(Image* image, const void* data, unsigned int size);
IMAQ_FUNC int IMAQ_STDCALL
imaqUnwrapImage(Image* dest, const Image* source, Annulus annulus,
RectOrientation orientation, InterpolationMethod method);
IMAQ_FUNC int IMAQ_STDCALL
imaqView3D(Image* dest, Image* source, const View3DOptions* options);
//============================================================================
// File I/O functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqCloseAVI(AVISession session);
IMAQ_FUNC AVISession IMAQ_STDCALL
imaqCreateAVI(const char* fileName, const char* compressionFilter, int quality,
unsigned int framesPerSecond, unsigned int maxDataSize);
IMAQ_FUNC int IMAQ_STDCALL imaqGetAVIInfo(AVISession session, AVIInfo* info);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetFileInfo(const char* fileName, CalibrationUnit* calibrationUnit,
float* calibrationX, float* calibrationY, int* width,
int* height, ImageType* imageType);
IMAQ_FUNC FilterName* IMAQ_STDCALL imaqGetFilterNames(int* numFilters);
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);
IMAQ_FUNC AVISession IMAQ_STDCALL imaqOpenAVI(const char* fileName);
IMAQ_FUNC int IMAQ_STDCALL imaqReadAVIFrame(Image* image, AVISession session,
unsigned int frameNum, void* data,
unsigned int* dataSize);
IMAQ_FUNC int IMAQ_STDCALL imaqReadFile(Image* image, const char* fileName,
RGBValue* colorTable, int* numColors);
IMAQ_FUNC int IMAQ_STDCALL
imaqReadVisionFile(Image* image, const char* fileName, RGBValue* colorTable,
int* numColors);
IMAQ_FUNC int IMAQ_STDCALL imaqWriteAVIFrame(Image* image, AVISession session,
const void* data,
unsigned int dataLength);
IMAQ_FUNC int IMAQ_STDCALL imaqWriteBMPFile(const Image* image,
const char* fileName, int compress,
const RGBValue* colorTable);
IMAQ_FUNC int IMAQ_STDCALL imaqWriteFile(const Image* image,
const char* fileName,
const RGBValue* colorTable);
IMAQ_FUNC int IMAQ_STDCALL
imaqWriteJPEGFile(const Image* image, const char* fileName,
unsigned int quality, void* colorTable);
IMAQ_FUNC int IMAQ_STDCALL
imaqWriteJPEG2000File(const Image* image, const char* fileName, int lossless,
float compressionRatio,
const JPEG2000FileAdvancedOptions* advancedOptions,
const RGBValue* colorTable);
IMAQ_FUNC int IMAQ_STDCALL
imaqWritePNGFile2(const Image* image, const char* fileName,
unsigned int compressionSpeed, const RGBValue* colorTable,
int useBitDepth);
IMAQ_FUNC int IMAQ_STDCALL
imaqWriteTIFFFile(const Image* image, const char* fileName,
const TIFFFileOptions* options, const RGBValue* colorTable);
IMAQ_FUNC int IMAQ_STDCALL imaqWriteVisionFile(const Image* image,
const char* fileName,
const RGBValue* colorTable);
//============================================================================
// Analytic Geometry functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqBuildCoordinateSystem(const Point* points, ReferenceMode mode,
AxisOrientation orientation,
CoordinateSystem* system);
IMAQ_FUNC BestCircle2* IMAQ_STDCALL
imaqFitCircle2(const PointFloat* points, int numPoints,
const FitCircleOptions* options);
IMAQ_FUNC BestEllipse2* IMAQ_STDCALL
imaqFitEllipse2(const PointFloat* points, int numPoints,
const FitEllipseOptions* options);
IMAQ_FUNC BestLine* IMAQ_STDCALL imaqFitLine(const PointFloat* points,
int numPoints,
const FitLineOptions* options);
IMAQ_FUNC int IMAQ_STDCALL imaqGetAngle(PointFloat start1, PointFloat end1,
PointFloat start2, PointFloat end2,
float* angle);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetBisectingLine(PointFloat start1, PointFloat end1, PointFloat start2,
PointFloat end2, PointFloat* bisectStart,
PointFloat* bisectEnd);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetDistance(PointFloat point1, PointFloat point2, float* distance);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetIntersection(PointFloat start1, PointFloat end1, PointFloat start2,
PointFloat end2, PointFloat* intersection);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetMidLine(PointFloat refLineStart, PointFloat refLineEnd, PointFloat point,
PointFloat* midLineStart, PointFloat* midLineEnd);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetPerpendicularLine(PointFloat refLineStart, PointFloat refLineEnd,
PointFloat point, PointFloat* perpLineStart,
PointFloat* perpLineEnd, double* distance);
IMAQ_FUNC SegmentInfo* IMAQ_STDCALL
imaqGetPointsOnContour(const Image* image, int* numSegments);
IMAQ_FUNC Point* IMAQ_STDCALL
imaqGetPointsOnLine(Point start, Point end, int* numPoints);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetPolygonArea(const PointFloat* points, int numPoints, float* area);
IMAQ_FUNC float* IMAQ_STDCALL
imaqInterpolatePoints(const Image* image, const Point* points, int numPoints,
InterpolationMethod method, int subpixel,
int* interpCount);
//============================================================================
// Clipboard functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqClipboardToImage(Image* dest, RGBValue* palette);
IMAQ_FUNC int IMAQ_STDCALL
imaqImageToClipboard(const Image* image, const RGBValue* palette);
//============================================================================
// Border functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqFillBorder(Image* image, BorderMethod method);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetBorderSize(const Image* image, int* borderSize);
IMAQ_FUNC int IMAQ_STDCALL imaqSetBorderSize(Image* image, int size);
//============================================================================
// Image Management functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqArrayToImage(Image* image, const void* array, int numCols, int numRows);
IMAQ_FUNC Image* IMAQ_STDCALL imaqCreateImage(ImageType type, int borderSize);
IMAQ_FUNC void* IMAQ_STDCALL
imaqImageToArray(const Image* image, Rect rect, int* columns, int* rows);
//============================================================================
// Color Processing functions
//============================================================================
IMAQ_FUNC Color2 IMAQ_STDCALL
imaqChangeColorSpace2(const Color2* sourceColor, ColorMode sourceSpace,
ColorMode destSpace, double offset,
const CIEXYZValue* whiteReference);
IMAQ_FUNC int IMAQ_STDCALL
imaqColorBCGTransform(Image* dest, const Image* source,
const BCGOptions* redOptions,
const BCGOptions* greenOptions,
const BCGOptions* blueOptions, const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL
imaqColorEqualize(Image* dest, const Image* source, int colorEqualization);
IMAQ_FUNC ColorHistogramReport* IMAQ_STDCALL
imaqColorHistogram2(Image* image, int numClasses, ColorMode mode,
const CIEXYZValue* whiteReference, Image* mask);
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);
IMAQ_FUNC int IMAQ_STDCALL
imaqColorThreshold(Image* dest, const Image* source, int replaceValue,
ColorMode mode, const Range* plane1Range,
const Range* plane2Range, const Range* plane3Range);
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);
IMAQ_FUNC int IMAQ_STDCALL imaqGetColorSegmentationMaxDistance(
ClassifierSession* session, const ColorSegmenationOptions* segmentOptions,
SegmentationDistanceLevel distLevel, int* maxDistance);
//============================================================================
// Transform functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqBCGTransform(Image* dest, const Image* source,
const BCGOptions* options,
const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL imaqEqualize(Image* dest, const Image* source,
float min, float max,
const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL
imaqInverse(Image* dest, const Image* source, const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL imaqMathTransform(Image* dest, const Image* source,
MathTransformMethod method,
float rangeMin, float rangeMax,
float power, const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL
imaqWatershedTransform(Image* dest, const Image* source, int connectivity8,
int* zoneCount);
IMAQ_FUNC int IMAQ_STDCALL imaqLookup2(Image* dest, const Image* source,
const int* table, const Image* mask);
//============================================================================
// Window Management functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqAreScrollbarsVisible(int windowNumber, int* visible);
IMAQ_FUNC int IMAQ_STDCALL imaqBringWindowToTop(int windowNumber);
IMAQ_FUNC int IMAQ_STDCALL imaqGetMousePos(Point* position, int* windowNumber);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowBackground(int windowNumber, WindowBackgroundFillStyle* fillStyle,
WindowBackgroundHatchStyle* hatchStyle,
RGBValue* fillColor, RGBValue* backgroundColor);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowDisplayMapping(int windowNum, DisplayMapping* mapping);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowGrid(int windowNumber, int* xResolution, int* yResolution);
IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowHandle(int* handle);
IMAQ_FUNC int IMAQ_STDCALL imaqGetWindowPos(int windowNumber, Point* position);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowSize(int windowNumber, int* width, int* height);
IMAQ_FUNC char* IMAQ_STDCALL imaqGetWindowTitle(int windowNumber);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowZoom2(int windowNumber, float* xZoom, float* yZoom);
IMAQ_FUNC int IMAQ_STDCALL
imaqIsWindowNonTearing(int windowNumber, int* nonTearing);
IMAQ_FUNC int IMAQ_STDCALL imaqIsWindowVisible(int windowNumber, int* visible);
IMAQ_FUNC int IMAQ_STDCALL imaqMoveWindow(int windowNumber, Point position);
IMAQ_FUNC int IMAQ_STDCALL imaqSetupWindow(int windowNumber, int configuration);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowBackground(int windowNumber, WindowBackgroundFillStyle fillStyle,
WindowBackgroundHatchStyle hatchStyle,
const RGBValue* fillColor,
const RGBValue* backgroundColor);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowDisplayMapping(int windowNumber, const DisplayMapping* mapping);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowGrid(int windowNumber, int xResolution, int yResolution);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowMaxContourCount(int windowNumber, unsigned int maxContourCount);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowNonTearing(int windowNumber, int nonTearing);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowPalette(int windowNumber, PaletteType type,
const RGBValue* palette, int numColors);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowSize(int windowNumber, int width, int height);
IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowThreadPolicy(WindowThreadPolicy policy);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowTitle(int windowNumber, const char* title);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowZoomToFit(int windowNumber, int zoomToFit);
IMAQ_FUNC int IMAQ_STDCALL imaqShowScrollbars(int windowNumber, int visible);
IMAQ_FUNC int IMAQ_STDCALL
imaqZoomWindow2(int windowNumber, float xZoom, float yZoom, Point center);
//============================================================================
// Utilities functions
//============================================================================
IMAQ_FUNC const float* IMAQ_STDCALL
imaqGetKernel(KernelFamily family, int size, int number);
IMAQ_FUNC Annulus IMAQ_STDCALL
imaqMakeAnnulus(Point center, int innerRadius, int outerRadius,
double startAngle, double endAngle);
IMAQ_FUNC Point IMAQ_STDCALL imaqMakePoint(int xCoordinate, int yCoordinate);
IMAQ_FUNC PointFloat IMAQ_STDCALL
imaqMakePointFloat(float xCoordinate, float yCoordinate);
IMAQ_FUNC Rect IMAQ_STDCALL
imaqMakeRect(int top, int left, int height, int width);
IMAQ_FUNC Rect IMAQ_STDCALL
imaqMakeRectFromRotatedRect(RotatedRect rotatedRect);
IMAQ_FUNC RotatedRect IMAQ_STDCALL
imaqMakeRotatedRect(int top, int left, int height, int width, double angle);
IMAQ_FUNC RotatedRect IMAQ_STDCALL imaqMakeRotatedRectFromRect(Rect rect);
IMAQ_FUNC int IMAQ_STDCALL imaqMulticoreOptions(MulticoreOperation operation,
unsigned int* customNumCores);
//============================================================================
// Tool Window functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqCloseToolWindow(void);
IMAQ_FUNC int IMAQ_STDCALL imaqGetCurrentTool(Tool* currentTool);
IMAQ_FUNC int IMAQ_STDCALL imaqGetLastEvent(WindowEventType* type,
int* windowNumber, Tool* tool,
Rect* rect);
IMAQ_FUNC void* IMAQ_STDCALL imaqGetToolWindowHandle(void);
IMAQ_FUNC int IMAQ_STDCALL imaqGetToolWindowPos(Point* position);
IMAQ_FUNC int IMAQ_STDCALL imaqIsToolWindowVisible(int* visible);
IMAQ_FUNC int IMAQ_STDCALL imaqMoveToolWindow(Point position);
IMAQ_FUNC int IMAQ_STDCALL imaqSetCurrentTool(Tool currentTool);
#ifndef __GNUC__
IMAQ_FUNC int IMAQ_STDCALL
imaqSetEventCallback(EventCallback callback, int synchronous);
#endif
IMAQ_FUNC int IMAQ_STDCALL imaqSetToolColor(const RGBValue* color);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetupToolWindow(int showCoordinates, int maxIconsPerLine,
const ToolWindowOptions* options);
IMAQ_FUNC int IMAQ_STDCALL imaqShowToolWindow(int visible);
//============================================================================
// Meter functions
//============================================================================
IMAQ_FUNC MeterArc* IMAQ_STDCALL
imaqGetMeterArc(int lightNeedle, MeterArcMode mode, const ROI* roi,
PointFloat base, PointFloat start, PointFloat end);
IMAQ_FUNC int IMAQ_STDCALL
imaqReadMeter(const Image* image, const MeterArc* arcInfo, double* percentage,
PointFloat* endOfNeedle);
//============================================================================
// Calibration functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqCopyCalibrationInfo2(Image* dest, Image* source, Point offset);
IMAQ_FUNC int IMAQ_STDCALL
imaqCorrectCalibratedImage(Image* dest, const Image* source, PixelValue fill,
InterpolationMethod method, const ROI* roi);
IMAQ_FUNC CalibrationInfo* IMAQ_STDCALL
imaqGetCalibrationInfo2(const Image* image);
IMAQ_FUNC CalibrationInfo* IMAQ_STDCALL
imaqGetCalibrationInfo3(Image* image, unsigned int isGetErrorMap);
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);
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);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetCoordinateSystem(Image* image, const CoordinateSystem* system);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetSimpleCalibration(Image* image, ScalingMethod method, int learnTable,
const GridDescriptor* grid,
const CoordinateSystem* system);
IMAQ_FUNC TransformReport* IMAQ_STDCALL
imaqTransformPixelToRealWorld(const Image* image,
const PointFloat* pixelCoordinates,
int numCoordinates);
IMAQ_FUNC TransformReport* IMAQ_STDCALL
imaqTransformRealWorldToPixel(const Image* image,
const PointFloat* realWorldCoordinates,
int numCoordinates);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetSimpleCalibration2(Image* image, const GridDescriptor* gridDescriptor);
IMAQ_FUNC int IMAQ_STDCALL
imaqCalibrationSetAxisInfo(Image* image, CoordinateSystem* axisInfo);
IMAQ_FUNC int IMAQ_STDCALL
imaqCalibrationGetThumbnailImage(Image* templateImage, Image* image,
CalibrationThumbnailType type,
unsigned int index);
IMAQ_FUNC GetCalibrationInfoReport* IMAQ_STDCALL
imaqCalibrationGetCalibrationInfo(Image* image, unsigned int isGetErrorMap);
IMAQ_FUNC GetCameraParametersReport* IMAQ_STDCALL
imaqCalibrationGetCameraParameters(Image* templateImage);
IMAQ_FUNC int IMAQ_STDCALL imaqCalibrationCompactInformation(Image* image);
//============================================================================
// Pixel Manipulation functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqArrayToComplexPlane(Image* dest, const Image* source,
const float* newPixels, ComplexPlane plane);
IMAQ_FUNC float* IMAQ_STDCALL
imaqComplexPlaneToArray(const Image* image, ComplexPlane plane, Rect rect,
int* rows, int* columns);
IMAQ_FUNC int IMAQ_STDCALL imaqExtractColorPlanes(const Image* image,
ColorMode mode, Image* plane1,
Image* plane2, Image* plane3);
IMAQ_FUNC int IMAQ_STDCALL
imaqExtractComplexPlane(Image* dest, const Image* source, ComplexPlane plane);
IMAQ_FUNC int IMAQ_STDCALL
imaqFillImage(Image* image, PixelValue value, const Image* mask);
IMAQ_FUNC void* IMAQ_STDCALL
imaqGetLine(const Image* image, Point start, Point end, int* numPoints);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetPixel(const Image* image, Point pixel, PixelValue* value);
IMAQ_FUNC int IMAQ_STDCALL
imaqReplaceColorPlanes(Image* dest, const Image* source, ColorMode mode,
const Image* plane1, const Image* plane2,
const Image* plane3);
IMAQ_FUNC int IMAQ_STDCALL
imaqReplaceComplexPlane(Image* dest, const Image* source,
const Image* newValues, ComplexPlane plane);
IMAQ_FUNC int IMAQ_STDCALL imaqSetLine(Image* image, const void* array,
int arraySize, Point start, Point end);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetPixel(Image* image, Point coord, PixelValue value);
//============================================================================
// Color Matching functions
//============================================================================
IMAQ_FUNC ColorInformation* IMAQ_STDCALL
imaqLearnColor(const Image* image, const ROI* roi, ColorSensitivity sensitivity,
int saturation);
IMAQ_FUNC int* IMAQ_STDCALL imaqMatchColor(const Image* image,
const ColorInformation* info,
const ROI* roi, int* numScores);
//============================================================================
// Frequency Domain Analysis functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqAttenuate(Image* dest, const Image* source, AttenuateMode highlow);
IMAQ_FUNC int IMAQ_STDCALL imaqConjugate(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL imaqFFT(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL
imaqFlipFrequencies(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL imaqInverseFFT(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL imaqTruncate(Image* dest, const Image* source,
TruncateMode highlow,
float ratioToKeep);
//============================================================================
// Barcode I/O functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqGradeDataMatrixBarcodeAIM(const Image* image, AIMGradeReport* report);
IMAQ_FUNC BarcodeInfo* IMAQ_STDCALL
imaqReadBarcode(const Image* image, BarcodeType type, const ROI* roi,
int validate);
IMAQ_FUNC DataMatrixReport* IMAQ_STDCALL imaqReadDataMatrixBarcode2(
Image* image, const ROI* roi, DataMatrixGradingMode prepareForGrading,
const DataMatrixDescriptionOptions* descriptionOptions,
const DataMatrixSizeOptions* sizeOptions,
const DataMatrixSearchOptions* searchOptions);
IMAQ_FUNC Barcode2DInfo* IMAQ_STDCALL
imaqReadPDF417Barcode(const Image* image, const ROI* roi,
Barcode2DSearchMode searchMode,
unsigned int* numBarcodes);
IMAQ_FUNC QRCodeReport* IMAQ_STDCALL
imaqReadQRCode(Image* image, const ROI* roi, QRGradingMode reserved,
const QRCodeDescriptionOptions* descriptionOptions,
const QRCodeSizeOptions* sizeOptions,
const QRCodeSearchOptions* searchOptions);
//============================================================================
// LCD functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqFindLCDSegments(ROI* roi, const Image* image, const LCDOptions* options);
IMAQ_FUNC LCDReport* IMAQ_STDCALL
imaqReadLCD(const Image* image, const ROI* roi, const LCDOptions* options);
//============================================================================
// Shape Matching functions
//============================================================================
IMAQ_FUNC ShapeReport* IMAQ_STDCALL
imaqMatchShape(Image* dest, Image* source, const Image* templateImage,
int scaleInvariant, int connectivity8, double tolerance,
int* numMatches);
//============================================================================
// Contours functions
//============================================================================
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqAddAnnulusContour(ROI* roi, Annulus annulus);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqAddClosedContour(ROI* roi, const Point* points, int numPoints);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqAddLineContour(ROI* roi, Point start, Point end);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqAddOpenContour(ROI* roi, const Point* points, int numPoints);
IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddOvalContour(ROI* roi, Rect boundingBox);
IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddPointContour(ROI* roi, Point point);
IMAQ_FUNC ContourID IMAQ_STDCALL imaqAddRectContour(ROI* roi, Rect rect);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqAddRotatedRectContour2(ROI* roi, RotatedRect rect);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqCopyContour(ROI* destRoi, const ROI* sourceRoi, ContourID id);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqGetContour(const ROI* roi, unsigned int index);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetContourColor(const ROI* roi, ContourID id, RGBValue* contourColor);
IMAQ_FUNC int IMAQ_STDCALL imaqGetContourCount(const ROI* roi);
IMAQ_FUNC ContourInfo2* IMAQ_STDCALL
imaqGetContourInfo2(const ROI* roi, ContourID id);
IMAQ_FUNC int IMAQ_STDCALL
imaqMoveContour(ROI* roi, ContourID id, int deltaX, int deltaY);
IMAQ_FUNC int IMAQ_STDCALL imaqRemoveContour(ROI* roi, ContourID id);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetContourColor(ROI* roi, ContourID id, const RGBValue* color);
//============================================================================
// Regions of Interest functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqConstructROI2(const Image* image, ROI* roi, Tool initialTool,
const ToolWindowOptions* tools,
const ConstructROIOptions2* options, int* okay);
IMAQ_FUNC ROI* IMAQ_STDCALL imaqCreateROI(void);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetROIBoundingBox(const ROI* roi, Rect* boundingBox);
IMAQ_FUNC int IMAQ_STDCALL imaqGetROIColor(const ROI* roi, RGBValue* roiColor);
IMAQ_FUNC ROI* IMAQ_STDCALL imaqGetWindowROI(int windowNumber);
IMAQ_FUNC int IMAQ_STDCALL imaqSetROIColor(ROI* roi, const RGBValue* color);
IMAQ_FUNC int IMAQ_STDCALL imaqSetWindowROI(int windowNumber, const ROI* roi);
//============================================================================
// Image Analysis functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqCentroid(const Image* image, PointFloat* centroid, const Image* mask);
IMAQ_FUNC Curve* IMAQ_STDCALL
imaqExtractCurves(const Image* image, const ROI* roi,
const CurveOptions* curveOptions, unsigned int* numCurves);
IMAQ_FUNC HistogramReport* IMAQ_STDCALL
imaqHistogram(const Image* image, int numClasses, float min, float max,
const Image* mask);
IMAQ_FUNC LinearAverages* IMAQ_STDCALL
imaqLinearAverages2(Image* image, LinearAveragesMode mode, Rect rect);
IMAQ_FUNC LineProfile* IMAQ_STDCALL
imaqLineProfile(const Image* image, Point start, Point end);
IMAQ_FUNC QuantifyReport* IMAQ_STDCALL
imaqQuantify(const Image* image, const Image* mask);
//============================================================================
// Error Management functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqClearError(void);
IMAQ_FUNC char* IMAQ_STDCALL imaqGetErrorText(int errorCode);
IMAQ_FUNC int IMAQ_STDCALL imaqGetLastError(void);
IMAQ_FUNC const char* IMAQ_STDCALL imaqGetLastErrorFunc(void);
IMAQ_FUNC int IMAQ_STDCALL imaqSetError(int errorCode, const char* function);
//============================================================================
// Threshold functions
//============================================================================
IMAQ_FUNC ThresholdData* IMAQ_STDCALL
imaqAutoThreshold2(Image* dest, const Image* source, int numClasses,
ThresholdMethod method, const Image* mask);
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);
IMAQ_FUNC int IMAQ_STDCALL imaqMagicWand(Image* dest, const Image* source,
Point coord, float tolerance,
int connectivity8, float replaceValue);
IMAQ_FUNC int IMAQ_STDCALL imaqMultithreshold(Image* dest, const Image* source,
const ThresholdData* ranges,
int numRanges);
IMAQ_FUNC int IMAQ_STDCALL imaqThreshold(Image* dest, const Image* source,
float rangeMin, float rangeMax,
int useNewValue, float newValue);
//============================================================================
// Memory Management functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqDispose(void* object);
//============================================================================
// Pattern Matching functions
//============================================================================
IMAQ_FUNC CircleMatch* IMAQ_STDCALL
imaqDetectCircles(const Image* image, const CircleDescriptor* circleDescriptor,
const CurveOptions* curveOptions,
const ShapeDetectionOptions* shapeDetectionOptions,
const ROI* roi, int* numMatchesReturned);
IMAQ_FUNC EllipseMatch* IMAQ_STDCALL
imaqDetectEllipses(const Image* image,
const EllipseDescriptor* ellipseDescriptor,
const CurveOptions* curveOptions,
const ShapeDetectionOptions* shapeDetectionOptions,
const ROI* roi, int* numMatchesReturned);
IMAQ_FUNC LineMatch* IMAQ_STDCALL
imaqDetectLines(const Image* image, const LineDescriptor* lineDescriptor,
const CurveOptions* curveOptions,
const ShapeDetectionOptions* shapeDetectionOptions,
const ROI* roi, int* numMatchesReturned);
IMAQ_FUNC RectangleMatch* IMAQ_STDCALL
imaqDetectRectangles(const Image* image,
const RectangleDescriptor* rectangleDescriptor,
const CurveOptions* curveOptions,
const ShapeDetectionOptions* shapeDetectionOptions,
const ROI* roi, int* numMatchesReturned);
IMAQ_FUNC FeatureData* IMAQ_STDCALL
imaqGetGeometricFeaturesFromCurves(const Curve* curves, unsigned int numCurves,
const FeatureType* featureTypes,
unsigned int numFeatureTypes,
unsigned int* numFeatures);
IMAQ_FUNC FeatureData* IMAQ_STDCALL
imaqGetGeometricTemplateFeatureInfo(const Image* pattern,
unsigned int* numFeatures);
IMAQ_FUNC int IMAQ_STDCALL
imaqLearnColorPattern(Image* image, const LearnColorPatternOptions* options);
IMAQ_FUNC int IMAQ_STDCALL imaqLearnGeometricPattern(
Image* image, PointFloat originOffset, const CurveOptions* curveOptions,
const LearnGeometricPatternAdvancedOptions* advancedLearnOptions,
const Image* mask);
IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL
imaqLearnMultipleGeometricPatterns(const Image** patterns,
unsigned int numberOfPatterns,
const String255* labels);
IMAQ_FUNC int IMAQ_STDCALL
imaqLearnPattern3(Image* image, LearningMode learningMode,
LearnPatternAdvancedOptions* advancedOptions,
const Image* mask);
IMAQ_FUNC PatternMatch* IMAQ_STDCALL
imaqMatchColorPattern(const Image* image, Image* pattern,
const MatchColorPatternOptions* options, Rect searchRect,
int* numMatches);
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);
IMAQ_FUNC GeometricPatternMatch2* IMAQ_STDCALL
imaqMatchMultipleGeometricPatterns(
const Image* image, const MultipleGeometricPattern* multiplePattern,
const ROI* roi, int* numMatches);
IMAQ_FUNC MultipleGeometricPattern* IMAQ_STDCALL
imaqReadMultipleGeometricPatternFile(const char* fileName,
String255 description);
IMAQ_FUNC PatternMatch* IMAQ_STDCALL
imaqRefineMatches(const Image* image, const Image* pattern,
const PatternMatch* candidatesIn, int numCandidatesIn,
MatchPatternOptions* options,
MatchPatternAdvancedOptions* advancedOptions,
int* numCandidatesOut);
IMAQ_FUNC int IMAQ_STDCALL imaqSetMultipleGeometricPatternsOptions(
MultipleGeometricPattern* multiplePattern, const char* label,
const CurveOptions* curveOptions,
const MatchGeometricPatternOptions* matchOptions,
const MatchGeometricPatternAdvancedOptions2* advancedMatchOptions);
IMAQ_FUNC int IMAQ_STDCALL imaqWriteMultipleGeometricPatternFile(
const MultipleGeometricPattern* multiplePattern, const char* fileName,
const char* description);
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);
IMAQ_FUNC int IMAQ_STDCALL imaqLearnGeometricPattern2(
Image* image, PointFloat originOffset, double angleOffset,
const CurveOptions* curveOptions,
const LearnGeometricPatternAdvancedOptions2* advancedLearnOptions,
const Image* mask);
IMAQ_FUNC PatternMatch* IMAQ_STDCALL
imaqMatchPattern3(const Image* image, const Image* pattern,
const MatchPatternOptions* options,
const MatchPatternAdvancedOptions* advancedOptions,
const ROI* roi, int* numMatches);
//============================================================================
// Overlay functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqClearOverlay(Image* image, const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqCopyOverlay(Image* dest, const Image* source, const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetOverlayProperties(const Image* image, const char* group,
TransformBehaviors* transformBehaviors);
IMAQ_FUNC int IMAQ_STDCALL
imaqMergeOverlay(Image* dest, const Image* source, const RGBValue* palette,
unsigned int numColors, const char* group);
IMAQ_FUNC int IMAQ_STDCALL imaqOverlayArc(Image* image, const ArcInfo* arc,
const RGBValue* color,
DrawMode drawMode, const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqOverlayBitmap(Image* image, Point destLoc, const RGBValue* bitmap,
unsigned int numCols, unsigned int numRows,
const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqOverlayClosedContour(Image* image, const Point* points, int numPoints,
const RGBValue* color, DrawMode drawMode,
const char* group);
IMAQ_FUNC int IMAQ_STDCALL imaqOverlayLine(Image* image, Point start, Point end,
const RGBValue* color,
const char* group);
IMAQ_FUNC int IMAQ_STDCALL imaqOverlayMetafile(Image* image,
const void* metafile, Rect rect,
const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqOverlayOpenContour(Image* image, const Point* points, int numPoints,
const RGBValue* color, const char* group);
IMAQ_FUNC int IMAQ_STDCALL imaqOverlayOval(Image* image, Rect boundingBox,
const RGBValue* color,
DrawMode drawMode, char* group);
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);
IMAQ_FUNC int IMAQ_STDCALL
imaqOverlayRect(Image* image, Rect rect, const RGBValue* color,
DrawMode drawMode, const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqOverlayROI(Image* image, const ROI* roi, PointSymbol symbol,
const UserPointSymbol* userSymbol, const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqOverlayText(Image* image, Point origin, const char* text,
const RGBValue* color, const OverlayTextOptions* options,
const char* group);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetOverlayProperties(Image* image, const char* group,
TransformBehaviors* transformBehaviors);
//============================================================================
// OCR functions
//============================================================================
IMAQ_FUNC CharSet* IMAQ_STDCALL imaqCreateCharSet(void);
IMAQ_FUNC int IMAQ_STDCALL imaqDeleteChar(CharSet* set, int index);
IMAQ_FUNC int IMAQ_STDCALL imaqGetCharCount(const CharSet* set);
IMAQ_FUNC CharInfo2* IMAQ_STDCALL
imaqGetCharInfo2(const CharSet* set, int index);
IMAQ_FUNC int IMAQ_STDCALL
imaqReadOCRFile(const char* fileName, CharSet* set, String255 setDescription,
ReadTextOptions* readOptions,
OCRProcessingOptions* processingOptions,
OCRSpacingOptions* spacingOptions);
IMAQ_FUNC ReadTextReport3* IMAQ_STDCALL
imaqReadText3(const Image* image, const CharSet* set, const ROI* roi,
const ReadTextOptions* readOptions,
const OCRProcessingOptions* processingOptions,
const OCRSpacingOptions* spacingOptions);
IMAQ_FUNC int IMAQ_STDCALL
imaqRenameChar(CharSet* set, int index, const char* newCharValue);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetReferenceChar(const CharSet* set, int index, int isReferenceChar);
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);
IMAQ_FUNC int* IMAQ_STDCALL
imaqVerifyPatterns(const Image* image, const CharSet* set,
const String255* expectedPatterns, int patternCount,
const ROI* roi, int* numScores);
IMAQ_FUNC int* IMAQ_STDCALL
imaqVerifyText(const Image* image, const CharSet* set,
const char* expectedString, const ROI* roi, int* numScores);
IMAQ_FUNC int IMAQ_STDCALL
imaqWriteOCRFile(const char* fileName, const CharSet* set,
const char* setDescription, const ReadTextOptions* readOptions,
const OCRProcessingOptions* processingOptions,
const OCRSpacingOptions* spacingOptions);
//============================================================================
// Geometric Matching functions
//============================================================================
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);
IMAQ_FUNC int IMAQ_STDCALL
imaqContourOverlay(Image* image, const Image* contourImage,
const ContourOverlaySettings* pointsSettings,
const ContourOverlaySettings* eqnSettings,
const char* groupName);
IMAQ_FUNC ContourComputeCurvatureReport* IMAQ_STDCALL
imaqContourComputeCurvature(const Image* contourImage, unsigned int kernel);
IMAQ_FUNC CurvatureAnalysisReport* IMAQ_STDCALL
imaqContourClassifyCurvature(const Image* contourImage, unsigned int kernel,
RangeLabel* curvatureClasses,
unsigned int numCurvatureClasses);
IMAQ_FUNC ComputeDistancesReport* IMAQ_STDCALL
imaqContourComputeDistances(const Image* targetImage,
const Image* templateImage,
const SetupMatchPatternData* matchSetupData,
unsigned int smoothingKernel);
IMAQ_FUNC ClassifyDistancesReport* IMAQ_STDCALL imaqContourClassifyDistances(
const Image* targetImage, const Image* templateImage,
const SetupMatchPatternData* matchSetupData, unsigned int smoothingKernel,
const RangeLabel* distanceRanges, unsigned int numDistanceRanges);
IMAQ_FUNC ContourInfoReport* IMAQ_STDCALL
imaqContourInfo(const Image* contourImage);
IMAQ_FUNC SetupMatchPatternData* IMAQ_STDCALL imaqContourSetupMatchPattern(
MatchMode* matchMode, unsigned int enableSubPixelAccuracy,
CurveParameters* curveParams, unsigned int useLearnCurveParameters,
const RangeSettingDouble* rangeSettings, unsigned int numRangeSettings);
IMAQ_FUNC int IMAQ_STDCALL imaqContourAdvancedSetupMatchPattern(
SetupMatchPatternData* matchSetupData,
GeometricAdvancedSetupDataOption* geometricOptions,
unsigned int numGeometricOptions);
IMAQ_FUNC ContourFitLineReport* IMAQ_STDCALL
imaqContourFitLine(Image* image, double pixelRadius);
IMAQ_FUNC PartialCircle* IMAQ_STDCALL
imaqContourFitCircle(Image* image, double pixelRadius, int rejectOutliers);
IMAQ_FUNC PartialEllipse* IMAQ_STDCALL
imaqContourFitEllipse(Image* image, double pixelRadius, int rejectOutliers);
IMAQ_FUNC ContourFitSplineReport* IMAQ_STDCALL
imaqContourFitSpline(Image* image, int degree, int numberOfControlPoints);
IMAQ_FUNC ContourFitPolynomialReport* IMAQ_STDCALL
imaqContourFitPolynomial(Image* image, int order);
//============================================================================
// Edge Detection functions
//============================================================================
IMAQ_FUNC FindCircularEdgeReport* IMAQ_STDCALL
imaqFindCircularEdge2(Image* image, const ROI* roi,
const CoordinateSystem* baseSystem,
const CoordinateSystem* newSystem,
const FindCircularEdgeOptions* edgeOptions,
const CircleFitOptions* circleFitOptions);
IMAQ_FUNC FindConcentricEdgeReport* IMAQ_STDCALL imaqFindConcentricEdge2(
Image* image, const ROI* roi, const CoordinateSystem* baseSystem,
const CoordinateSystem* newSystem,
const FindConcentricEdgeOptions* edgeOptions,
const ConcentricEdgeFitOptions* concentricEdgeFitOptions);
//============================================================================
// Morphology Reconstruction functions
//============================================================================
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);
IMAQ_FUNC int IMAQ_STDCALL
imaqMorphologyReconstruct(Image* dstImage, Image* srcImage,
const Image* markerImage, PointFloat* points,
int numOfPoints,
MorphologyReconstructOperation operation,
Connectivity connectivity, const ROI* roi);
//============================================================================
// Texture functions
//============================================================================
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);
IMAQ_FUNC int IMAQ_STDCALL imaqClassificationTextureDefectOptions(
ClassifierSession* session, WindowSize* windowOptions,
WaveletOptions* waveletOptions, void** bandsUsed, int* numBandsUsed,
CooccurrenceOptions* cooccurrenceOptions, unsigned char setOperation);
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);
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);
IMAQ_FUNC WaveletBandsReport* IMAQ_STDCALL
imaqExtractWaveletBands(const Image* srcImage,
const WaveletOptions* waveletOptions,
void* waveletBands, unsigned int numWaveletBands);
//============================================================================
// Regions of Interest Manipulation functions
//============================================================================
IMAQ_FUNC ROI* IMAQ_STDCALL imaqMaskToROI(const Image* mask, int* withinLimit);
IMAQ_FUNC ROIProfile* IMAQ_STDCALL
imaqROIProfile(const Image* image, const ROI* roi);
IMAQ_FUNC int IMAQ_STDCALL imaqROIToMask(Image* mask, const ROI* roi,
int fillValue, const Image* imageModel,
int* inSpace);
IMAQ_FUNC int IMAQ_STDCALL imaqTransformROI2(ROI* roi,
const CoordinateSystem* baseSystem,
const CoordinateSystem* newSystem);
IMAQ_FUNC LabelToROIReport* IMAQ_STDCALL
imaqLabelToROI(const Image* image, const unsigned int* labelsIn,
unsigned int numLabelsIn, int maxNumVectors,
int isExternelEdges);
//============================================================================
// Morphology functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqGrayMorphology(Image* dest, Image* source, MorphologyMethod method,
const StructuringElement* structuringElement);
//============================================================================
// Classification functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqAddClassifierSample(Image* image, ClassifierSession* session,
const ROI* roi, const char* sampleClass,
double* featureVector, unsigned int vectorSize);
IMAQ_FUNC ClassifierReportAdvanced* IMAQ_STDCALL
imaqAdvanceClassify(Image* image, const ClassifierSession* session,
const ROI* roi, double* featureVector,
unsigned int vectorSize);
IMAQ_FUNC ClassifierReport* IMAQ_STDCALL
imaqClassify(Image* image, const ClassifierSession* session, const ROI* roi,
double* featureVector, unsigned int vectorSize);
IMAQ_FUNC ClassifierSession* IMAQ_STDCALL
imaqCreateClassifier(ClassifierType type);
IMAQ_FUNC int IMAQ_STDCALL
imaqDeleteClassifierSample(ClassifierSession* session, int index);
IMAQ_FUNC ClassifierAccuracyReport* IMAQ_STDCALL
imaqGetClassifierAccuracy(const ClassifierSession* session);
IMAQ_FUNC ClassifierSampleInfo* IMAQ_STDCALL
imaqGetClassifierSampleInfo(const ClassifierSession* session, int index,
int* numSamples);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetColorClassifierOptions(const ClassifierSession* session,
ColorOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetNearestNeighborOptions(const ClassifierSession* session,
NearestNeighborOptions* options);
IMAQ_FUNC int IMAQ_STDCALL imaqGetParticleClassifierOptions2(
const ClassifierSession* session,
ParticleClassifierPreprocessingOptions2* preprocessingOptions,
ParticleClassifierOptions* options);
IMAQ_FUNC ClassifierSession* IMAQ_STDCALL
imaqReadClassifierFile(ClassifierSession* session, const char* fileName,
ReadClassifierFileMode mode, ClassifierType* type,
ClassifierEngineType* engine, String255 description);
IMAQ_FUNC int IMAQ_STDCALL
imaqRelabelClassifierSample(ClassifierSession* session, int index,
const char* newClass);
IMAQ_FUNC int IMAQ_STDCALL imaqSetParticleClassifierOptions2(
ClassifierSession* session,
const ParticleClassifierPreprocessingOptions2* preprocessingOptions,
const ParticleClassifierOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetColorClassifierOptions(ClassifierSession* session,
const ColorOptions* options);
IMAQ_FUNC NearestNeighborTrainingReport* IMAQ_STDCALL
imaqTrainNearestNeighborClassifier(ClassifierSession* session,
const NearestNeighborOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqWriteClassifierFile(const ClassifierSession* session, const char* fileName,
WriteClassifierFileMode mode,
const String255 description);
//============================================================================
// Measure Distances functions
//============================================================================
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);
//============================================================================
// Inspection functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL
imaqCompareGoldenTemplate(const Image* image, const Image* goldenTemplate,
Image* brightDefects, Image* darkDefects,
const InspectionAlignment* alignment,
const InspectionOptions* options);
IMAQ_FUNC int IMAQ_STDCALL imaqLearnGoldenTemplate(Image* goldenTemplate,
PointFloat originOffset,
const Image* mask);
//============================================================================
// Obsolete functions
//============================================================================
IMAQ_FUNC int IMAQ_STDCALL imaqRotate(Image* dest, const Image* source,
float angle, PixelValue fill,
InterpolationMethod method);
IMAQ_FUNC int IMAQ_STDCALL
imaqWritePNGFile(const Image* image, const char* fileName,
unsigned int compressionSpeed, const RGBValue* colorTable);
IMAQ_FUNC ParticleReport* IMAQ_STDCALL
imaqSelectParticles(const Image* image, const ParticleReport* reports,
int reportCount, int rejectBorder,
const SelectParticleCriteria* criteria, int criteriaCount,
int* selectedCount);
IMAQ_FUNC int IMAQ_STDCALL
imaqParticleFilter(Image* dest, Image* source,
const ParticleFilterCriteria* criteria, int criteriaCount,
int rejectMatches, int connectivity8);
IMAQ_FUNC ParticleReport* IMAQ_STDCALL
imaqGetParticleInfo(Image* image, int connectivity8, ParticleInfoMode mode,
int* reportCount);
IMAQ_FUNC int IMAQ_STDCALL
imaqCalcCoeff(const Image* image, const ParticleReport* report,
MeasurementValue parameter, float* coefficient);
IMAQ_FUNC EdgeReport* IMAQ_STDCALL
imaqEdgeTool(const Image* image, const Point* points, int numPoints,
const EdgeOptions* options, int* numEdges);
IMAQ_FUNC CircleReport* IMAQ_STDCALL
imaqCircles(Image* dest, const Image* source, float minRadius, float maxRadius,
int* numCircles);
IMAQ_FUNC int IMAQ_STDCALL
imaqLabel(Image* dest, Image* source, int connectivity8, int* particleCount);
IMAQ_FUNC int IMAQ_STDCALL
imaqFitEllipse(const PointFloat* points, int numPoints, BestEllipse* ellipse);
IMAQ_FUNC int IMAQ_STDCALL
imaqFitCircle(const PointFloat* points, int numPoints, BestCircle* circle);
IMAQ_FUNC Color IMAQ_STDCALL imaqChangeColorSpace(const Color* sourceColor,
ColorMode sourceSpace,
ColorMode destSpace);
IMAQ_FUNC PatternMatch* IMAQ_STDCALL
imaqMatchPattern(const Image* image, Image* pattern,
const MatchPatternOptions* options, Rect searchRect,
int* numMatches);
IMAQ_FUNC int IMAQ_STDCALL imaqConvex(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL
imaqIsVisionInfoPresent(const Image* image, VisionInfoType type, int* present);
IMAQ_FUNC int IMAQ_STDCALL
imaqLineGaugeTool(const Image* image, Point start, Point end,
LineGaugeMethod method, const EdgeOptions* edgeOptions,
const CoordinateTransform* reference, float* distance);
IMAQ_FUNC int IMAQ_STDCALL imaqBestCircle(const PointFloat* points,
int numPoints, PointFloat* center,
double* radius);
IMAQ_FUNC int IMAQ_STDCALL
imaqSavePattern(const Image* pattern, const char* fileName);
IMAQ_FUNC int IMAQ_STDCALL
imaqLoadPattern(Image* pattern, const char* fileName);
IMAQ_FUNC int IMAQ_STDCALL imaqTransformROI(ROI* roi, Point originStart,
float angleStart, Point originFinal,
float angleFinal);
IMAQ_FUNC int IMAQ_STDCALL imaqCoordinateReference(const Point* points,
ReferenceMode mode,
Point* origin, float* angle);
IMAQ_FUNC ContourInfo* IMAQ_STDCALL
imaqGetContourInfo(const ROI* roi, ContourID id);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetWindowOverlay(int windowNumber, const Overlay* overlay);
IMAQ_FUNC Overlay* IMAQ_STDCALL imaqCreateOverlayFromROI(const ROI* roi);
IMAQ_FUNC Overlay* IMAQ_STDCALL
imaqCreateOverlayFromMetafile(const void* metafile);
IMAQ_FUNC int IMAQ_STDCALL
imaqSetCalibrationInfo(Image* image, CalibrationUnit unit, float xDistance,
float yDistance);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetCalibrationInfo(const Image* image, CalibrationUnit* unit,
float* xDistance, float* yDistance);
IMAQ_FUNC int IMAQ_STDCALL
imaqConstructROI(const Image* image, ROI* roi, Tool initialTool,
const ToolWindowOptions* tools,
const ConstructROIOptions* options, int* okay);
IMAQ_FUNC int IMAQ_STDCALL imaqGetParticleClassifierOptions(
const ClassifierSession* session,
ParticleClassifierPreprocessingOptions* preprocessingOptions,
ParticleClassifierOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqZoomWindow(int windowNumber, int xZoom, int yZoom, Point center);
IMAQ_FUNC int IMAQ_STDCALL
imaqGetWindowZoom(int windowNumber, int* xZoom, int* yZoom);
IMAQ_FUNC int IMAQ_STDCALL
imaqParticleFilter3(Image* dest, Image* source,
const ParticleFilterCriteria2* criteria, int criteriaCount,
const ParticleFilterOptions* options, const ROI* roi,
int* numParticles);
IMAQ_FUNC ReadTextReport2* IMAQ_STDCALL
imaqReadText2(const Image* image, const CharSet* set, const ROI* roi,
const ReadTextOptions* readOptions,
const OCRProcessingOptions* processingOptions,
const OCRSpacingOptions* spacingOptions);
IMAQ_FUNC int IMAQ_STDCALL
imaqLearnPattern2(Image* image, LearningMode learningMode,
LearnPatternAdvancedOptions* advancedOptions);
IMAQ_FUNC int IMAQ_STDCALL
imaqConvolve(Image* dest, Image* source, const float* kernel, int matrixRows,
int matrixCols, float normalize, const Image* mask);
IMAQ_FUNC int IMAQ_STDCALL
imaqDivideConstant(Image* dest, const Image* source, PixelValue value);
IMAQ_FUNC int IMAQ_STDCALL
imaqDivide(Image* dest, const Image* sourceA, const Image* sourceB);
IMAQ_FUNC EdgeReport2* IMAQ_STDCALL
imaqEdgeTool3(const Image* image, const ROI* roi, EdgeProcess processType,
const EdgeOptions2* edgeOptions);
IMAQ_FUNC ConcentricRakeReport* IMAQ_STDCALL
imaqConcentricRake(const Image* image, const ROI* roi,
ConcentricRakeDirection direction, EdgeProcess process,
const RakeOptions* options);
IMAQ_FUNC SpokeReport* IMAQ_STDCALL
imaqSpoke(const Image* image, const ROI* roi, SpokeDirection direction,
EdgeProcess process, const SpokeOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqLearnPattern(Image* image, LearningMode learningMode);
IMAQ_FUNC int IMAQ_STDCALL imaqLookup(Image* dest, const Image* source,
const short* table, const Image* mask);
IMAQ_FUNC PatternMatch* IMAQ_STDCALL
imaqMatchPattern2(const Image* image, const Image* pattern,
const MatchPatternOptions* options,
const MatchPatternAdvancedOptions* advancedOptions,
Rect searchRect, int* numMatches);
IMAQ_FUNC int IMAQ_STDCALL imaqSetParticleClassifierOptions(
ClassifierSession* session,
const ParticleClassifierPreprocessingOptions* preprocessingOptions,
const ParticleClassifierOptions* options);
IMAQ_FUNC int IMAQ_STDCALL
imaqCopyCalibrationInfo(Image* dest, const Image* source);
IMAQ_FUNC int IMAQ_STDCALL
imaqParticleFilter2(Image* dest, Image* source,
const ParticleFilterCriteria2* criteria, int criteriaCount,
int rejectMatches, int connectivity8, int* numParticles);
IMAQ_FUNC EdgeReport* IMAQ_STDCALL
imaqEdgeTool2(const Image* image, const Point* points, int numPoints,
EdgeProcess process, const EdgeOptions* options, int* numEdges);
IMAQ_FUNC ContourID IMAQ_STDCALL
imaqAddRotatedRectContour(ROI* roi, RotatedRect rect);
IMAQ_FUNC Barcode2DInfo* IMAQ_STDCALL
imaqReadDataMatrixBarcode(const Image* image, const ROI* roi,
const DataMatrixOptions* options,
unsigned int* numBarcodes);
IMAQ_FUNC LinearAverages* IMAQ_STDCALL
imaqLinearAverages(const Image* image, Rect rect);
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);
IMAQ_FUNC CharInfo* IMAQ_STDCALL imaqGetCharInfo(const CharSet* set, int index);
IMAQ_FUNC ReadTextReport* IMAQ_STDCALL
imaqReadText(const Image* image, const CharSet* set, const ROI* roi,
const ReadTextOptions* readOptions,
const OCRProcessingOptions* processingOptions,
const OCRSpacingOptions* spacingOptions);
IMAQ_FUNC ThresholdData* IMAQ_STDCALL
imaqAutoThreshold(Image* dest, Image* source, int numClasses,
ThresholdMethod method);
IMAQ_FUNC ColorHistogramReport* IMAQ_STDCALL
imaqColorHistogram(Image* image, int numClasses, ColorMode mode,
const Image* mask);
IMAQ_FUNC RakeReport* IMAQ_STDCALL
imaqRake(const Image* image, const ROI* roi, RakeDirection direction,
EdgeProcess process, const RakeOptions* options);
IMAQ_FUNC int IMAQ_STDCALL Priv_ReadJPEGString_C(Image* image,
const unsigned char* string,
unsigned int stringLength);
#endif