This page uses cookies. For details and possible settings refer to our Privacy Policy.
Continuing to use this page means accepting the processing of cookie files.

Accept (hide info)

Machine Vision Library for C++ and .NET


Adaptive Vision Library is a machine vision library for C++ and .NET programmers. It provides a comprehensive set of functions for creating industrial image analysis applications – from standard-based image acquisition interfaces, through low-level image processing routines, to ready-made tools such as template matching, measurements or barcode readers. The main strengths of the product include the highest performance, modern design and simple structure making it easy to integrate with the rest of your code.

The functions available in Adaptive Vision Library closely correspond to the filters of Adaptive Vision Studio. Therefore, it is possible to prototype your algorithms quickly in a graphical environment and then translate them to C++ or .NET, or even generate the C++ code automatically.

Adaptive Vision Library gives you instant access to highest quality, well optimized and field-tested code that you need for your machine vision projects!




In Adaptive Vision Library careful design of algorithms goes hand in hand with extensive hardware optimizations, resulting in performance that puts the library among the fastest in the world. Our implementations make use of SSE instructions and parallel computations on multicore processors.

Modern Design

All types of data feature automatic memory management, errors are handled explicitly with exceptions and optional types are used for type-safe special values. All functions are thread-safe and use data parallelism internally, when possible.

Simplicity & Consistency

The library is a simple collection of types and functions, provided as a single DLL file with appropriate headers. For maximum readability functions follow consistent naming convention (e.g. the VERB + NOUN form as in: SmoothImage, RotateVector). All results are returned via reference output parameters, so that many outputs are always possible.

Featured Toolsets

Image Processing

High performance, any-shape ROI operations for unary and binary arithmetics, image refinement, morphology, smoothing, spatial transformations, feature extraction, gradient extraction, numerous thresholding methods, file IO and more.

Blob Analysis

Powerful set of robust operations for the classic technique of blob analysis. Provides numerous methods of blob extraction, set arithmetics, region refinement, any-kernel morphology, skeletonization, spatial transformations, feature extraction, measurements and more.

Contour Analysis

Subpixel-precise toolset designed as an alternative to blob analysis, particularly suitable for shape analysis. Provides methods for contour extraction, refinement, segmentation, smoothing, classification, global transformations, feature extraction and more.

Geometry 2D

Exhaustive toolset of geometric operations compatible with other parts of the library. Provides more than 50 operations for 2D geometry, including fitting of geometric primitives, measurements, intersections, tangents, feature extraction and more.

Histograms & Profiles

Auxiliary toolsets allowing to refine and analyze 1D data extracted from the image. Innovative design of the Library puts the classic histograms and profiles far beyond their usual applications. It is not uncommon in Adaptive Vision Library to analyze the profile of distance between two paths, or histogram of the numeric features extracted from a set of objects.

1D Measurement

Set of methods for the technique of extracting edges across image profile. The Library provides specialized methods for measuring paired edges of alternating characteristics and support measurements along any path.

Shape Fitting

Tools for subpixel-precise detection of straight edges, arc, circles or arbitrarily shaped contours. Supports not only edges, but also ridges and stripes (denoted by pairs of opposite edge contours).

Template Matching

Efficient, robust and easy to use methods for locating objects on images. The library supports both the standard normalized cross correlation, as well as an advanced edge-based (geometric) method.

Code Reading & OCR

Set of tools for detecting and recognizing barcodes, DataMatrix codes, QRCodes as well as printed or punched digits and letters.

Example Code

Below is an elementary, yet complete, example of acquiring images from a GigE Vision camera, thresholding them and saving to files on disk, all done with Adaptive Vision Library (C++):

Further Reading

For more code samples go to Code Samples.

For technical documentation refer to AVL Documentation and Function Reference.