mViz, comprehensive machine vision library

Compatible with the Microsoft C++, C# and Visual Basic compilers, and Linux gcc, 32 or 64 bits

Data Sheet

Full documentation (Download and unblock !)

Prototyping workbench (mViz+)

Full SDK (3.5.0 beta)

Full SDK (3.4.0)


Image Processing


The processing functions are used to prepare the image by reducing unwanted nuisances such as noise or blur, or enhance some properties such as connexity of characters, contrast… They usually turn images into other images.

This function set comprises point-to-point operations such as pixel arithmetic, lookup table transforms or shading correction. It also handles geometric transforms like rotation and scaling that allow f.i. deskewing or size normalization.

Point-to-point arithmetic & logic, grayscale & color transforms, shading correction, convolutions, morphology, geometric transforms

Image Analysis

The analysis functions are meant to extract condensed information from images or regions in order to characterize and classify 1D or 2D features.

They encompass histogram analysis, straight or curved profile extraction, and blob analysis. When numerical values are obtained, they can be used to compare objects to known references and discriminate between them.

Profile processing, histogram statistics, blob analysis, region masking, contouring

Image Calibration

An image is said to be calibrated when a mapping correspondance has been established between the pixel coordinates and some real-world coordinates system established on the observe surface.

The image calibration set provides support to compute the direct and inverse matching from a number of anchor points, and to deal with perspective distorition as well as optical deformations.

Scaling, isometry, Affinity, Perspective & Distortion Transforms

Edge Gauging

The edges of objects usually correspond to sharp transitions in the intensities in the image. Gauging enables very accurate measurements between edges in order to determine positions, distances, sizes, angles… with a subpixel precision.

This image set is specialized in profile analysis (peaks in a 1D signal) and fitting of straight or circular lines.

Automatic edge detection, outlier rejection, point model fitting, sub-pixel measurement

Pattern Matching

Pattern matching, also called template matching, is an excellent approach to locate objects in an image. It works by providing a sample image of the feature to be located and then searching for similar shapes in the target image.

The pattern matching tool of mViz supports translation, rotation and scaling and tolerates linear changes in light intensity. It is based on the well-known normalized correlation score.

Model training, sub-pixel location, rotation & scaling

Geometric Matching

By contrast to standard pattern matching, the geometric finder uses edge information rather than area information. This provides better robustness to occlusion, clutter, blur, non-linear intensity changes.

The geometric and standard pattern matching tools share a common API and can easily be traded for one another.

Model training, sub-pixel location, rotation & scaling

Character Reading


Many industrial applications require part identification. One of the ways to distinguish object is by printing a human-readable serial number on the surface or on a stickled label.

The character reading set serves two purposes: either to be able to read the content of the marking (OCR), or to verify that a given content has been properly printed (OCV).

Font training, deskewing, auto-segmentation, printed character recognition & verification

Bar Code Reading

A well-know alternative to printed characters are the barcodes. They come in numerous flavors and allow storing a number of digits and/or alphabetic characters. Depending on the type, the payload ranges from a few digits to a few tens of characters.

Automatic code location, recognition and decoding

Dot Code Reading

Another alternative to printed characters appeared more recently and is known as dot codes or 2D codes. They encode more information in the same space by allowing variations in two dimensions rather than one. To ensure data integrity, they also embed error detection and correction mean.

Automatic code location, recognition and decoding




When you can't find the desired features in the standard package, we are eager to extend them to suit your needs. Based on your description, we quickly issue a pricing estimate. If the requested changes are of general interest, the charge can be very low.


We usually deliver precompiled objects. If you prefer, the source code is available too. Contact us.