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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
Set of tools for detecting and recognizing barcodes, DataMatrix codes, QRCodes as well as printed or punched digits and letters.
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++):