Libraries comparison
Introduction
The below table summarizes mutually corresponding functions between OpenCV, Halcon and Adaptive Vision Library (AVL). Feel free to use this table when porting your program from one library to another. Please note, however, that in most cases the corresponding functions may not give the same results as their implementations are different in details. Quite often also the range of parameters exposed to the user will be different.
Most important general differences are:
- OpenCV does not have any data type for regions, so binary images must be used instead. Halcon has regions with unspecified implementation and which do not have specific outer dimensions. At the same time Adaptive Vision Studio provides Region data type which is always RLE-encoded and has specific dimensions (width and height) in the same way as images have. Thus you can consider regions to be more efficiently encoded binary images.
- The representation of multi-channel images is very similar in OpenCV and in Adaptive Vision Studio. It is so called interleaved representation, while Halcon focuses on planar images (each channel is represented in a separate memory fragment).
- The three libraries perform spatial image filters differently in areas close to the image borders. In OpenCV one can choose between different methods of extrapolating boundary pixels. Halcon always the boundary pixel is considered repeated beyond the image range. In Adaptive Vision Studio, spatial filters are performed by considering only the pixels that are in the image range.
Image Acquisition
AVL provides dedicated support for GenICam and GigE Vision industrial standards, as well as for specific camera brands - using SDK from their manufacturers. See also See also Camera Support.
Image Processing (Part I)
Here is a list of fundamental image transformations available in almost any library.
Image Processing (Part II)
More advanced image processing tools, including spatial filtering and transformations.
Region Analysis
In the OpenCV context, regions may be represented as binary image masks, but there are no true RLE-encoded regions. See also Region.
Geometry 2D
Geometrical algorithms are essential in processing results in most computer vision applications. For the full list see Geometry 2D – AVL provides a comprehensive geometry library with many more functions than presented below. AVL also provides simple utility functions described in comments.
Path
Here is a list of fundamental paths transformations available in almost any library. For the full list see Path.
OpenCV |
Halcon |
AVL |
Module |
Comment |
– |
close_contours_xld |
ClosePath
|
FoundationLite
|
|
Computer Vision
This section contains higher-level vision tools.
Camera Calibration
The three products have quite different approach to calibration functions. OpenCV provides basic distortion correction based on (x, y) transformation maps. Commercial libraries provide highly optimized remapping based on precomputed data, but also focus on coordinate space transformations and image stitching functionalities. For details see Camera Calibration and World Coordinates.
Machine Learning
Fundamental machine learning algorithms include K Nearest Neighbors, Support Vector Machines, Multi-Layer Perceptron and Principal Component Analysis. In the below table we provide just basic algorithms as a starting point for finding what you need.
Communication
The below table contains only basic functions. Please refer to detailed documentation for more details.
|