mViz, comprehensive machine vision library


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

Text detection on a mobile phone screen

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 movement measurement from a distance
Fluorescence gauging in a test tube

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

Image pre-warping for skewed projection

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

Barcode and Data Matrix reader for mobile phones

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

Barcode and Data Matrix reader for mobile phones

Shape inspection

Many part inspection tasks work by comparing the part under scrutiny to a reference shape. Deviations from it form protrusions or intrusions which you want to detect.

The “Snake” device allows you to define shapes of arbitrary complexity and perform comparisons over the image.

Shapes made of straight line, circular arcs, elliptic arcs, splines, of arbitrary complexity. Detection of protrusion, intrusions or width anomalies, graphical and programmatic defect reports, guidance for parameter setting.

3D inspection

3D cameras open a new world of possibilities by adding the Z dimensions to describe the shapes. Different technologies are available to obtain point clouds or depth maps that capture the spatial geometry of the objects.

This allows to detect anomalies otherwise invisible, and to locate the objects with a 3D pose, for guidance or position control.

Point clouds, meshes or range images. Location of single or multiple instances. Merging of partial scans. Global measurements of size, area, volume… Alignment for robot guidance. Surface comparison. Graphical and quantitative difference reporting.

Barcode and Data Matrix reader for mobile phones

Image Comparison

A Comparator is a general and powerful tool to perform inspections in a simple way. The principle is to show one or more defect-free sample image(s), often called a golden template, and later compare next images pixel-by-pixel in order to detect significant discrepancies in the gray-levels or colors.

As fixturing is not always perfect, or can just be absent, the inspected items will have some motion freedom from picture to picture, so that realignment and intensity correction are performed before comparison.


mViz uses the programming paradigm, which means that you integrate function calls in your own application program, using your favorite framework and programming language, among C++, C++/CLI, C# and Visual Basic.

mViz supplies a rapid prototyping tool named mViz+, that lets you try the functions in a very interactive way, and build processing chains without any programming. Next, mViz+ will deliver the required source code in the desired language, ready for plugging to your application.

Interactive processing on your images. Instant visualization of the parameter changes. Rapid prototyping. Code snippet generation


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.

We're Here To Help!

My name*(Required)