You are here: Start » Introduction » Overview
Overview
Introduction
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 scope of the library encompasses:
|
|
Relation between Adaptive Vision Library and Adaptive Vision Studio
Each function of the Adaptive Vision Library is the basis for the corresponding filter available in Adaptive Vision Studio. Therefore, it is possible (and advisable) to use the Adaptive Vision Studio as a convenient, drag & drop prototyping tool, even if one intends to develop the final solution in C++ using Adaptive Vision Library. Moreover, for extended information about how to use advanced image analysis techniques, one can refer to Machine Vision Guide from the documentation of Adaptive Vision Studio.
In the table below we compare the ThresholdImage function with the ThresholdImage filter:
Adaptive Vision Library: | Adaptive Vision Studio: |
void ThresholdImage ( const Image& inImage, Optional<const Region&> inRoi, Optional<real> inMinValue, Optional<real> inMaxValue, real inFuzziness, Image& outMonoImage ); |
Key Features
Performance
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.
Consistency
The library is a simple collection of types and functions, provided as a single DLL file with appropriate headers. For maximum readability function follow consistent naming convention (e.g. the VERB + NOUN form as in: ErodeImage, RotateVector). All results are returned via reference output parameters, so that many outputs are always possible.
Example Program
A simple program based on the Adaptive Vision Library may look as follows:
#include <AVL.h> using namespace atl; using namespace avl; int main() { try { InitLibrary(); Image input, output; LoadImage("input.bmp", false, input); ThresholdImage(input, NIL, 128, NIL, 0, output); SaveImage(output, NIL, "output.bmp"); return 0; } catch (const avl::Error& er) { return -1; } }
Please note that Adaptive Vision Library is distributed with a set of example programs, which are available after installation.
Previous: Introduction | Next: Programming Conventions |