Common Vision Blox - Tools

PROGRAMMING LIBRARY

FOR DEMANDING MACHINE VISION TASKS

CVB Foundation Package

Comprehensive collection of optimised algorithms

The CVB Foundation Package builds on the power of CVB Image Manager and provides a powerful entry package for developers that require generic machine vision tools. The package includes the full functionality of CVB Image Manager complemented by a comprehensive set of general imaging algorithms, optimised to take advantage of modern acceleration techniques. In addition direct image access for other 3rd party libraries, such as Intel IPP and Open CV enables robust acquisition coupled with the widest choice of algorithms.

With the release of CVB 2018, parts of the Foundation Package are now supported under Linux on x86 and ARM platforms.



What is included in the CVB Foundation Package?

The comprehensive collection of optimised algorithms includes functions for edge detection, blob detection, statistical image analysis, image filtering, plus an extensive range of arithmetical and logical functions.

  • Advanced Bayer to RGB conversion with powerful algorithms and white balancing
  • Correlation based pattern matching for general pattern matching tasks
  • Arithmetic and logical image operators
  • Non­linear transformations and image calibration
  • Statistical image analysis
  • Colour space conversion
  • Image filtering including convolution and morphology
  • Advanced look­up tables
  • Sophisticated thresholding functions including dynamic threshold
  • Destructive text overlays for secure image archiving
  • Optical Flow producing high­density movement vectors
  • Image segmentation like watershed transformation
  • Wavelet transformation for image analysis
  • Basic barcode reading

Functions for optical flow

Analysing movement is an important but complex task in machine vision. It is challenging to calculate optical flow at real­time frame rates, so this is rarely seen in imaging libraries. In CVB, optical flow is an efficient algorithm capable of detecting less than 2 degrees of angle and 1/10 pixel movement in determining the distance moved.

The algorithm uses a block­matching technique to determine the movement between images. By modifying the block­size, it is possible to optimise an application for speed or resolution.

Applications for Optical Flow include any type of movement analysis and the display of local motion vectors. Examples include the bulk flow of materials in a production environment, robot cell monitoring and particle imaging velocimetry (PIV).

Metric ‒ functions for 3D calibration

3D calibration is often a pre­requisite before it is possible to perform any further analysis on 3D data. The Metric functionality in CVB Foundation uses a calibration target to remove distortions and transform from a pixel coordinate system to real­world units.

Metric allows a calibration result to be created, this can then be applied to incoming rangemap images using Image Manager core 3D functions, enabling calibrated pointclouds that can be analysed directly, or transformed back into "rectified rangemaps" for processing by 2D image processing tools.

Functions for barcode reading

The latest version of the CVB Foundation Package includes barcode reading functionality. ZXBarcode can read a variety of 1D and 2D symbologies and is particularly good at reading QR codes, even badly distorted ones.

For more demanding applications there is also a premium CVB Barcode tool with enhanced performance and includes barcode grading

Functions for the statistical evaluation of images

Quick and easy analysis of an image using statistical calculations such as mean value, standard deviation, etc. Ideally suited for evaluation of object completeness and presence checks, surface inspection (homogeneity, scratches, print, etc.), or the supervision of a camera image in regard to integration time, lighting, etc.

Functions for blob analysis and segmentation of objects

Counting and measurement of geometric dimensions of objects with coherent pixel areas (blobs). The surface area, diameter or position, orientation and shape parameters of any object can be determined using this algorithm. Especially useful for verification of shape completeness (i.e. drilling, junking), also known as connectivity.

Functions for edge detection

Optimised functions for subpixel edge detection and subsequent measurement of positions in an image. Regardless of whether single edges, edge pairs or multiple edges are concerned, the geometrical dimension of any object can be determined.

Functions for image arithmetic and logic

Extensive set of functions for pixel-level, arithmetic and logical combination of images. Allows easy image calibration, image averaging or image masking. Specific areas of an image can thus be hidden and spatial interferences can be removed.

Functions for superimposing destructive text overlays

This functionality allows the incorporation of user definable texts and numbers into any position within an image. The text replaces the original image data, making this function specially useful for adding timestamps, markings or other information for error tracking or archival purposes. Type styles can be selected using a wide range of fonts and styles and can be generated in different sizes and notations.

Functions for image filtering

Comprehensive collection of highly optimised filter algorithms for fast image preprocessing. The use of these filters makes it possible to intensify or attenuate certain image details in order to simplify or accelerate the subsequent analysis.

Functions for binarization using dynamic thresholding

The use of dynamic thresholding simplifies the processing of image data in situations with illumination variations. Using binarization, grey value images are translated into pure black & white images and the dynamic thresholding uses local thresholds that are automatically updated in case of local changes in illumination.

Functions for 2D-calibration of image data

Correction of distortion and optical aberrations arising from lens distortions or non-perpendicular viewing angles. After the calibration is defined, the algorithm produces corrected image data for further processing. This is an easy way to transform images on cylindrical surfaces for example.

Functions for colour processing

Depending on the image content and the analysis task, conversion of the original image into other colour spaces can simplify further processing. The functionality provides a number of highly optimised algorithms for segmentation of the input image into brightness, colour and saturation.