MIL Help
MIL User Guide
Part 1: Customizing MIL Help, support, and trademarks
About MIL help
Customize MIL Help
How MIL help is divided
Help tips
Printing MIL help
Enable background printing
Under Windows (Microsoft Internet Explorer)
Under Linux (Mozilla Firefox)
Blue/red menu bar
Gray menu bar
MIL system-specific information
Navigation
In Windows and Linux
In Windows
In Linux
Font
Contacting customer support
Copyrights, acknowledgments, and patent notices
Part 2: MIL in a nutshell
Introduction
Introduction to MIL and MIL-Lite
MIL and MIL-Lite modules
MIL and the Intel SIMD technologies
Requirements to run MIL
Under Windows
Hardware requirements
Supported software
Software requirements for MIL Help
Hibernate and standby/sleep modes
Under Linux
Supported Linux distributions
Hardware requirements
Software requirements for MIL Help
Before you start
Installation
Under Microsoft Windows
Under Linux
General installation notes
MIL Control Center
MILConfig utility
Automatic updates
Matrox Intellicam
Testing the installation
Communicating properly
Compiling and linking
Compiler warnings for deprecated constants and functions
MIL User Guide and examples
Examples
MIL updates
Building an application
Organization of the MIL modules
Similar MIL functions in different modules
Processing and analysis modules
Interactive functionality
Mandatory allocations: allocating an application context and its systems
MIL application context
MIL system
Categories of MIL systems
Multiple systems
Remote systems
Allocating, displaying, and annotating an image buffer
Allocating an image buffer
Displaying an image buffer
Annotating an image on display
Grabbing images
Continuous grabbing and adjusting your camera
Sequential grabbing
An example
Pixel and real-world units
Pixel units and the pixel coordinate system
World units and world coordinate systems
Camera calibration
Child buffers, regions of interest, and fixturing
Child buffers
Regions of interest
Fixturing an object with the relative coordinate system
Dealing with color
Grabbing
Mapping grabbed data through a LUT
Displaying
Managing color images
Color processing and analysis
Converting color images to grayscale
Creating a child buffer from one of the three color bands
Copying one of the three color bands to a 1-band buffer
Color space conversion
Working with 3D
3D data containers and grabbing
Converting 3D data for processing and 3D display
Displaying 3D data
Processing 3D data
Calibration
Storing the output of 3D functions
Regions of interest
Fixturing
Using the defaults
Using the MILConfig utility to change your default settings
Using your defaults
Error reporting
Multiple systems
MIL custom data types, void pointers, extensions, and portability functions
MIL custom data types
Void pointers
Strings and arrays
MIL directory constants
M_MIL_USE_SAFE_TYPE extension
Portability functions
Combination values and macros
Combination values
Function-like macros
Event handling in MIL with hook-handler functions
MIL hook-type functions
Events and user data
Unhooking hook-handler functions
MIL hook information functions
Porting a 32-bit MIL application to MIL 64-bit
Modified functions
Retrieving a pointer to a modified function
Void pointers
M_MIL_USE_SAFE_TYPE extension
Project processor definitions
Working with files
Moving, sharing, and searching for files
Additional functionality for DMIL
Importing and exporting data
MIL file extension list
MIL under Linux
How to create a portable application
MIL with.NET and Python
MIL with.NET
MIL with Python
Using MIL add-on to Visual Studio
MIL menu and toolbar
F1 contextual help
Statement completion
Part 3: 2D processing and analysis
Fundamental image processing
Image processing overview
MIL and image processing
Steps to performing a typical application
A typical application
How to encode these steps
Image quality
Techniques to improve images
Averaging an input sequence
Denoise using spatial filtering and area open and close operations
Low-pass spatial linear filters
Rank filters
Adaptive filters
Area open and area close
Erosion and dilation
Erosion
Dilation
An example
Opening and closing
Image statistics
Generating a histogram
Calculating general statistics
Considering pixel values as unit vectors and calculating angular statistics
Coherence
Dominant angle
Dominant orientation
Calculating statistics across multiple images
Finding the image extremes
Locating events
Counting image differences
Projecting an image to one dimension
Calculating the integral of an image
Adjusting the intensity distribution
Window leveling
Window leveling using MimRemap()
Window leveling using MimLutMap()
Window leveling using MimMorphic()
Histogram equalization
Adaptive histogram equalization
Thresholding your images
Binarizing
Determining the threshold value from the histogram
Specifying the threshold value(s) manually
Clipping
Adaptive binarizing
Adaptive binarize contexts
Controlling an adaptive binarize context
Threshold with Niblack
Threshold with local mean
Threshold with Bernsen
Threshold with pseudomedian
Hysteresis
Controlling an adaptive binarize context that uses seeds
Threshold with geodesic reconstruction
Threshold with leveling
Threshold with toggling
Removing uneven lighting from grabbed images
How to remove non-uniform lighting from grabbed images
Adjusting image focus
Auto-focusing
Edge enhancement
Extending your depth of field
Enhancing and detecting edges
Edge enhancement
Sharpening edge enhancement
Edge detection
Horizontal and vertical edge detection
Laplacian-based edge detection
Gradient-based edge detection
Basic geometric transforms
Interpolation modes
Nearest-neighbor interpolation
Bilinear interpolation
Bicubic interpolation
Average interpolation
M_INTERPOLATE interpolation
Maximum/minimum interpolation
Mathematics with images
Basic mathematical operations
Computing the integral of an image
Mapping an image
Advanced image processing
Advanced image processing in general
Custom spatial filters
Finite Impulse Response (FIR) filters
Infinite Impulse Response (IIR) filters
An example
Custom morphological operations
Defining your own structuring element
Erosion and dilation
Using standard erosion and dilation
An example
Thinning and thickening
Top and bottom hat
Matching
Searching for hits or misses
Distance transform
City Block transform
Chessboard transform
Chamfer 3-4 transform
Watershed transformations
Using watersheds to separate touching objects
Using watersheds to separate objects from their background
Minimum grayscale variation of a catchment basin
Using marker images
Non-labeled marker images
Labeled marker images
Style of the watershed lines
Exact versus straight
Skipping the last level
Filling the source
Connectivity mapping
Using the connectivity code
Locating different types of points
Example
Labeling
Polar-to-rectangular and rectangular-to-polar transforms
Warping
First-order polynomial warpings
Perspective polynomial warpings
Polar-to-rectangular, rectangular-to-polar, and custom warpings
Interpolation modes
Points outside the source buffer
Transforming coordinate lists
Warping example
Finding dominant image orientations
Customizing your find orientation image processing context
Using the find orientation image processing results
An example
Establishing a correlation
Specialized image processing
Specialized image processing in general
Rearranging areas in your grabbed image
Deinterlacing
Discard algorithm on the entire image
Averaging algorithm on the entire image
Bob algorithm on the entire image
Adaptive algorithms
Correcting dead pixels
Removing CCD artifacts from grabbed images
How to perform a flat-field correction
Electrical bias (offset image or constant)
Thermal agitation (dark image or constant)
CCD sensitivity (flat image or constant)
Gain
Transform and denoise images using wavelets
Wavelet context
Filters
Operation mode
Wavelet transformations
Results and drawings
Wavelet denoising
Co-occurrence matrix statistics
Building the grayscale co-occurrence matrix
Tiling your image
Supported co-occurrence statistics
A co-occurrence example
Limiting the bit depth of your image
Fast Fourier Transform
Magnitude and phase
Filtering an image
Discrete Cosine Transform
Peak intensity detection and depth maps
Setting up peak intensity detection
Generating an uncorrected depth map
Multiple peaks in a single lane
Extraction of peaks from a multi-frame buffer
Augmentation
Steps to augment an image
Priority
Probability
Randomness and seeds
Blob analysis
Blob analysis overview
MIL and blob analysis
Steps to performing blob analysis
Identifying blobs
Segmenting the blob image
Preprocessing
Adjusting blob analysis processing controls
Controlling the image lattice
Pixel aspect ratio
Setting the blob identification mode and calculations on blobs
Returning partial results
Selecting blobs
Enabling features for calculation
Area and perimeter
Dimensions
Determining the shape
Finding the blob location and its bounding box
Points of the bounding box aligned with the pixel coordinate system
Minimum-area and minimum-perimeter bounding box points
Points with respect to the relative world coordinate system
Chained pixels
Moments
Location, length and number of runs
Blob reconstruction
Merging results
A simple merge
Border blobs
Inclusion state
Other remarks
Blob analysis example
Pattern matching
Pattern matching - in general
Steps to performing a pattern search
Basic concepts for the MIL Pattern Matching module
Defining and adding models to your Pattern Matching context
Automatic models
Regular models
Drawing models
Finding models when they are at an angle
Setting the angle of search
Determining the rotation tolerance of a model
Masking the model
Search constraints
Specifying the search mode
Specifying the number of matches
Setting the acceptance level
Setting the certainty level
Redefining the model's reference position
Selecting the search region
Positional accuracy
Selecting the speed setting
Preprocessing the Pattern Matching context
Speeding up the search
Choose the appropriate model
Adjust the search speed setting
Effectively choose the search region and search angle
Pattern matching algorithm (for advanced users)
Normalized correlation
Hierarchical search
Search region
Search heuristics
Subpixel accuracy
Pattern matching examples
Geometric Model Finder
Geometric Model Finder module
Steps to performing a model search
Basic concepts for the MIL Geometric Model Finder module
Types of Model Finder contexts
General geometric contexts
Controlled geometric contexts
Circle-shape contexts
Ellipse-shape contexts
Rectangle-shape contexts
Segment-shape contexts
Defining and adding models to your Model Finder context
Image-type models
Extracting edges
Synthetic models
Predefined-shape models
Predefined-shape models in specialized contexts
CAD-file models
Model size, units, and camera calibration when dealing with synthetic model in a geometric or geometric-controlled context
Model size, units, and camera calibration when dealing with synthetic model in a shape-specific context
Models defined from result buffers
Models defined from an Edge Finder result buffer
Models defined from a Model Finder result buffer
Models defined from two other models
Preprocessing
Model origin
Model indices and labels
Drawing and inquiring the model's active edges
Guidelines for choosing models
Make sure your images have enough contrast
Avoid poor geometric models
Be aware of ambiguous models
Nearly ambiguous models
Masking your model
Search targets
Finding models in an image
Finding models in an Edge Finder result buffer
Finding models in an M_SHAPE_SEGMENT Model Finder result buffer
Determining what is a match
Score, target score, and fit score
Model and target coverage
Fit error
Interpreting results
Position, angle, and scale
Enabling calculations specific to searching within a range
Search position and position range
Angle and angular range
Scale and scale range
Customizing search settings
Acceptance levels
Certainty levels
Expected number of occurrences
Reference axis
Reference axis origin
Reference axis angle
Forward and reverse transformation coefficients
Search settings specific to models in specialized shape contexts
Radii deviation tolerance
Aspect ratio and aspect ratio search constraint
Deviation tolerance for rectangles and segments
Angle for rectangles and segments
Advanced search settings
Polarity
Separation
Shared edges
Fit error weighting factor
Global context settings
Setting the search speed
Accuracy
Timing out your search
First and last levels
Speeding up the search
Adjust the search speed of the algorithm
Disable calculations specific to range search strategies
Define several models with different expected angles
Limit the position range
Limit the search scale
Specify the exact number of expected occurrences
Clean up your model and your target
Change the search levels
Use an appropriate context type for your search
Retrieving and analyzing results
Possible results
Drawing results
Camera calibration
Requirements
Models and their camera calibration context
Setting the aspect ratio control
Using transformation coefficients with calibrated images
Geometric Model Finder example
Edge Finder
MIL Edge Finder module
Edges and Edge Finder
Steps to extract and analyze edges
Basic concepts for the MIL Edge Finder module
Extracting the edges
Basics of edge extraction
Object contours versus line crests
Object contours
Line crests
How edges are calculated
Object contours
Line crests
Customizing the edge extraction settings
Filter type
Infinite Impulse Response (IIR) filters
Finite Impulse Response (FIR) filters
Smoothing for IIR filters
Thresholding
Edgel accuracy
Magnitude type
Filling the edge gaps
Candidate constraint
Region constraint
Polarity constraint
Continuity constraint
Edge features
Dimension features
Feret diameter
Circle fit and line fit
Ellipse fit
Location features
Advanced features
Convex perimeter
Tortuosity
Moment elongation
Grouped features
Calculating and retrieving results
Sorting keys
Retrieving the results
Selecting the results
Edge selection based on edge features
Edge selection based on the inter-relationship of edges
Edge selection based on the proximity of the edges to a point
Internal processing buffers
Derivatives
Angles
Magnitude
Source image and mask
Post-calculation
Restrictions
Annotating the results
Advanced edge extraction
Approximating the edges
Masking the edges
Cropping the edges
Advanced thresholding
Providing the image's derivatives
Putting data into an Edge Finder result buffer
Finding the closest edgels to a list of points
Location-based constraints
Edgel-based constraints
Optimizing edge extractions
Specify an area to process
Perform post-calculation
Optimize your control type settings
Adjust the accuracy
Building edge chains
Adjust the extraction scale
Specifying the IIR filter mode
Specify the smoothness
Specify the magnitude
Setting the threshold
Calculating the length of each edge
Limiting the search radius
Retrieving calibrated results
Interfacing with Geometric Model Finder
MIL Edge Finder example
Registration
MIL Registration module
Extended depth of field registration
Depth-from-focus registration
Photometric stereo registration
Basic concepts for the MIL Registration module
Extending your depth of field
Steps to performing an extended depth of field registration
Customizing your extended depth of field context
Registration process
Retrieving and using extended depth of field results
Extended depth of field example
Generating an index map from a scene
Steps to performing a depth-from-focus registration
Customizing your depth-from-focus context
Computing a depth-from-focus registration
Retrieving and using depth-from-focus results
Depth from focus example
Surface feature enhancement and defect detection using photometric stereo registration
Steps to performing a photometric stereo registration
Customizing your photometric stereo context
Remap factor
Performing the photometric stereo registration operation and retrieving results
Example of photometric stereo on non-moving objects
Photometric stereo registration of a moving object
Correlation stitching registration and mosaicing
Correlation-stitching registration and mosaicing overview
Correlation-stitching registration
Mosaicing and super-resolution
Steps to performing a correlation-stitching registration
Basic concepts for correlation-stitching registration
Correlation-stitching registration process
Registration elements and images for correlation-stitching
Setting the rough location of your images
Selecting an image's reference coordinate system
Specifying the type of transformation and its settings
Copying the rough location
Precision of the rough location and its effect on speed
Customizing your registration settings
Selecting the transformation type
Specifying the maximum allowable displacement
Skipping the optimization step
Specifying the minimum overlap between images
Accuracy
Setting the origin of an image's pixel coordinate system
Retrieving and analyzing results
Possible results
Using the results
Drawing results
Mosaicing and super-resolution
Positioning and scaling your mosaic in the destination image buffer
Mosaic composition in the overlapping regions
Mosaic composition using super-resolution
Correlation-stitching registration and mosaicing example
Optical character recognition
MIL OCR module
Steps to reading or verifying a string in an image
Basic concepts for the MIL OCR module
Guidelines for choosing context types
General OCR font context type
Constrained OCR font context type
Switching between the two
Deciding which OCR font context type to use
OCR font
User-defined MIL OCR fonts
Existing MIL OCR fonts
SEMI fonts
Using a SEMI font
Creating a SEMI font
Quality and scale are important
Visualizing
Erasing characters
Defining the target strings
Calibrating your font
Automatic font calibration
Manual font calibration
Setting appropriate processing controls
Blanks
Broken characters
Morphological filtering
Thickness and dots
Touching characters
Specifying other string information
Number of strings
String lengths
Angle
Positional variation
Constraints
Locating your text
Determining what is a match
Acceptance levels
Unrecognized characters
Retrieving and analyzing the results
A character
A string
A text
Understanding odd results
Hooking functions
Improving search speed
Optical character recognition example
String Reader
MIL String Reader module
Steps to reading a string in an image
Basic concepts for the MIL String Reader module
Creating and customizing the fonts for a font-based context
Adding and deleting fonts to the context
Adding and deleting characters to the font
Character representation
System characters
User-defined characters
Source image foreground
Normalize characters
Space size
Baseline
Sorting characters
Using a fontless context
Enabling and disabling characters
Customizing a fontless context
Adding and deleting string models to the context
Adding and deleting the string models
Preprocess and read
Saving and restoring
Target image foreground
Space
Space width
Maximum number of consecutive spaces
Number of strings to read
Degrees of freedom
String angle and character angle
String scale and character scale
String aspect ratio and character aspect ratio
Character's maximum baseline deviation
Skew angle
Rules for character placement
String size
Character constraints
How constraints are used with string models and fonts
Grammar rules
Global context settings
Minimum contrast
Speed
Timeout
Encoding
Scores and acceptances
String acceptance, certainty, and score
Character acceptance and score
Character similarity
Character homogeneity
String target acceptance, certainty, and score
Retrieving results and annotation
Annotation
Transformation coefficients
Formatted and non-formatted results
Fixing read problems using String Expert
String Reader example
SureDotOCR
MIL SureDotOCR module
Steps to read dot-matrix strings from an image
Basic concepts for the MIL SureDotOCR module
Fonts
Importing and exporting dot-matrix fonts
Content of SureDotOCR font files
Console-based font utilities
Dot-matrices in fonts and strings to read should be the same
Delete, control, and inquire about fonts and characters
Programmatically managing fonts and characters
String models
Required settings
Dot diameter
String box dimensions
Maximum and minimum number of characters
Optional settings
Foreground
Intensity and contrast
Acceptance and certainty
Rank
Number of strings to read
Space
String angle
Italic angle
Constraining string model positions with permitted characters
Reading space
Default permitted characters, and overriding them
General controls for the different positions in the string model
Managing the different string model positions (implicit or explicitly constrained)
Recommended conditions for optimal string reading
Reading a partial string
Reading only one line of a string with multiple lines
Reading strings with dissimilar qualities
Results and annotations
Results
Strings and formatted strings
Typical results to retrieve
Size of string results
Positional and dimensional results
Recommendations to improve results
Annotations
Timeout or stop
SureDotOCR example
Codes
MIL code module
Steps to reading, grading, or writing a code in an image
Basic concepts for the MIL Code module
Technical code information
Code context initialization modes
Supported code types
1D code types
2D code types
Composite codes
Predefined SEMI code contexts
Supported encoding schemes, sub-types, and error correction schemes by code type
Supported encoding schemes and sub-types
Supported encoding schemes for 1D code types (except GS1 Databar)
Supported encoding schemes and sub-types for the GS1 Databar code type
Supported encoding schemes for 2D code types
Supported encoding scheme for composite codes
Supported error correction schemes
Extended Channel Interpretation (ECI) encoding
Automatically detecting the code type
Training read and grade operation settings
Activating the control types to train
Setting a code context from trained results
Training images and verifying the training results
An example
Customizing read and grade operation settings
Reading and grading multiple occurrences
Child buffers
Regions of interest
Presearching
Foreground color
Setting the search speed
Timing out your search
Cell size and number
Search angular range
Dot spacing
String size
Reading EAN 14 code types
Reading GS1-128 code types
Distortion
Thresholding
Determining whether your code type supports GS1
Customizing write operation settings
Destination buffer size
Special characters
Foreground color
Cell size and number
Bearer bars
Writing EAN 14 code types
Writing GS1-128 code types
Verification process and grading your code
Preparing your code setup for verification
Attributes that can be graded
Understanding fixed pattern damage
Understanding modulation versus reflectance margin with 2D codes
Understanding decodability with 1D codes
Control types that are commonly set
Setting the aperture
Absolute aperture setting
MIL calculated aperture setting
Determining the pixel size of your code
Grading using the ISO/IEC TR 29158 standard (for DPM)
Retrieving results
Drawing results
A code example
Measurement
MIL Measurement module
Steps to finding and obtaining measurements of markers
Basic concepts for the MIL Measurement module
Markers
Marker types
A multiple-occurrence marker
Search algorithm
First derivative filter
Minimum variation
Retrieving and drawing edge information
Search region
Box search region
Setting the size and position of the search region
Using drawings to verify the search region placement
Marker orientation and search direction
Search region clipping
Setting the angle of the box search region
Multiple-angle search for a marker
Determining the rotation tolerance of a marker
Subregions of the box search region
Ring search region
Placing the ring search region
Subregions of the ring search region
Marker characteristics
Essential characteristics
Score characteristics
Edge markers: basic characteristics that should be specified
Polarity
Minimum edgevalue
Edge markers: advanced characteristics that can be specified
Essential characteristics
Maximum association distance of subedges
Minimum variation
Score characteristics
Strength score
Contrast score
Position score
Stripe markers: basic characteristics that should be specified
Polarity
Stripe markers: advanced characteristics that can be specified
Essential characteristics
Inclusion point
Maximum association distance of subedges
Score characteristics
Edges inside a stripe marker
Stripe width
Circle markers: basic and advanced characteristics that should or can be specified
Essential characteristics
Polarity
Maximum association distance of subedges
Score characteristics
Radius
Multiple-occurrence marker characteristics
Score characteristics
Setting limits
Using score characteristics
Final score
Lowest possible score and score-offset
Search results
Finding the marker and taking measurements
Edge measurements taken by the find operation
Line equation (mean line)
Angle
Length
Position and reference position
Intersection point
An edge's start, end, and width (based on the intensity profile)
An edge peak's maximum/minimum position and width (based on the first derivative)
Stripe measurements taken by the find operation
Line equation (mean line)
Angle
Length
Position and reference position
Stripe width
Maximum association distance of subedges
Circle measurements taken by the find operation
Position and reference position
Maximum association distance of subedges
Radius
Drawing
Measurements between two markers
Steps to taking measurements between two markers
Specifying the measurement context and control settings
Calculating with multiple-occurrence markers
Angle
Line equation and distance
Measurement examples
Circle markers and advanced settings
Bead
MIL Bead module
Steps to validate beads
Basic concepts for the MIL Bead module
Defining, training, and modifying bead templates
Template type
Foreground
Template path
Polyline that will be refined by a training image
Fixed polyline
Fixed circle or segment
Template from a 2D graphics list
Template width
Automatically establishing the width
Explicitly setting the width
Training box of the template
Smoothness and threshold
General operations with a template
Obtaining the closest template and vertex
Training status
When templates are not completely trained
Input units
Saving the training image
Summary of the main training settings
Verifying beads and retrieving results
Score and acceptance
Gaps
Search box
Fail warning
Position and offset
Width
Angle
Intensity
Status and other results
When you have a failing status
Drawing
Specifying the points
When drawing with a bead context
When drawing with a bead result
Specifying the drawing operation
Adjusting the templates and trained points with which to draw
Bead example
Metrology
MIL Metrology module
Steps to measure and validate expected features
Basic concepts for the MIL Metrology module
Features
Reference frame
Global frame
Local frame
Set position
(Physically) measured features
Metrology regions
Best fit, inner fit, and outer fit operations
(Physically measured) edgel features
Constructed features
Using metrology regions with constructed features
Basic construction (using points)
Cloning and copying
Fit
Operations for building point features
Operations for building line features
Parametrically constructed features
Multiple features
Geometric tolerances
Adding a geometric tolerance
Angularity
Area and perimeter
Concentricity
Distance
Length
Parallelism
Perpendicularity
Position
Radius
Roundness
Straightness
Using multiple geometric tolerances
Degrees of freedom
Active edgels and fitted edgels
Gradient angle
Edgel selection rank
Minimum and maximum fit settings
Copy feature edgels
Calculating and retrieving results
Retrieving the results
Status of features and geometric tolerances
Output frame
Annotating the results
Template reference
Using external edgels and points with constructed features
Adding edge chains (chained edgels)
Adding chained pixels (points)
Metrology example
Color processing and analysis
Color processing and analysis overview
Basic concepts for the MIL Color Analysis module
Color spaces and converting between them
Color spaces
RGB
HSL
HSV
CIELAB
Source color space
Converting between color spaces
Normalizing the RGB color space
Reference color space
Gamma correction
Relative color calibration
Steps to performing relative color calibration
Color-samples and color elements
Reference color-sample
Operation mode
Histogram-based
Color-to-color
Global mean variance
Color calibration intent
Computation option
Selecting strategy
Converting to grayscale
Extracting the luminance
Principal component projection
Using a principal component projection for converting to grayscale
Distance between colors
Differences in distances
Color distance types
Euclidean distance
Manhattan distance
Mahalanobis distance
Delta-E distance
Advanced CIE distance types
Choosing a distance type
Color matching
Steps to performing color matching
Basics of color matching
Color identification
Supervised color segmentation
Defining and adding color-samples and color elements
Area identifier image
Acceptance
Color-sample acceptance (for the color-sample's match score)
Relevance acceptance (for the target area's relevance score)
Distance tolerance
Tolerance mode
Operation mode and distance type
M_STAT_MIN_DIST operation mode
M_MIN_DIST_VOTE operation mode
M_HISTOGRAM_MATCHING and M_HISTOGRAM_VOTE operation modes
Basic results
Best-matched color-sample
Match status
Match score and relevance score
Outlier coverage and color-sample coverage
Color distance
Image results
Target areas
Color-samples and color elements
Background and outliers
Inverting colors
Advanced color matching settings and concepts
Color band specification settings
Distance normalization settings
Color space encoding
Performing the encoding
Histogram matching concepts
Color separation
Separation operation
Color statistics
Covariance
Principal components
Source label
Color processing and analysis examples
Example of relative color calibration operations
Example of color processing operations
Classification
MIL Classification module
Steps to performing classification
Basic work-flow
Basic concepts for the MIL Classification module
Classifiers
Datasets
Training
Predicting
Classifiers and how they work
CNN
Image classification
Tree ensemble
Feature classification
Datasets
Steps to build the datasets
Proper data collection, classes, and entries
Data foresight
Classes and labeling (the ground truth)
Organized data
Splitting the source dataset
Training dataset
Training dataset for a CNN
Training dataset for a tree ensemble
Development dataset
Testing dataset
An example of distributing data among datasets
Importing data from a CSV file to a dataset context
General CSV file format
Headers for authors
Headers for class definitions
Headers for entries
UUID
MIL_UUID utility macros for C users
Training: in general
Steps to train
Training fundamentals
Training: CNN
Predefined CNN classifiers to train
FCNet - small
FCNet - medium
FCNet - extra large
Selecting a predefined CNN
Input image sizes
Training modes
Complete
Transfer learning
Fine tuning
Summary and comparison
Training mode controls
Learning rate
Maximum number of epochs
Mini-batch size
Schedule type
Comparing default training mode controls
Training: tree ensemble
Feature importance
Modes
Training: analyze and adjust
Results
Recognizing a properly trained classifier
Expected trends and fluctuations
Examination
Adjustments
Bias and variance analysis
High training dataset error
High development dataset error
Beware of useless pursuits
Predicting
Steps to predict
Timeout and stop
Results
Drawing
Assisted labeling
Advanced techniques
Coarse segmentation
Performing coarse segmentation
Training images
Coarse segmentation results (classification map)
Drawing coarse segmentation results
Augmentation
Advanced analysis of your training
Confusion matrix
Score distribution
Improving a deployed network
Shuffling
Extracting
Preprocessing
Pitfalls
Data quality
Data distribution
Unbalanced data
Requirements, recommendations, and troubleshooting
Computer requirements for a predefined CNN classifier
Troubleshooting for a predefined CNN classifier
GPU, CUDA, and CuDNN installation
Classification examples
Part 4: 2D related information
Data buffers
Data buffers overview
Target system
Specifying the dimensions of a data buffer
Specifying the dimensions of a multi-frame image buffer
Data type and depth
Attribute
Memory locations
Using on-board memory
Using mappable buffers
Using child buffers, ROIs, or a copy to manipulate specific data areas
Child buffers
Specifying a region of interest
Processing a non-rectangular area when an ROI is not supported
Copying specific buffer areas
Managing data buffers
Copying data from one buffer to another
Cloning a data buffer
Transferring data between an array and a buffer
Loading a data buffer
Saving a data buffer
Performing operations on a sequence of image buffers
Controlling how color image buffers are stored
RGB buffers
RGB data formats
Binary buffers
YUV buffers
YUV16 Packed
YUV9 Planar
YUV12 Planar
YUV16 Planar
YUV24 Planar
Child YUV buffers
Accessing a MIL buffer directly
Mapping a data buffer to user-allocated memory
Pixel conventions and subpixel accuracy
Dealing with subpixel accuracy
Angle convention in MIL
Using images acquired with a Bayer color filter
Using MIL to convert the image
How the Bayer image gets converted
Bilinear interpolation algorithm
Adaptive algorithm
Average algorithm
Performing color correction
Performing gamma correction
White balancing your Bayer images
Buffer overscan region
Advanced memory management
MIL non-paged memory management driver
Large non-paged MIL buffers
On-Demand Mode
Lookup tables
Lookup tables in general
LUTs and data buffers
Loading and generating data into LUTs
Generating data directly into the LUT buffer
Loading LUTs with precalculated data
Using LUTs
Displaying an image
Overview
Supported hardware acceleration modes
Types of displays
Windowed display
Exclusive display
MILweb display
Displaying buffers of different data depths
M_BIT_SHIFT
M_AUTO_SCALE
M_MULTI_BYTES
M_TRANSPARENT
Displaying an image in a user-defined window
Using MdispSelectWindow()
Removing a buffer from the display
Displaying multiple buffers
Screen tearing
Panning and zooming
Explicitly specifying the amount to pan and zoom
Panning and zooming the display interactively
Annotating the displayed image non-destructively
Annotating images using the overlay mechanism
Overlay buffer behavior
Camera calibration and overlay considerations
Transparency (Keying)
Using a 2D graphics list
Using GDI annotations
Mapping 1-band images through a LUT upon display
Selecting the LUT to use for display
Restrictions when displaying using LUT
Generating graphics
MIL and graphics in general
Steps to performing annotations
2D graphics context
Default 2D graphics context
Specifying the camera calibration information
Drawing graphics
Drawing vectors
Drawing direction
Drawing graphics in a calibrated image
Drawing graphics with offset and zoom
Writing text
2D graphics list
Annotating the display with a 2D graphics list
Creating and modifying graphics interactively
Hooking a function to a 2D graphics list event
Creating graphics interactively
Details about creating graphics interactively
Rectangle
Arc, ellipse, and circle
Polygon
Polyline
Line
Grabbing with your digitizer
Cameras and video sources
Basic concepts for the MIL digitizers module
Data format
Device number
Using a frame grabber
Using a network camera
Using a Matrox Iris smart camera
Multiple cameras
Simultaneous acquisition
Data input channels of acquisition paths
Switching between cameras of the same type
Switching between cameras of different types
Ultra-fast channel switching
Channel locking and unlocking
Grabbing a single field
Line-scan cameras
Grabbing to the display
Grabbing a sequence of frames in real-time
Grabbing and processing
Grab mode
Multiple buffering
Grabbing large images
Reference levels, lookup tables, and scaling
Black and white reference levels
Color image reference levels
Mapping grabbed data through a LUT
Scaling
Grabbing with triggers
Simple triggered grab
Triggered grab with a camera in asynchronous reset mode
Triggering on level high or level low
Auto-focusing
Optimum focus search strategies
Bisection strategy
Refocus strategy
Scan-All strategy
Smart-scan strategy
Evaluate the focus indicator
Simulated digitizer
Using MIL with GenICam
Basic concepts when dealing with GenICam
Steps to view your GenICam-compliant camera's features
Using GenICam with Camera Link cameras
Calibrating your camera setup
Camera calibration - overview
Types of distortions
Camera calibration mechanism
Steps to performing a camera calibration
Basic concepts for the MIL Camera Calibration module
Coordinate systems
Absolute world coordinate system
Relative world coordinate system
Tool coordinate system
Camera coordinate system
Robot-base coordinate system
Pixel coordinate system
Uniform camera calibration and other camera calibration modes
Uniform mode
Piecewise linear interpolation mode
Perspective transformation mode
Tsai-based mode
Robotics mode
Camera calibration propagation
Processing calibrated images
Saving and reloading a calibrated image
Saving the calibration with the image file
Saving the associated camera calibration context in a separate file
Working with real-world units
Getting results in world units
Input settings in world units
Angle convention in MIL
Calibrating using calibration points from a grid
Requirements for the image of the grid
Requirements for the image of a circle grid
Requirements for the image of a chessboard grid
Defining the absolute coordinate system
Determining the grid's reference calibration point
Using the X- and Y-offsets
Inverting the orientation of the Y-axis
Calibrating with a partial chessboard grid
Defining the relative coordinate system directly
Calibrating a Tsai based camera calibration context when the camera is directly overhead
Calibrating using a fiducial grid
Requirements when calibrating your camera setup using a fiducial grid
Defining the absolute coordinate system with a fiducial grid
Determining the grid's reference calibration point
Orientation of the fiducial grid in the image
Specifying the position and orientation of the absolute coordinate system when calling McalGrid()
Inquiring camera calibration information after successful calibration
Calibrating multiple cameras or camera positions using a fiducial grid
Multi-fiducial grids
Calibrating using calibration points from a list
Inquiring about your camera calibration
Camera calibration status and errors
Camera calibration accuracy
Addressing calibration error due to problems finding calibration points
Addressing calibration error due to problems creating the mapping function
Inquiring pixel and world calibration points
Position and orientation of coordinate systems
Pinhole camera
Physically correcting an image
Generating lookup tables to correct images
Scale and position of the corrected image
Transformation cache
Moving coordinate systems to reflect camera setup changes
Types of transformation
Translation
Rotation
Transforming coordinate systems
Moving the camera after calibrating with a 3D-based camera calibration context
Special considerations concerning the tool and camera coordinate systems
Calibrating a camera setup that analyzes large objects
Single camera fixed on a movable tool (manipulator): tool coordinate system example
Single camera and movable object: relative coordinate system example
Several fixed cameras and fixed object: grid offset example
Propagating camera calibration information after performing a geometric operation
How coordinates and non-positional results are transformed
Transforming from the pixel to a specified world coordinate system
Transforming from the world to the pixel coordinate system
Transforming from one world coordinate system to another
Generating unit vectors from the pixel coordinate system (or vice versa)
Transforming coordinates from a depth map to a world coordinate system (or vice versa)
Using piecewise linear camera calibrations
Transforming Results
Generating a grid for calibration
Generating a grid using CalGenChessGrid
Specifying the physical setup
Specifying the grid's fiducials
Printing the grid
Adding printed fiducials to an existing chessboard grid
Fixturing in MIL
Fixturing in MIL
Steps for fixturing
Basic concepts for fixturing
Calibration and one or many fixtures
If you don't really need to work in real world units except for fixturing purposes
Multiple relative coordinate systems
Moving the relative coordinate system
Moving using a model
Moving using a metrology reference frame
Moving using a position and angle expressed in a specified relative coordinate system
Moving using a position and angle that are with respect to the absolute coordinate system
Moving using a point and direction point that are with respect to the relative coordinate system
Moving the relative coordinate system in 3D
Copying the new relative coordinate system to other images
Fixturing offset
Fixturing offset for convenience
Moving the reference location prior to searching
Moving the relative coordinate system to a logical offset from a reference location
Fixturing offset to decouple the reference location from the object to analyze
Establishing the positional and angular offset for the fixturing offset object
After fixturing
Inputting values in real-world units
Results in world units
Restricting processing/analysis to a region of interest defined in world units
Transforming your images after fixturing
JPEG and JPEG2000 compression
JPEG and JPEG2000 compression overview
JPEG lossless
JPEG lossy
Interlaced JPEG
JPEG2000 lossless and lossy
JP2 standard
Control options
General steps
Compression
Decompression
Sequences
Multi-band buffers, color formats, and control settings - JPEG
Multi-band buffers, color formats, and control settings - JPEG2000
Application-specific markers
Controlling a JPEG compression
JPEG lossless
Predictive coding
Huffman encoding
JPEG lossy
Restart markers
JPEG2000
Preparation of source image
Discrete wavelet transform (DWT)
Quantization
Bit-plane decomposition
Arithmetic encoding
Post-processing
Improving results
Working with tables
Inquiring values in default tables
Using your own table
Sequences
MIL Sequences module overview
Steps to performing a sequence operation
Basic concepts for the MIL Sequences module
Setting your inputs and outputs
Compressing and decompressing a sequence of images
Inputs and outputs of an H.264 compression or decompression
Controlling an H.264 compression
Frame rate
Resolution
Bit rate
Compression level
Compression profile
Compression priority
Group-of-pictures size
Guidelines for setting H.264 compression controls
Part 5: 3D processing and analysis
3D processing and analysis overview
MIL 3D processing and analysis overview
What you need to know
Basic concepts for 3D processing and analysis
3D analysis using planar views of an object
3D analysis using planar views of an object overview
Moving the relative coordinate system to account for height
Measuring two features displaced by a known height
Accounting for thickness of camera calibration grids in 3D setups
Establishing the position and orientation of an object
Using a grid
Obtaining results
Performing stereo vision triangulation
Matching common points to perform stereo vision triangulation
3D image processing
3D Image Processing module overview
Basic concepts for 3D image processing
Moving or scaling a point cloud or 3D geometry
Translation
Rotation
Scaling
Transforming points using a transformation matrix
Working with points in a point cloud
Cropping or masking points
Cropping using a 3D geometry
Cropping using a mask image
Specifying the organization type
Defining which points to use
Specifying a bounding box excluding outliers
Specifying the extent box
Removing invalid points
Merging point clouds
Calculating unit normal vectors
Surface reconstruction
Sampling a point cloud
Subsampling
Surface sampling
Organized and unorganized point clouds
Calculating statistics on a point cloud or depth map
Steps to performing a statistics calculation
Determining the bounding box of a point cloud
Determining the centroid
Determining distances between points
Determining numbers of points
Analyzing the profile of a 3D cross-section
Taking a profile
Setting the slicing plane according to a reference object
Analyzing a profile
Generating fully corrected depth and intensity maps
Steps to create a depth map
Changing a depth map by rotating or transforming 3D points
Defining the points to use
Estimating a recommended depth map image buffer size
Establishing the world-to-pixel scale and the world-to-gray level scale of the depth map
How to calibrate the image buffer
Specifying data placement in the destination image buffer
Automatically setting the pixel aspect ratio
Specifying the depth map intensity scale
Saturating or ignoring points outside the depth map grayscale range
Generating the intensity map
Adding color to a depth map for better visualization
Gradually adding data to the depth map and intensity map image buffers
Point cloud projection example
Filling missing data points (gaps)
Filling mode
Filling operations
Linear interpolation
Propagation of one of the boundary values
Phenomena causing missing data
Examples
Performing arithmetic operations on depth maps
Using arithmetic for defect detection
Subtraction considering neighborhood pixel distances
Constraints on depth map operands and how to handle destination calibration
3D metrology
MIL 3D Metrology module
Basic concepts for the MIL 3D Metrology module
Calculating distance measurements and statistics
Steps to calculate distance measurements and statistics
How distances are calculated
Point cloud as a reference
Depth map as a reference
3D geometry as a reference
Performing 3D fitting
Steps to perform a fitting operation
Specifying points or pixels not to use for fitting
Using a fitted geometry to mask points from a point cloud
Calculating a volume
Specifying a reference object
Delimiting the volume to calculate
Considerations
How the volume of a meshed point cloud with holes is calculated
3D registration
MIL 3D Registration module
Steps to perform the pairwise 3D registration operation
Basic concepts for the MIL 3D Registration module
3D Registration using the Iterative Closest Point algorithm
Preregistration
Preregistration with a transformation matrix
Preregistration with centroids
Specifying the reference point cloud
Stop conditions
Merging point clouds and retrieving registration results
Retrieving specific registration results
3D Registration example
Detecting defects
Merging point clouds
Part 6: 3D related information
3D Containers
3D containers overview
Basic concepts for 3D containers
Components
Component type
Group, region, and source ID
Component criterion
Preparing a container for display or processing
3D settings for the range or disparity component
Compensating for missing or ambiguous information
Requirements for a 3D-processable container
Requirements for a 3D-displayable container
Child containers
Hooking to containers
Using components individually
Safe practices for working with components directly
Child buffers
Created components
Ensuring that components are not reallocated
Grabbing from 3D sensors
Grabbing from 3D sensors overview
Steps to grab from compliant 3D sensors
Basic concepts for grabbing from 3D sensors
Working with compliant cameras
Displaying grabbed 3D data
Processing grabbed 3D data
Working with non-compliant cameras
Grabbing data from non-compliant 3D sensors
Formatting grabbed data for use with MbufConvert3d
Layout of data in a component
Range
Disparity
Confidence
Intensity
Reflectance
Normals
Examples
3D Display and graphics
3D display and graphics overview
Steps to display 3D data
Basic concepts for 3D display
Color and display settings for 3D data
Point size
Opacity
Coloring points
Dynamic range
Applying LUTs
Meshed point cloud containers
Manipulating the view
Fundamental view settings
Fundamental settings that control the view position and rotation
Alternative view settings
View orientation and distance
Azimuth, elevation, roll, and distance
Orbit, up-vector, and distance
View box
View matrix
Other 3D display controls
Changing the background
Rotation indicator
Auto-rotation
Annotating the 3D display
Types of graphics
Positions of 3D graphics
Display settings for 3D graphics
Clipping 3D graphics that extend infinitely
Working with texture images of polygon 3D graphics
Texture mapping
3D graphics lists
Structure of a 3D graphics list
Controlling settings for multiple 3D graphics
Copying multiple 3D graphics
Removing multiple 3D graphics
Changing the positions of multiple 3D graphics
Setting defaults for 3D graphics added to a 3D graphics list
Using the 3D Geometry module
3D Geometry module overview
Defining 3D geometries
Steps to defining and using a 3D geometry object
3D geometry objects
Defining transformation matrix objects
Changing the working coordinate system
Transforming coordinates
Types of transformation
Translation
Rotation
Scaling
Fixturing
Composition
Fixturing in 3D
How to fixture in 3D
Basic steps for fixturing
Fixturing to a known position
Fixturing to a reference object
Fixturing to a plane
Applying a transformation matrix
3D reconstruction using laser line profiling
3D reconstruction using laser line profiling overview
Steps to creating a cloud of 3D points using laser line profiling
Basic concepts for the MIL 3D Reconstruction module using laser line profiling
Configuring the laser line profiling setup
3D reconstruction physical setup
Camera angle requirement
Sheet of light and conveyor requirements
3D reconstruction context setup - laser line characteristics
Using a 3D camera capable of laser line extraction
Inspecting laser line extraction
Optimizing frame rate, throughput, and processing time using smaller images
Calibrating your 3D reconstruction setup to create a point cloud
Calibrating to create a point cloud
Inspecting laser line calibration
Specifying offsets when the 3D reconstruction calibration image is a subset of the grabbed image
Runtime scanning settings
3D coordinate systems and the coordinates of a point cloud
Understanding the laser line coordinate system
Understanding the relative coordinate system in a 3D result buffer
Retrieving the coordinates of the points in a point cloud
Transforming the relative coordinate system
Results displacement mode
Using 3D cameras that output uncorrected depth maps
Calibrating a 3D reconstruction setup that uses a 3D camera
Laser data format
Multiple camera-laser pairs
Multiple camera-laser pair setup
Two lasers one camera
Calibrating the 3D reconstruction contexts in a multiple camera-laser pair setup
Partially corrected depth maps
Calibrating for a partially corrected depth map
Generating a partially corrected depth map
Inspecting the calibration state of a 3D reconstruction context
MIL 3D reconstruction example
Part 7: Communication
I/O signals and communicating with external devices
Communicating with external devices using I/O signals overview
Steps to use I/O signals
Using Matrox Intellicam's Feature Browser
Basic concepts when dealing with I/O signals
Using input signals
Polling the state of input signals
Using interrupts with input signals
Using input signals as triggers
Setting up an output signal
Routing a source to an output signal
User-bits and controlling the state of output signals
Timers and coordinating events
Timers in the advanced I/O engine
Delay and duration
Timer modes: triggered or continuous
Steps to set up timers
Timer clock source
Using quadrature input from a rotary encoder
Interpreting the direction of movement from the Gray code
Using the rotary decoder's counter
Using the rotary decoder's output to trigger a timer or a grab
Pixel aspect ratio
Using I/O command lists
Steps to use an I/O command list
Scheduling I/O commands
Commands that can be added to the I/O command list
Using an I/O command list latch
Examples
Always grabbing an image when the conveyor belt is at a given position
Parts traveling along a conveyor belt that are fixed in position example
Different parts traveling along a conveyor belt that are ejected by different devices example
Parts traveling along a conveyor belt that are not fixed in position example
Industrial communication
Industrial communication overview
Steps to perform industrial communication
Basic concepts for the MIL Industrial Communication module
Industrial communication with robots
Calibration considerations
Calibration by directly mapping the robot coordinate system to the pixel coordinate system
Calibration by indirectly mapping the robot and pixel coordinate systems to the world coordinate system
Communicating with a robot
Orientation conventions
Industrial communication with PROFINET
Setting up the environment
Receiving and sending data to the controller
Memory modules and their data fields
Industrial communication with Modbus
Setting up the environment to use the local computer as a Modbus slave
Receiving and sending data to the controller as a Modbus slave
Data tables and their data fields
Setting up the environment to use the local computer as a Modbus controller
Reading and writing to slave devices as a Modbus controller
Industrial communication with EtherNet/IP
Setting up the environment
Receiving and sending data to the controller
Assemblies and their data fields
Explicit communication with another device on an EtherNet/IP network
Industrial communication with CC-Link IE Field Basic
Setting up the environment
Receiving and sending data to the controller
Data tables and their data fields
Part 8: Other programming languages, APIs, and operating systems
Using MILweb to monitor your application
MILweb overview
Capabilities of MILweb client applications
Basic concepts for MILweb
Fundamentals for creating your MILweb client application
Conventions for referring to MILweb functions and constants
MILweb allocations and functions
Publishing MIL objects
Connecting to a MILweb server application
MILweb displays
Size of a MILweb display
Interacting with a display
Hooking to display events
MILweb messages
Sending messages from your MILweb server application
Sending messages from your MILweb client application
Creating a MILweb client application with JavaScript
JavaScript primer for C/C++ MIL developers
MIL primer for JavaScript developers
Writing a MILweb client application in JavaScript
Differences between MIL and MILweb
Accessing MILweb server applications and published MIL objects
Returned values in MILweb
Running your JavaScript MILweb client application
Deploying your MILweb client application
Browser compatibility
JavaScript MILweb function reference
MilWeb.Mapp
MilWeb.MappCloseConnection
MilWeb.MappControl
MilWeb.MappGetHookInfo
MilWeb.MappHookFunction
MilWeb.MappInquire
MilWeb.MappInquireConnection
MilWeb.MappOpenConnection
MilWeb.Mdisp
MilWeb.MdispControl
MilWeb.MdispGetHookInfo
MilWeb.MdispHookFunction
MilWeb.MdispInquire
MilWeb.MdispMessage
MilWeb.MdispPan
MilWeb.MdispSelectWindow
MilWeb.MdispZoom
MilWeb.Mobj
MilWeb.MobjGetHookInfo
MilWeb.MobjHookFunction
MilWeb.MobjInquire
MilWeb.MobjMessageRead
MilWeb.MobjMessageWrite
Creating a MILweb client application with C/C++
Writing a MILweb client application in C/C++
Presenting and interacting with MIL displays
Presenting a display
Making a presented display interactive
C/C++ MILweb function reference
MilWeb::Mapp
MilWeb::MappCloseConnection
MilWeb::MappControl
MilWeb::MappGetHookInfo
MilWeb::MappHookFunction
MilWeb::MappInquire
MilWeb::MappInquireConnection
MilWeb::MappOpenConnection
MilWeb::Mdisp
MilWeb::MdispControl
MilWeb::MdispGetHookInfo
MilWeb::MdispHookFunction
MilWeb::MdispInquire
MilWeb::MdispMessage
MilWeb::MdispZoom
MilWeb::Mobj
MilWeb::MobjGetHookInfo
MilWeb::MobjHookFunction
MilWeb::MobjInquire
MilWeb::MobjMessageRead
MilWeb::MobjMessageWrite
Using MIL with Python
MIL with Python overview
Importing required libraries and distribution of a MIL application in Python
Importing required libraries
Distribution
MIL functions and constants in Python
Data types
Pointers
Using strings in Python
Freeing objects in MIL
MIL hook-type functions in Python
MIL Python example
Using MIL with.NET
MIL with.NET overview
Installing and upgrading the MIL.NET wrapper
Requirements and installation notes
Upgrading to new versions of Matrox.MatroxImagingLibrary.dll
Building a.NET application using MIL
MIL inclusion procedure for.NET
32-bit and 64-bit applications
Calling MIL functions and constants in.NET
Disabling compiler warnings in .NET
Procedure for disabling compiler warnings in C#
Procedure for disabling compiler warnings in Visual Basic
Data types in MIL with.NET
MIL_ID and MIL_INT
Data type equivalents
Using.NET strings with MIL
Memory management while using MIL with.NET
M...Free() versus finalizers
Invoking the garbage collector
Pinning memory to be used by MbufCreate...()
Delegates and MIL hook-type functions
Lifetime of delegates passed to MIL hook-type functions
Passing user data to a user-defined function
Error handling
MIL with.NET example
Using MIL with DirectShow
DirectShow capture filter for MIL
IMilCapture interface
IMilCapturePin interface
Using MIL under Linux
Working with Linux
Creating an interactive redistribution for your custom DVD under Linux
Silent redistribution under Linux
Part 9: Miscellaneous
Distributed MIL
Distributed MIL overview
Setup and installation
Client-server architecture
Basic concepts for Distributed MIL
Preparing computers for Distributed MIL
Setting up the Distributed MIL server on remote computers
Managing network connections and ports
Cluster modes and port range
Firewall configuration
Licensing considerations
Controlling configuration
Steps to create a Distributed MIL controlling configuration
Allocating DMIL remote systems
Allocating a remote system by default
Execution of MIL functions on remote systems
Remote displays
Default values on remote systems
Files on remote systems
Asynchronous calls
Multi-threading
Executing a user-defined function on the remote system
Monitoring configuration
Steps to create a Distributed MIL monitoring configuration
Cluster manager
Publishing application
Monitoring application
Using published MIL identifiers
Displaying a published image buffer
Message mailboxes
Message mailbox allocation and use
Message mailbox operation modes
Steps to using a message mailbox
Distributed MIL on your local computer
Developing and debugging a Distributed MIL application
Using a 32-bit MIL application to access Matrox hardware under a 64-bit operating system
Steps to use Distributed MIL on your local computer
Best practice
Hosting files on a MIL HTTP server
Hosting files on a MIL HTTP server
Development and debugging tools and techniques
Matrox Profiler and trace logs
Trace logs with Matrox Profiler
Generating a new trace log with Matrox Profiler
Reading a trace log
Trace logs without Matrox Profiler
Advanced trace log options
Trace logs in a multi-thread environment
Trace-enabled/disabled blocks of code
Trace markers
Advanced memory tracing
User-defined trace log
Generating a new trace log under Linux
Using Matrox Profiler in a Distributed MIL environment
Interactive log
Multi-processing, multi-core, and multi-threading
Multi-processing
Transparent multi-core use
Setting the maximum number of CPU cores per thread
Controlling where and how the processing occurs
Core affinity
Priority
NUMA Support
Basic steps to using multi-core processing
Multi-threading
MIL and multi-threading
Creating threads using MIL
Thread execution
Synchronization and mutex
Thread control
Using image processing and analysis contexts in multiple threads
Thread-safety in MIL
Error reporting
Using MIL with a Processing FPGA
Using MIL with a Processing FPGA - overview
Processing an image with a Processing FPGA
Steps to develop a function that performs an operation using a Processing FPGA
Primitive function and execution of operation by PU
Source and destination image buffers
Setting and retrieving results from PU registers
Cascaded and parallel processing
Cascaded processing operation
Parallel processing operation
Issuing commands to the Processing FPGA and retrieving results
Developing a user-defined MIL function to run the primitive function
Master function and slave function and execution of operation specified by command context
Operation synchronization
The MIL function development module
MIL Function Development module
Steps to create a user-defined MIL function
Basic concepts for the MIL Function Development module
Characteristics of a user-defined MIL function
Remote and local functions
Asynchronous and synchronous functions
Modules, opcodes, and error handling
Error handling in slave functions
Current and global errors
Logging errors
Print error settings
Hook functions in a slave function
Parameter registration and return values
MfuncParam and MfuncParamValue
Return values
Master/slave dynamics on a remote system
Compilation
Executing the slave function on a remote system
Using a Library file in a Distributed MIL cluster
Associating a MIL identifier with a user-defined object
Script-based user-defined MIL function
Distribution and licensing
Distribution of MIL applications
Redistributing MIL or MIL-Lite DLL files and device drivers with your application
Redistributing directly from the MIL or MIL-Lite DVD
Redistributing using your own setup program
Determining the required license for your application
Interactive redistribution using your custom DVD
Using the default MIL redistribution DVD
Building a MIL redistribution DVD with limited content
Silent redistribution
Redistributing MIL updates and service packs
Uninstalling
MIL and MIL-Lite licenses
MIL provisional licenses
MIL evaluation license
MIL temporary license
MIL permanent licenses
MIL development license
MIL runtime license
Summary of activation procedures for all MIL licenses
MIL-Lite licenses
MIL-Lite development license
MIL-Lite supplemental license
Summary of MIL and MIL-Lite licenses
Dongles for activating runtime and development licenses
Software license-key for activating runtime license
Upgrading a MIL runtime license
Hiding the MIL licensing process
Generating the lock code
Getting a software license-key
Entering the software license-key
Protecting your own MIL software application using a Matrox hardware fingerprint
MIL Reference
app
MappAlloc
MappAllocDefault
MappCloseConnection
MappControl
MappControlMp
MappFileOperation
MappFree
MappFreeDefault
MappGetError
MappGetHookInfo
MappHookFunction
MappInquire
MappInquireConnection
MappInquireMp
MappOpenConnection
MappTimer
MappTrace
bead
MbeadAlloc
MbeadAllocResult
MbeadControl
MbeadDraw
MbeadFree
MbeadGetNeighbors
MbeadGetResult
MbeadInquire
MbeadRestore
MbeadSave
MbeadStream
MbeadTemplate
MbeadTrain
MbeadVerify
blob
MblobAlloc
MblobAllocResult
MblobCalculate
MblobControl
MblobDraw
MblobFree
MblobGetLabel
MblobGetResult
MblobInquire
MblobLabel
MblobMerge
MblobReconstruct
MblobRestore
MblobSave
MblobSelect
MblobStream
MblobTransform
buf
MbufAlloc1d
MbufAlloc2d
MbufAllocColor
MbufAllocComponent
MbufAllocContainer
MbufAllocDefault
MbufBayer
MbufChild1d
MbufChild2d
MbufChildColor2d
MbufChildColor2dClip
MbufChildColor
MbufChildContainer
MbufChildMove
MbufClear
MbufClearCond
MbufClone
MbufControl
MbufControlArea
MbufControlContainer
MbufControlFeature
MbufConvert3d
MbufCopy
MbufCopyClip
MbufCopyColor2d
MbufCopyColor
MbufCopyComponent
MbufCopyCond
MbufCopyMask
MbufCreate2d
MbufCreateColor
MbufCreateComponent
MbufDiskInquire
MbufExport
MbufExportSequence
MbufFree
MbufFreeComponent
MbufGet1d
MbufGet2d
MbufGet
MbufGetArc
MbufGetColor2d
MbufGetColor
MbufGetHookInfo
MbufGetLine
MbufGetList
MbufHookFunction
MbufImport
MbufImportSequence
MbufInquire
MbufInquireContainer
MbufInquireFeature
MbufLink
MbufLoad
MbufPut1d
MbufPut2d
MbufPut
MbufPutColor2d
MbufPutColor
MbufPutLine
MbufPutList
MbufRestore
MbufSave
MbufStream
MbufSetRegion
MbufTransfer
cal
McalAlloc
McalAssociate
McalControl
McalDraw
McalDraw3d
McalFixture
McalFree
McalGetCoordinateSystem
McalGrid
McalInquire
McalInquireSingle
McalList
McalRelativeOrigin
McalRestore
McalSave
McalSetCoordinateSystem
McalStream
McalTransformCoordinate
McalTransformCoordinate3dList
McalTransformCoordinateList
McalTransformImage
McalTransformResult
McalTransformResultAtPosition
McalUniform
McalWarp
class
MclassAlloc
MclassAllocResult
MclassControl
MclassControlEntry
MclassCopy
MclassCopyResult
MclassDraw
MclassExport
MclassFree
MclassGetHookInfo
MclassGetResult
MclassHookFunction
MclassImport
MclassInquire
MclassInquireEntry
MclassPredict
MclassPreprocess
MclassRestore
MclassSave
MclassSplitDataset
MclassStream
MclassTrain
code
McodeAlloc
McodeAllocResult
McodeControl
McodeDetect
McodeDraw
McodeFree
McodeGetResult
McodeGrade
McodeInquire
McodeModel
McodeRead
McodeRestore
McodeSave
McodeStream
McodeTrain
McodeWrite
col
McolAlloc
McolAllocResult
McolControl
McolDefine
McolDistance
McolDraw
McolFree
McolGetResult
McolInquire
McolMask
McolMatch
McolPreprocess
McolProject
McolRestore
McolSave
McolSetMethod
McolStream
McolTransform
com
McomAlloc
McomControl
McomFree
McomInquire
McomRead
McomSendPosition
McomWaitPositionRequest
McomWrite
dig
MdigAlloc
MdigControl
MdigControlFeature
MdigFocus
MdigFree
MdigGetHookInfo
MdigGrab
MdigGrabContinuous
MdigGrabWait
MdigHalt
MdigHookFunction
MdigInquire
MdigInquireFeature
MdigProcess
disp
MdispAlloc
MdispControl
MdispFree
MdispGetHookInfo
MdispHookFunction
MdispInquire
MdispLut
MdispPan
MdispSelect
MdispSelectWindow
MdispZoom
dmr
MdmrAlloc
MdmrAllocResult
MdmrControl
MdmrControlFont
MdmrControlStringModel
MdmrDraw
MdmrExportFont
MdmrFree
MdmrGetResult
MdmrImportFont
MdmrInquire
MdmrInquireFont
MdmrInquireStringModel
MdmrName
MdmrPreprocess
MdmrRead
MdmrRestore
MdmrSave
MdmrStream
edge
MedgeAlloc
MedgeAllocResult
MedgeCalculate
MedgeControl
MedgeDraw
MedgeFree
MedgeGetNeighbors
MedgeGetResult
MedgeInquire
MedgeMask
MedgePut
MedgeRestore
MedgeSave
MedgeSelect
MedgeStream
fpga
MfpgaCommandAlloc
MfpgaCommandControl
MfpgaCommandFree
MfpgaCommandInquire
MfpgaCommandQueue
MfpgaControl
MfpgaGetHookInfo
MfpgaGetRegister
MfpgaHookFunction
MfpgaInquire
MfpgaLoad
MfpgaSetDestination
MfpgaSetLink
MfpgaSetRegister
MfpgaSetSource
func
MfuncAlloc
MfuncAllocId
MfuncAllocScript
MfuncBufAncestorId
MfuncBufAncestorOffsetBand
MfuncBufAncestorOffsetBit
MfuncBufAncestorOffsetX
MfuncBufAncestorOffsetY
MfuncBufAttribute
MfuncBufFormat
MfuncBufHostAddress
MfuncBufHostAddressBand
MfuncBufId
MfuncBufMaxValue
MfuncBufMinValue
MfuncBufOwnerSystemId
MfuncBufOwnerSystemType
MfuncBufParentId
MfuncBufParentOffsetBand
MfuncBufParentOffsetX
MfuncBufParentOffsetY
MfuncBufPhysicalAddress
MfuncBufPhysicalAddressBand
MfuncBufPitch
MfuncBufPitchByte
MfuncBufSizeBand
MfuncBufSizeBit
MfuncBufSizeX
MfuncBufSizeY
MfuncBufType
MfuncCall
MfuncControl
MfuncErrorReport
MfuncFree
MfuncFreeId
MfuncInquire
MfuncParam
MfuncParamCheck
MfuncParamValue
gen
MgenLutFunction
MgenLutRamp
MgenRamp
MgenWarpParameter
gra
MgraAlloc
MgraAllocList
MgraArc
MgraArcAngle
MgraArcFill
MgraBackColor
MgraClear
MgraColor
MgraControl
MgraControlList
MgraCopy
MgraDot
MgraDots
MgraDraw
MgraFill
MgraFont
MgraFontScale
MgraFree
MgraGetHookInfo
MgraHookFunction
MgraInquire
MgraInquireList
MgraInteractive
MgraLine
MgraLines
MgraRect
MgraRectAngle
MgraRectFill
MgraText
MgraVectors
MgraVectorsGrid
im
MimAlloc
MimAllocResult
MimArith
MimArithMultiple
MimAugment
MimBinarize
MimBinarizeAdaptive
MimBoundingBox
MimClip
MimClose
MimConnectMap
MimControl
MimConvert
MimConvolve
MimCountDifference
MimDeadPixelCorrection
MimDeinterlace
MimDifferential
MimDilate
MimDistance
MimDraw
MimEdgeDetect
MimErode
MimFilterAdaptive
MimFindExtreme
MimFindOrientation
MimFlatField
MimFlip
MimFree
MimGet
MimGetResult1d
MimGetResult2d
MimGetResult
MimGetResultSingle
MimHistogram
MimHistogramEqualize
MimHistogramEqualizeAdaptive
MimInquire
MimLabel
MimLocateEvent
MimLocatePeak1d
MimLutMap
MimMatch
MimMorphic
MimOpen
MimPolarTransform
MimProjection
MimPut
MimRank
MimRearrange
MimRemap
MimResize
MimRestore
MimRotate
MimSave
MimShift
MimStatCalculate
MimStream
MimThick
MimThin
MimTransform
MimTranslate
MimWarp
MimWarpList
MimWatershed
MimWaveletDenoise
MimWaveletSetFilter
MimWaveletTransform
MimZoneOfInfluence
meas
MmeasAllocContext
MmeasAllocMarker
MmeasAllocResult
MmeasCalculate
MmeasControl
MmeasDraw
MmeasFindMarker
MmeasFree
MmeasGetResult
MmeasGetResultSingle
MmeasGetScore
MmeasInquire
MmeasRestoreMarker
MmeasSaveMarker
MmeasSetMarker
MmeasSetScore
MmeasStream
met
MmetAddFeature
MmetAddTolerance
MmetAlloc
MmetAllocResult
MmetCalculate
MmetControl
MmetDraw
MmetFree
MmetGetResult
MmetInquire
MmetName
MmetPut
MmetRestore
MmetSave
MmetSetPosition
MmetSetRegion
MmetStream
mod
MmodAlloc
MmodAllocResult
MmodControl
MmodDefine
MmodDefineFromFile
MmodDraw
MmodFind
MmodFree
MmodGetResult
MmodInquire
MmodMask
MmodPreprocess
MmodRestore
MmodSave
MmodStream
obj
MobjAlloc
MobjControl
MobjFree
MobjGetHookInfo
MobjHookFunction
MobjInquire
MobjMessageRead
MobjMessageWrite
ocr
MocrAllocFont
MocrAllocResult
MocrCalibrateFont
MocrControl
MocrCopyFont
MocrDraw
MocrFree
MocrGetResult
MocrHookFunction
MocrImportFont
MocrInquire
MocrModifyFont
MocrPreprocess
MocrReadString
MocrRestoreFont
MocrSaveFont
MocrSetConstraint
MocrStream
MocrVerifyString
pat
MpatAlloc
MpatAllocResult
MpatControl
MpatDefine
MpatDraw
MpatFind
MpatFree
MpatGetResult
MpatInquire
MpatPreprocess
MpatMask
MpatRestore
MpatSave
MpatStream
reg
MregAlloc
MregAllocResult
MregCalculate
MregControl
MregDraw
MregFree
MregGetResult
MregInquire
MregRestore
MregSave
MregSetLocation
MregStream
MregTransformCoordinate
MregTransformCoordinateList
MregTransformImage
seq
MseqAlloc
MseqControl
MseqDefine
MseqFeed
MseqFree
MseqGetHookInfo
MseqHookFunction
MseqInquire
MseqProcess
str
MstrAlloc
MstrAllocResult
MstrControl
MstrDraw
MstrEditFont
MstrExpert
MstrFree
MstrGetResult
MstrInquire
MstrPreprocess
MstrRead
MstrRestore
MstrSave
MstrSetConstraint
MstrStream
sys
MsysAlloc
MsysControl
MsysControlFeature
MsysFree
MsysGetHookInfo
MsysHookFunction
MsysInquire
MsysInquireFeature
sysIo
MsysIoAlloc
MsysIoCommandRegister
MsysIoControl
MsysIoFree
MsysIoInquire
thr
MthrAlloc
MthrControl
MthrControlMp
MthrFree
MthrInquire
MthrInquireMp
MthrWait
MthrWaitMultiple
3ddisp
M3ddispAlloc
M3ddispControl
M3ddispCopy
M3ddispFree
M3ddispGetView
M3ddispInquire
M3ddispSelect
M3ddispSetView
M3ddispSelectWindow
3dgeo
M3dgeoAlloc
M3dgeoBox
M3dgeoCopy
M3dgeoCylinder
M3dgeoDraw3d
M3dgeoFree
M3dgeoInquire
M3dgeoLine
M3dgeoMatrixGet
M3dgeoMatrixGetTransform
M3dgeoMatrixPut
M3dgeoMatrixSetTransform
M3dgeoMatrixSetWithAxes
M3dgeoPlane
M3dgeoRestore
M3dgeoSave
M3dgeoSphere
M3dgeoStream
3dgra
M3dgraAdd
M3dgraAlloc
M3dgraArc
M3dgraAxis
M3dgraBox
M3dgraControl
M3dgraCopy
M3dgraCylinder
M3dgraDots
M3dgraFree
M3dgraGrid
M3dgraInquire
M3dgraLine
M3dgraNode
M3dgraPlane
M3dgraPolygon
M3dgraRemove
M3dgraSphere
M3dgraText
3dim
M3dimAlloc
M3dimAllocResult
M3dimArith
M3dimCalculateMapSize
M3dimCalibrateDepthMap
M3dimControl
M3dimCopy
M3dimCopyResult
M3dimCrop
M3dimFillGaps
M3dimFree
M3dimGetResult
M3dimInquire
M3dimMatrixTransform
M3dimMatrixTransformList
M3dimMerge
M3dimMesh
M3dimNormals
M3dimProfile
M3dimProject
M3dimRemovePoints
M3dimRestore
M3dimRotate
M3dimSample
M3dimSave
M3dimScale
M3dimStat
M3dimStream
M3dimTranslate
3dmap
M3dmapAddScan
M3dmapAlloc
M3dmapAllocResult
M3dmapCalibrate
M3dmapCalibrateMultiple
M3dmapClear
M3dmapControl
M3dmapCopy
M3dmapCopyResult
M3dmapDraw
M3dmapDraw3d
M3dmapFree
M3dmapGetResult
M3dmapInquire
M3dmapRestore
M3dmapSave
M3dmapStream
M3dmapTriangulate
3dmet
M3dmetAlloc
M3dmetAllocResult
M3dmetControl
M3dmetCopy
M3dmetCopyResult
M3dmetDistance
M3dmetDraw3d
M3dmetFit
M3dmetFree
M3dmetGetResult
M3dmetInquire
M3dmetRestore
M3dmetSave
M3dmetStat
M3dmetStream
M3dmetVolume
3dreg
M3dregAlloc
M3dregAllocResult
M3dregCalculate
M3dregControl
M3dregCopy
M3dregCopyResult
M3dregFree
M3dregGetResult
M3dregInquire
M3dregMerge
M3dregRestore
M3dregSave
M3dregSetLocation
M3dregStream
MIL Hardware-specific Notes
Matrox 4Sight GP
Matrox 4Sight GP overview
Display capabilities
Frame grabbers
Auxiliary I/O interface
Summary of Matrox 4Sight GP features
Using MIL with Matrox 4Sight GP
Matrox 4Sight GP connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox 4Sight GP board flow diagram
Matrox 4Sight GPm
Matrox 4Sight GPm overview
Summary of Matrox 4Sight GPm features
Note on nomenclature
Using Matrox 4Sight GPm with MIL
Using the Advanced I/O Engine of Matrox 4Sight GPm
Using EtherNet/IP, Modbus, or PROFINET
Using timers and rotary decoders with Matrox 4Sight GPm
Timers
Rotary decoders
Matrox 4Sight GPm connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox 4Sight GPm data flow diagram
Matrox 4Sight GPm (Ivy Bridge)
Matrox 4Sight GPm (Bay Trail)
Matrox Clarity UHD
Matrox Clarity UHD overview
Acquisition features
Other features
Summary of Matrox Clarity UHD features
Using Matrox Clarity UHD with MIL
Cameras that can be connected to Matrox Clarity UHD
Automatic camera detection with Matrox Clarity UHD
Matrox Clarity UHD tools
Matrox Clarity UHD Bench utility
Matrox Clarity UHD Performance Monitor utility
Matrox Clarity UHD System Monitor tool
Matrox Clarity UHD board flow diagrams
Matrox Concord G-Series
Matrox Concord G-Series overview
Using Matrox Concord G-Series with MIL
Matrox Concord PoE
Matrox Concord PoE overview
Summary of Matrox Concord PoE features
Note on nomenclature
Using Matrox Concord PoE with MIL
Using the Advanced I/O Engine of Matrox Concord PoE with ToE
Using a MIL Concord PoE system with the Matrox Concord PoE base model
Sending a Trigger-over-Ethernet packet without Host intervention
Sending a Trigger-over-Ethernet packet as an action command
Sending a Trigger-over-Ethernet packet as a GigE Vision software trigger
Matrox Concord PoE with ToE connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Concord PoE board flow diagrams
Matrox GatorEye
Matrox GatorEye overview
Summary of Matrox GatorEye features
Using Matrox GatorEye with MIL
Matrox GenTL driver
Matrox GenTL Consumer driver overview
Using Matrox GenTL Consumer driver with MIL
MIL buffer handling with the Matrox GenTL Consumer driver
Matrox GigE Vision driver
Matrox GigE Vision driver overview
Using GigE Vision with MIL
Working with more than one Gigabit Ethernet network adapter
Working with one or more GigE Vision-compliant cameras
Working without a Matrox board as your Gigabit Ethernet network adapter
Matrox GigE Vision tools
Matrox Capture Assistant
Matrox GigE Vision discovery service
Configuring your GigE Vision camera and Gigabit Ethernet network adapter
Automatic format switching
Gigabit Ethernet network adapter settings
Optimizing further
Configuring IP addresses
Link aggregation
Using IP multicast
Configuring a multicast master
Configuring one or more multicast slaves
Configuring one or more multicast monitors
Ethernet switches, routers, IGMP, and IP multicast
Internet Group Management Protocol (IGMP)
Ethernet switches and multicast
IGMP snooping and Ethernet switches
Using IP multicast without a router
Using a Gbit Ethernet switch with GigE Vision-compliant cameras
Troubleshooting acquisition reliability issues
Triggering simultaneous actions in multiple GigE Vision cameras
Introducing action commands
Establish if your camera supports action commands
Acknowledgment of reception of an action command
Masking out one or more cameras
Scheduling time
Examples of action commands
Example of sending a single action command
Example of sending multiple action commands
Example of using group masks to ignore an action command on one camera
Example distributed with MIL
Matrox Indio
Matrox Indio overview
Summary of Matrox Indio features
Using Matrox Indio with MIL
Using the Advanced I/O Engine of Matrox Indio
Using EtherNet/IP, Modbus, or PROFINET
Matrox Indio connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Indio board flow diagram
Matrox Iris GTR
Matrox Iris GTR overview
Summary of Matrox Iris GTR features
Using Matrox Iris GTR with MIL
Using the Advanced I/O Engine with Matrox Iris GTR
Using the analog intensity control signal with Matrox Iris GTR
Performing Bayer color conversion in hardware
Controlling your lighting device indirectly
Using either a grab trigger or a continuous grab to start your lighting device
Controlling your lighting controller and/or the LED lighting device
Automatically scheduling an output upon the occurrence of an event
Auto-focusing the Variopic lens
Matrox Iris GTR connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Morphis
Matrox Morphis overview
Common features
Matrox Morphis Dual
Matrox Morphis Quad
Matrox Morphis Video and I/O Input modules
Summary of Matrox Morphis features
Note on nomenclature
Using Matrox Morphis with MIL
Cameras that can be connected to Matrox Morphis
COM ports and UARTS
Matrox Morphis Watchdog functionality
Configuring the Watchdog
Example
Matrox Morphis tools
Matrox Usage Meter utility
Matrox Performance Monitor utility
Matrox Morphis Bench utility
Matrox Morphis connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Morphis board flow diagrams
Matrox Morphis QxT
Matrox Morphis QxT overivew
Acquisition features
Formatting features
Summary of Matrox Morphis QxT features
Using Matrox Morphis QxT with MIL
Cameras that can be connected to Matrox Morphis QxT
Matrox Morphis QxT Watchdog functionality
Configuring the Watchdog
Example
Matrox Morphis QxT tools
Matrox Usage Meter utility
Matrox Morphis QxT Performance Monitor utility
Matrox Morphis QxT Bench utility
Matrox Morphis QxT connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Morphis QxT board flow diagrams
Matrox Orion HD
Matrox Orion HD overview
Summary of Matrox Orion HD features
Using Matrox Orion HD with MIL
Cameras that can be connected to Matrox Orion HD
Automatic camera detection
An example
Matrox Orion HD tools
Matrox Orion HD Bench utility
Matrox Orion HD Performance Monitor utility
Matrox Orion HD System Monitor tool
Matrox Orion HD board flow diagrams
Matrox Radient eCL
Matrox Radient eCL overview
Summary of Matrox Radient eCL features
Note on nomenclature
Using Matrox Radient eCL with MIL
Performing Bayer color conversion in hardware
Allocating independent MIL digitizers on Matrox Radient eCL
Minimum latency and grabbing all frames
Detecting missed frames when using MdigProcess
Quickly copying an on-board buffer to a Host destination buffer
Quickly converting buffer formats while copying
Matrox Radient eCL COM ports and UARTS
Matrox Radient eCL tools
Matrox Usage Meter utility
Matrox Radient Performance Monitor utility
Matrox Radient Bench utility
Matrox Radient System Monitor tool
Matrox Radient eCL-DB and eCL-QB connectors and signal names
Matrox Radient eCL-DB and eCL-QB connectors
Signal names and their matching MIL constants
Matrox Radient eCL-SF and eCL-DF connectors and signal names
Matrox Radient eCL-SF and eCL-DF connectors
Signal names and their matching MIL constants
Matrox Radient eCL flow diagrams
Matrox Radient eCL-DB/QB
Matrox Radient eCL-SF/DF
Matrox Radient eV
Matrox Radient eV overview
Summary of Matrox Radient eV features
Note on nomenclature
Using Matrox Radient eV with MIL
Grabbing and the MIL buffer formats to use for each camera pixel format on Matrox Radient eV-CXP
Using the CoaXPress trigger signal on Matrox Radient eV-CXP
Performing Bayer color conversion in hardware
Using frame burst with a multi-frame buffer
Extracting peaks from an on-board multi-frame image buffer
Allocating independent MIL digitizers on Matrox Radient eV boards
Matrox Radient eV-CL
Matrox Radient eV-CXP
Minimum latency and grabbing all frames
Detecting missed frames
Efficiently copying an on-board buffer to a destination buffer in Host memory
Efficiently converting buffer formats while copying
Using Matrox Radient eV data latches
Steps to configure and retrieve data from a data latch
Triggering the data latch
Data latch limitations
Retrieving data latch information
Data latch example
Matrox Radient eV utilities and tools
Matrox Usage Meter utility
Matrox Radient eV Performance Monitor utility
Matrox Radient eV Bench utility
Matrox Radient eV PCIe Information tool
Matrox Radient eV System Monitor tool
Matrox Radient eV-CL Deserializer setup tool
Matrox Radient eV-CL DB/QB connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Radient eV-CL SF/DF connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Radient eV-CXP connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Radient eV board flow diagrams
Matrox Radient eV-CL
Matrox Radient eV-CXP
Matrox RadientPro CL
Matrox RadientPro CL overview
Summary of Matrox RadientPro CL features
Note on nomenclature
Using Matrox RadientPro CL with MIL
Changing the mode of your Matrox RadientPro CL-DB
Performing Bayer color conversion in hardware
Using frame burst with a multi-frame buffer
Allocating independent MIL digitizers on Matrox RadientPro CL boards
Minimum latency and grabbing all frames
Detecting missed frames when using MdigProcess
Quickly copying an on-board buffer to a Host destination buffer
Quickly converting buffer formats while copying
Using Matrox RadientPro CL data latches
Steps to configure and retrieve data from a data latch
Triggering the data latch
Data latch limitations
Retrieving data latch information
Data latch example
Matrox RadientPro CL tools
Matrox Usage Meter utility
Matrox RadientPro CL Performance Monitor utility
Matrox RadientPro CL Bench utility
Matrox RadientPro CL System Monitor tool
Matrox RadientPro CL-DB connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox RadientPro CL-SF connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox RadientPro CL board flow diagrams
Matrox Rapixo CXP
Matrox Rapixo CXP overview
Summary of Matrox Rapixo CXP features
Note on nomenclature
Using Matrox Rapixo CXP with MIL
Grabbing and the MIL buffer formats to use for each camera pixel format
Using the CoaXPress trigger signal on Matrox Rapixo CXP
Performing Bayer color conversion in hardware
Using frame burst with a multi-frame buffer
Extracting peaks from an on-board multi-frame image buffer
Allocating independent MIL digitizers on Matrox Rapixo CXP boards
Minimum latency and grabbing all frames
Detecting missed frames
Efficiently copying an on-board buffer to a destination buffer in Host memory
Efficiently converting buffer formats while copying
Using Matrox Rapixo CXP data latches
Steps to configure and retrieve data from a data latch
Triggering a data latch
Data latch limitations
Retrieving data latch information
Data latch example
Matrox Rapixo CXP utilities and tools
Matrox Usage Meter utility
Matrox Rapixo CXP Performance Monitor utility
Matrox Rapixo CXP Bench utility
Matrox Rapixo CXP PCIe Information tool
Matrox Rapixo CXP System Monitor tool
Matrox Rapixo CXP connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Rapixo CXP board flow diagrams
Matrox Rapixo CXP base model
Matrox Rapixo CXP Pro
Matrox Solios
Matrox Solios overview
Summary of Matrox Solios features
Note on nomenclature
Using Matrox Solios with MIL
Changing the mode of your Matrox Solios eCL/XCL
Allocating independent MIL digitizers on Matrox Solios
Matrox Solios eA/XA
Matrox Solios eCL/XCL
Minimum latency and grabbing all frames
Detecting missed frames when using MdigProcess
Quickly copying an on-board buffer to a Host destination buffer
Quickly converting buffer formats while copying
COM ports and UARTS
Matrox Solios tools
Matrox Usage Meter utility
Matrox Solios Performance Monitor utility
Matrox Solios Bench utility
Camera-Link Configuration tool
Usable On-Board Memory tool
Matrox Solios eCL/XCL-B connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Solios eCL/XCL dual-Base/single-Medium and cCL/XCL-F connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Solios eA/XA connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Solios board flow diagrams
Matrox Solios eCL/XCL
Matrox Solios eA/XA
Matrox Solios eV-CL
Matrox Solios eV-CL overview
Summary of Matrox Solios eV features
Note on nomenclature
Using Matrox Solios eV-CL with MIL
Changing the mode of your Matrox Solios eV-CL
Performing Bayer color conversion in hardware
Allocating independent MIL digitizers on Matrox Solios eV-CL
Matrox Solios eV-CLB and eV-CLBL
Matrox Solios eV-CLF and eV-CLFL
Minimum latency and grabbing all frames
Detecting missed frames
Quickly copying an on-board buffer to a Host destination buffer
Quickly converting buffer formats while copying
COM ports and UARTS
Matrox Solios eV-CL tools
Matrox Camera-Link configuration utility
Matrox Processing FPGA utility
Matrox Solios eV-CLBL and eV-CLFL connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Solios eV-CLB and eV-CLF connectors and signal names
Board connectors
Signal names and their matching MIL constants
Matrox Solios eV-CL board flow diagrams
Matrox Solios eV-CLB and eV-CLBL
Matrox Solios eV-CLF
Matrox Supersight
Matrox Supersight overview
Summary of Matrox Supersight SHB board features
Note on nomenclature
Using MIL with a Matrox Supersight SHB board
Matrox Supersight SHB COM ports and UARTS
Backplane communications for DMIL remote systems
Matrox Supersight SHB flow diagram
Matrox USB3 Vision Driver
Matrox USB3 Vision driver overview
Using the Matrox USB3 Vision driver with MIL
Non-paged memory usage
MIL Examples
BoardSpecific
ActionTrigger
C++
actiontrigger.cpp
AutoDetect
C++
autodetect.cpp
CameraEvents
C++
cameraevents.cpp
ChunkMode
C++
chunkmode.cpp
CLProtocol
C++
clprotocol.cpp
DataLatch
C++
datalatch.cpp
EnumFeatures
C++
enumfeatures.cpp
FDK
DetectFpgaConfig
C++
detectfpgaconfig.cpp
LutMapPrimitive
C++
fdklutmapmain.cpp
lutmapprimitive.cpp
OffsetGain
C++
fdkoffsetgainprimitive.cpp
offsetgain.cpp
OffsetGainLutMap
C++
fdkoffsetgainlutmapprimitive.cpp
offsetgainlutmap.cpp
ProcessingFPGA
C++
processingfpga.cpp
FeatureChangeHook
C++
featurechangehook.cpp
FrameBurst
C++
frameburst.cpp
GenTL
C++
gentl.cpp
IrisGTRLensFocus
C++
irisgtrlensfocus.cpp
MdigCrossBar
C++
md3ddisplayeffect.cpp
mdigcrossbar.cpp
mdigitizer.cpp
mdisplay.cpp
MdigGrabDynamic
C++
mdiggrabdynamic.cpp
MdigGrabMultiple
C++
mdiggrabmultiple.cpp
MdigProcess16VD
C++
mdigprocess16vd.cpp
MdigProcessMultiple
C++
mdigprocessmultiple.cpp
MilGige
C++
milgige.cpp
MorphisChannelSwitching
C++
morphischannelswitching.cpp
morphischannelswitchingdlg.cpp
stdafx.cpp
MsysIo
C++
msysio.cpp
muart
C++
muart.cpp
MultiCamera
C++
multicamera.cpp
MultiCameraDisplay
C++
mdighandler.cpp
mseqhandler.cpp
multicameradisplay.cpp
MulticastMaster
C++
multicastmaster.cpp
MulticastMonitor
C++
multicastmonitor.cpp
MulticastSlave
C++
multicastslave.cpp
MultiComponentGrab
C++
multicomponentgrab.cpp
PacketDelay
C++
packetdelay.cpp
TriggerOverEthernet
C++
triggeroverethernet.cpp
Core
Full
M3ddisp
C#
m3ddisp.cs
C++
m3ddisp.cpp
VB
m3ddisp.vb
M3dgra
C#
m3dgra.cs
C++
m3dgra.cpp
VB
m3dgra.vb
MbufCreate
C#
mbufcreate.cs
C++
mbufcreate.cpp
MgraWeb
C++
mgraweb.cpp
General
MbufBayer
C++
mbufbayer.cpp
MdigProcess3D
C#
mdigprocess3d.cs
C++
mdigprocess3d.cpp
Python
mdigprocess3d.py
VB
mdigprocess3d.vb
MdispWeb
C++
mdispweb.cpp
MdispWebClient
C++
webclient.cpp
webclientqt.cpp
webclientwin.cpp
MdispWebForm
C#
app.xaml.cs
mainwindow.xaml.cs
Properties
resources.designer.cs
settings.designer.cs
VB
application.xaml.vb
mainwindow.xaml.vb
My Project
MyExtensions
mywpfextension.vb
MdispWebKitGtk
C++
mdispwebkitgtk.cpp
MgenLutFunction
C++
mgenlutfunction.cpp
MgraText
C#
mgratext.cs
C++
mgratext.cpp
VB
mgratext.vb
SystemDetection
C#
systemdetection.cs
C++
systemdetection.cpp
VB
systemdetection.vb
DirectShow
CommonWrapper
C++
filtergraphwrapper.cpp
MilCapture
C++
milcapture.cpp
MILEncodeDecode
C++
mildecodewrapper.cpp
milencodedecode.cpp
milencodewrapper.cpp
MILSampleGrabber
C++
milsamplegrabber.cpp
milsamplegrabberwrapper.cpp
DistributedMIL
Full
DMILObjectTracking
C++
DMILObjectTrackingMaster
dmilobjecttracking.cpp
DMILObjectTrackingSlave
dmilobjecttrackingslave.cpp
General
DMILAddConstant
C++
DMILAddConstantMaster
dmiladdconstantc.cpp
dmiladdconstantmain.cpp
DMILAddConstantSlave
dmiladdconstantslave.cpp
DMILBasic
C++
dmilbasic.cpp
DMILDisplayMonitoring
C#
MonitoringApplication
monitoringapplication.cs
PublishingApplication
publishingapplication.cs
C++
MonitoringApplication
monitoringapplication.cpp
PublishingApplication
publishingapplication.cpp
DMilMdigProcessSharedMemory
C++
MbufSharedMemoryMaster
dmilmdigprocesssharedmemory.cpp
MbufSharedMemorySlave
mbufsharedmemory.cpp
DMILMultiSystem
C++
dmilmultisystem.cpp
DMILRemap
C++
DMILRemapMaster
dmilremap.cpp
DMILRemapSlave
dmilremapslave.cpp
DMILSyncAsync
C++
DMILSyncAsyncMaster
dmilsyncasyncmain.cpp
dmilsyncasyncmaster.cpp
DMILSyncAsyncSlave
dmilsyncasyncslave.cpp
General
M3dMap
C#
m3dmap.cs
C++
m3dmap.cpp
VB
m3dmap.vb
M3dreg
C#
m3dreg.cs
C++
m3dreg.cpp
VB
m3dreg.vb
MappBenchmark
C#
mappbenchmark.cs
C++
mappbenchmark.cpp
VB
mappbenchmark.vb
MappStart
C#
mappstart.cs
C++
mappstart.cpp
VB
mappstart.vb
MappTrace
C#
mapptrace.cs
C++
mapptrace.cpp
VB
mapptrace.vb
My Project
application.designer.vb
Mbead
C#
mbead.cs
C++
mbead.cpp
VB
mbead.vb
Mblob
C#
mblob.cs
C++
mblob.cpp
VB
mblob.vb
MbufColor
C#
mbufcolor.cs
C++
mbufcolor.cpp
VB
mbufcolor.vb
MbufPointerAccess
C#
mbufpointeraccess.cs
C++
mbufpointeraccess.cpp
Mcal
C#
mcal.cs
C++
mcal.cpp
VB
mcal.vb
Mclass
C#
mclass.cs
C++
mclass.cpp
VB
mclass.vb
Mcode
C#
mcode.cs
C++
mcode.cpp
VB
mcode.vb
Mcol
C#
mcol.cs
C++
mcol.cpp
VB
mcol.vb
MdigAutoFocus
C#
mdigautofocus.cs
C++
mdigautofocus.cpp
VB
mdigautofocus.vb
MdigDoubleBuffering
C#
mdigdoublebuffering.cs
C++
mdigdoublebuffering.cpp
VB
mdigdoublebuffering.vb
MdigGrab
C#
mdiggrab.cs
C++
mdiggrab.cpp
VB
mdiggrab.vb
MdigGrabSequence
C#
mdiggrabsequence.cs
C++
mdiggrabsequence.cpp
VB
mdiggrabsequence.vb
MdigProcess
C#
mdigprocess.cs
C++
mdigprocess.cpp
Python
mdigprocess.py
VB
mdigprocess.vb
MdispMFC
C++
childfrm.cpp
mainfrm.cpp
mdispmfc.cpp
mdispmfcdoc.cpp
mdispmfcview.cpp
stdafx.cpp
MdispOverlay
C#
mdispoverlay.cs
C++
mdispoverlay.cpp
VB
mdispoverlay.vb
MdispQt
C++
aboutbox.cpp
childframe.cpp
mainframe.cpp
mdispqt.cpp
mdispqtapp.cpp
mdispqtview.cpp
MdispWindowLeveling
C#
mdispwindowleveling.cs
C++
mdispwindowleveling.cpp
VB
mdispwindowleveling.vb
MdispWindowQt
C++
mdispwindowqt.cpp
MdispWPF
C#
MdispWPF
app.xaml.cs
mainwindow.xaml.cs
Properties
resources.designer.cs
settings.designer.cs
MILApplicationLibrary
milapplication.cs
VB
MdispWPF
application.xaml.vb
mainwindow.xaml.vb
My Project
MyExtensions
mywpfextension.vb
MILApplicationLibrary
milapplication.vb
My Project
application.designer.vb
Mdmr
C#
mdmr.cs
C++
mdmr.cpp
VB
mdmr.vb
Medge
C#
medge.cs
C++
medge.cpp
VB
medge.vb
MedgeDispTk
Python
medgedisptk.py
Mfunc
C#
mfunc.cs
C++
mfunc.cpp
VB
mfunc.vb
MgraInteractive
C#
mgrainteractive.cs
C++
mgrainteractive.cpp
VB
mgrainteractive.vb
MimConvolve
C#
mimconvolve.cs
C++
mimconvolve.cpp
VB
mimconvolve.vb
MimFFT
C#
mimfft.cs
C++
mimfft.cpp
VB
mimfft.vb
MimHistogram
C#
mimhistogram.cs
C++
mimhistogram.cpp
VB
mimhistogram.vb
MimLocatePeak1d
C#
mimlocatepeak1d.cs
C++
mimlocatepeak1d.cpp
VB
mimlocatepeak1d.vb
MimPolar
C#
mimpolar.cs
C++
mimpolar.cpp
VB
mimpolar.vb
MimProcessing
C#
mimprocessing.cs
C++
mimprocessing.cpp
VB
mimprocessing.vb
MimSegment
C#
mimsegment.cs
C++
mimsegment.cpp
VB
mimsegment.vb
MimWarp
C#
mimwarp.cs
C++
mimwarp.cpp
VB
mimwarp.vb
Mmeas
C#
mmeas.cs
C++
mmeas.cpp
VB
mmeas.vb
Mmet
C#
mmet.cs
C++
mmet.cpp
VB
mmet.vb
Mmod
C#
mmod.cs
C++
mmod.cpp
VB
mmod.vb
MmodelTracking
C#
mmodeltracking.cs
C++
mmodeltracking.cpp
VB
mmodeltracking.vb
Mocr
C#
mocr.cs
C++
mocr.cpp
VB
mocr.vb
Mpat
C#
mpat.cs
C++
mpat.cpp
VB
mpat.vb
Mreg
C#
mreg.cs
C++
mreg.cpp
VB
mreg.vb
MseqProcess
C#
mseqprocess.cs
C++
mseqprocess.cpp
VB
mseqprocess.vb
Mstr
C#
mstr.cs
C++
mstr.cpp
VB
mstr.vb
Mthread
C#
mthread.cs
C++
mthread.cpp
VB
mthread.vb
IndustrialCommunication
PLC
CCLinkIEFieldBasic
Slave
C#
cclinkslave.cs
mcomcclinkslave.cs
C++
cclinkslave.cpp
mcomcclinkslave.cpp
EthernetIP
Local
C++
mcomethernetip.cpp
Remote
C++
mcomremoteeip.cpp
Modbus
MasterSerial
C++
mcommodbusmasterserial.cpp
MasterTCP
C++
mcommodbusmastertcp.cpp
Slave
C#
mcommodbusslave.cs
C++
mcommodbusslave.cpp
Profinet
C#
mcomprofinet.cs
C++
mcomprofinet.cpp
Robots
ABB
C++
mcomabb.cpp
DENSO
C++
mcomdenso.cpp
Epson
C++
mcomepson.cpp
Fanuc
C++
mcomfanuc.cpp
Kuka
C++
mcomkuka.cpp
Staubli
C++
mcomstaubli.cpp
LinuxSpecific
MdispGtk
C++
childframe.cpp
mainframe.cpp
mdispgtk.cpp
mdispgtkapp.cpp
mdispgtkmarshal.cpp
mdispgtkview.cpp
MdispOverlay
C++
mdispoverlay.cpp
MdispWindowGtk
C++
mdispwindowgtk.cpp
Processing
2dCalibration
CalGenChessGrid
C++
addfiducials.cpp
calgenchessgrid.cpp
computegridparams.cpp
units.cpp
UnwarpMultiviewCylinder
C++
unwarpmultiviewcylinder.cpp
3dCalibration
CalibrationFromList
C++
calibrationfromlist.cpp
ObjectLocalization3d
C++
adaptivethresholder.cpp
blackfiducialfinder.cpp
featurefinder.cpp
objectlocalization3d.cpp
pharmacodereader.cpp
whitefiducialfinder.cpp
3dReconstruction
3dPlanarity
C++
3dplanarity.cpp
3dPlaneFit
C++
3dplanefit.cpp
3dProfileMetrology
C++
3dprofilemetrology.cpp
BlisterPackInspection
C++
blisterpackinspection.cpp
BottleCapInspection
C++
bottlecapinspection.cpp
CameraLaserCalibration
C++
cameralasercalibration.cpp
exampleinterface.cpp
interactiveexample.cpp
standaloneexample.cpp
CanInspection
C++
caninspection.cpp
CookieDetection
C++
cookiedetection.cpp
DepthFromFocus
C++
depthfromfocus.cpp
DepthmapGoldenTemplate
C++
depthmapgoldentemplate.cpp
LaserBase
C++
c3ddisplaymanager.cpp
commonutils.cpp
examplemanagerfor3d.cpp
mildisplaymanager.cpp
MechanicalPartScan
C++
mechanicalpartscan.cpp
MultiCameraLaserCalibration
C++
multicameralasercalibration.cpp
PointCloudProjection
C++
pointcloudprojection.cpp
SphereInspection
C++
sphereinspection.cpp
StereoCalibration
C++
stereocalibration.cpp
StereoRectification
C++
stereorectification.cpp
StudInspection
C++
studinspection.cpp
TireStringRead
C++
tirestringread.cpp
3dRegistration
3dCADRegistration
C++
3dcadregistration.cpp
3dModelHeightDefect
C++
3dmodelheightdefect.cpp
Simple3dBinPicking
C++
simple3dbinpicking.cpp
Simple3dStitching
C++
simple3dstitching.cpp
3dRobotics
CameraOnRobotArmCalibration
C++
cameraonrobotarmcalibration.cpp
BlobAnalysis
BlobMerge
C++
blobmerge.cpp
BlobTransform
C++
blobtransform.cpp
FixturingUsingBlob
C++
fixturingusingblob.cpp
SegmentationAndAnalysisOfCells
C++
segmentationandanalysisofcells.cpp
Classification
ClassCNNCompleteTrain
C++
classcnncompletetrain.cpp
ClassPrintedChar
C++
classprintedchar.cpp
ClassSeafoodInspect
C++
classseafoodinspect.cpp
ClassSurfaceSteel
C++
classsurfacesteel.cpp
ClassTreeEnsembleTrain
C++
classtreeensembletrain.cpp
Code
CodeDetect
C++
codedetect.cpp
CodeGrading
C++
codegrading.cpp
CodeTrain
C++
codetrain.cpp
DotSpacing
C++
dotspacing.cpp
FixturedCodeRead
C++
fixturedcoderead.cpp
ISODPMGrading
C++
isodpmgrading.cpp
MultipleDatamatrixCodeRead
C++
multipledatamatrixcoderead.cpp
SuperResolutionCode
C++
superresolutioncode.cpp
VariousCodeReadings
C++
variouscodereadings.cpp
ColorInspection
CIELabConversion
C++
cielabconversion.cpp
ColorRelativeCalibration
C++
colorrelativecalibration.cpp
FoodInspectionCereal
C++
foodinspectioncereal.cpp
FoodInspectionMango
C++
foodinspectionmango.cpp
ProductIdentificationOasis
C++
productidentificationoasis.cpp
UtilMatchColormap
C++
utilmatchcolormap.cpp
DifferenceAnalysis
RegisteredGoldenTemplate
C++
registeredgoldentemplate.cpp
SimpleDefectDetection
C++
defectdetectionexample.cpp
defectdetectionprocfunc.cpp
simpledefectdetection.cpp
Graphic
CalibratedRuler
C++
calibratedruler.cpp
MgraVectors
C++
mgravectors.cpp
MultiViewAnnotations
C++
multiviewannotations.cpp
Measurement
AdvancedMeasurement
C++
advancedmeasurement.cpp
CircleMeasurement
C++
circlemeasurement.cpp
Meas2StepOverview
C++
meas2stepoverview.cpp
MeasAdvancedOverview
C++
measadvancedoverview.cpp
MeasBasicOverview
C++
measbasicoverview.cpp
MeasCircleOverview
C++
meascircleoverview.cpp
MeasOverviewBase
C++
measoverviewexample.cpp
profiledisplay.cpp
MeasProfileAverageOverview
C++
measprofileaverageoverview.cpp
MeasProfileFilteringOverview
C++
measprofilefilteringoverview.cpp
MeasStripeOverview
C++
measstripeoverview.cpp
Metrology
3dGapAndFlush
C++
3dgapandflush.cpp
GearInspection
C++
gearinspection.cpp
LaserProfileMetrologyAnalysis
C++
laserprofilemetrologyanalysis.cpp
MeasuredFeaturesOverview
C++
measuredfeaturesoverview.cpp
MetrologyOnBlobs
C++
metrologyonblobs.cpp
PointConstructions
C++
pointconstructions.cpp
TolerancesOverview
C++
tolerancesoverview.cpp
Ocr
DmrContextViewer
C++
dmrcontextviewer.cpp
DmrEditFontFile
C++
dmreditfontfile.cpp
DmrGenFontFile
C++
dmrgenfontfile.cpp
DmrShowFontFile
C++
dmrshowfontfile.cpp
DmrUtil
C++
charactercreator.cpp
fontutil.cpp
visualizefont.cpp
SemiOcr
C++
semiocr.cpp
USDotNumberStr
C++
usdotnumberstr.cpp
VariousDotMatrixReadings
C++
variousdotmatrixreadings.cpp
Optimization
MultiProcessing
C++
dispatcher.cpp
mpmenu.cpp
mpmenubutton.cpp
mpprocessing.cpp
mprotateprocessing.cpp
mpwarpprocessing.cpp
multiprocessing.cpp
PatternMatching
BinaryBasedCircleDetection
C++
binarybasedcircledetection.cpp
CircleShapeFinder
C++
circleshapefinder.cpp
DxfModelFinding
C++
dxfmodelfinding.cpp
EllipseShapeFinder
C++
ellipseshapefinder.cpp
MmodDefineModelAtAngle
C++
mmoddefinemodelatangle.cpp
MpatDefineModelAtAngle
C++
mpatdefinemodelatangle.cpp
MpatFindMultipleModels
C++
mpatfindmultiplemodels.cpp
PCBModelMatching
C++
pcbmodelmatching.cpp
RectangleShapeFinder
C++
rectangleshapefinder.cpp
Preprocessing
AdaptiveFiltering
C++
adaptivefiltering.cpp
AlphaBlending
C++
alphablending.cpp
DeadPixelCorrection
C++
deadpixelcorrection.cpp
ExtendedDepthOfField
C++
extendeddepthoffield.cpp
FindImageOrientation
C++
findimageorientation.cpp
FlatFieldCorrection
C++
flatfieldcorrection.cpp
histogramdisplay.cpp
HistogramEqualizeAdaptive
C++
histogramequalizeadaptive.cpp
ImageDownscalingModes
C++
imagedownscalingmodes.cpp
ImageFlattening
C++
imageflattening.cpp
ImageUpscalingModes
C++
imageupscalingmodes.cpp
InteractiveBayer
C++
interactivebayer.cpp
MedgeCustomDerivatives
C++
medgecustomderivatives.cpp
MimAugment
C++
mimaugment.cpp
MimBinarizeAdaptive
C++
mimbinarizeadaptive.cpp
MimBoundingBox
C++
mimboundingbox.cpp
MimDeinterlace
C#
mimdeinterlace.cs
C++
mimdeinterlace.cpp
VB
mimdeinterlace.vb
MimIIRFilter
C++
mimiirfilter.cpp
MimMorphic
C++
mimmorphic.cpp
MimWarpQuadrilateral
C++
mimwarpquadrilateral.cpp
Morphology
C++
morphology.cpp
ObjectSeparation
C++
objectseparation.cpp
PhotometricStereo
C++
photometricstereo.cpp
PhotometricStereoWithMotion
C++
photometricstereowithmotion.cpp
PolarizationImaging
C++
polarizationimaging.cpp
Projection
C++
projection.cpp
ScriptPreprocessing
C++
scriptpreprocessing.cpp
SimpleDilateErode
C++
simpledilateerode.cpp
SimpleHDR
C++
simplehdr.cpp
SpecularReflectionReduction
C++
specularreflectionreduction.cpp
SuperResolution
C++
superresolution.cpp
TextureStatistics
C++
texturestatistics.cpp
VariousDenoising
C++
variousdenoising.cpp
VariousStatistics
C++
variousstatistics.cpp
WaveletTransformation
C++
wavelettransformation.cpp
ProductInspection
AmpouleAndPackageInspection
C++
ampouleandpackageinspection.cpp
caporientation.cpp
horizontalandanglealignment.cpp
productcountinspection.cpp
verticalalignment.cpp
BottleCapAndContentInspection
C++
bottlecapandcontentinspection.cpp
capscrewinspection_capandcontent.cpp
defectdetectionprocfunc_capandcontent.cpp
defectdetectiontask.cpp
BottleCapAndLabelInspection
C++
bottlecapandlabelinspection.cpp
capcoloridentification.cpp
capscrewinspection_capandlabel.cpp
horizontalalignment.cpp
labelalignmentinspection.cpp
producttypeidentification.cpp
readdatamatrixtask.cpp
readstringtask.cpp
threadinspection.cpp
CenteredLabelInspection
C++
centeredlabelinspection.cpp
lidcolorsverification.cpp
lididentification.cpp
metrologyalignment.cpp
ExampleBase
C++
ExampleManager
examplemanager.cpp
InspectionTaskBase
colormatchtask.cpp
highlevelinspectiontask.cpp
inspectiontask.cpp
measurementalignment.cpp
measurementinspectiontask.cpp
metrologyinspectiontask.cpp
modelfinderalignmenttask.cpp
patternmatchingtask.cpp
positioninspection.cpp
readingtask.cpp
regionmanager.cpp
simplefixture.cpp
targetalignmenttask.cpp
Region
arcregion.cpp
graphicregion.cpp
polygonregion.cpp
rectangleregion.cpp
GumPackInspection
C++
gumpackinspection.cpp
MIL Release Notes
lastminute
whatsnew
CoPilot
MILCoPilot
display
mildisplay
drivers
Configuring_a_multi_port_NIC_for_multiple_GigE_Vision_cameras_pdf_redirect
MilDirectShowCapture
MilDirectShowEncodeDecode
MilOrionHD
MatroxIntellicam
MatroxIntellicam
mil4sight
MIL4Sight
milClarityUHD
Matrox Clarity UHD Hardware-specific Notes_pdf_redirect
Matrox Clarity UHD Reference_pdf_redirect
milClarityUHD
Examples
BoardSpecific
clarityuhd
MdigCrossBar
C++
md3ddisplayeffect.cpp
mdigcrossbar.cpp
mdigitizer.cpp
mdisplay.cpp
MultiCameraDisplay
C++
mdighandler.cpp
mseqhandler.cpp
multicameradisplay.cpp
milConcordPoE
milConcordPoE
Examples
BoardSpecific
ConcordPoE
TriggerOverEthernet
C++
triggeroverethernet.cpp
milGenTL
milGenTL
milGigEVision
milgige
Examples
BoardSpecific
gigevision
ActionTrigger
C++
actiontrigger.cpp
CameraEvents
C++
cameraevents.cpp
ChunkMode
C++
chunkmode.cpp
EnumFeatures
C++
enumfeatures.cpp
FeatureChangeHook
C++
featurechangehook.cpp
MilGigE
C++
milgige.cpp
MultiCamera
C++
multicamera.cpp
MulticastMaster
C++
multicastmaster.cpp
MulticastMonitor
C++
multicastmonitor.cpp
MulticastSlave
C++
multicastslave.cpp
PacketDelay
C++
packetdelay.cpp
milIndio
MILIndio
milIrisGTR
MILIrisGTR
milMorphis
milmorphis
MilMorphisIOConversionTable
milMorphisQxT
milmorphisqxt
MilMorphisQxTIOConversionTable
milRadient
milRadient
MILRadientCameraLinkIOConversionTable
milRadientCXP
milRadientCXP
RadienteVCXPAnimation
RadienteVCXPAnimation2
milRadienteVCL
milRadienteVCL
RadienteVCLAnimation
RadienteVCLAnimation2
milRadientPro
milRadientPro
milRapixoCXP
milRapixoCXP
Examples
BoardSpecific
rapixocxp
DataLatch
C++
datalatch.cpp
milSolios
milSolios
MilSoliosAnalogIOConversionTable
MILSoliosCameraLinkIOConversionTable
milSupersight
MilSuperSighte2AndSolo
MILSupersightUno
milUSB3Vision
MILUSB3Vision
Examples
BoardSpecific
usb3vision
cameraevents
C++
cameraevents.cpp
chunkmode
C++
chunkmode.cpp
enumfeatures
C++
enumfeatures.cpp
multicamera
C++
multicamera.cpp
LicenseServer
LicenseServer
Licensing with Third-Party Host
Third-Party Host
linux
How to access multiple gigevision cameras_pdf_redirect
MilLinux
Matrox Profiler
matroxprofiler
MIL.NET
MIL.net_Dev
Milcom
MILCOM
MILRTOS
MILRTOS
Examples
MILRTOS
RTDigProcess
C++
rtdigprocess.cpp
RTDisplayMonitor
C++
rtdisplaymonitor.cpp
RTDMILProcessing
C++
DMILProcessingMaster
dmilprocessing.cpp
DMILProcessingSlave
dmilprocessingslave.cpp
milweb
milweb
processing
whatsnew_processing