Machine Vision Algorithms
Each of the components examined plays an essential role in the machine vision process.
For example, lenses are important for acquiring a sharp and aberration-free image, while lighting is crucial for assuring proper illumination conditions, and cameras are essential for capturing an image at the right time and with the appropriate exposure.
And yet, despite the importance of each of these components to the overall vision system, none of them are capable of processing or interpreting the subject of a resulting image. The post-processing and interpretation of these images is completed by a customized set of machine vision algorithms which are used by a computer to interpret the characteristics of an acquired image and ultimately extract the information desired for the application, such as accepting or discarding a part, moving a robot, reading a code, recognizing a character or measuring a distance.
The information is usually codified as data structures, such as the digital image itself and its data format, or image regions and contours. Mathematical operators can then elaborate these data by means of transformations and formulas, for example to enhance some image characteristics, detect or extract specific features, match templates or fit shapes and geometric primitives.
Common machine vision software may include algorithms to elaborate images, reveal defects, extract and analyze image regions and edges, detect 2D and 3D edges and shapes, measure geometries, calibrate the vision system and correct its distortions, match templates, read codes or recognize characters.
Simplifying a bit, the mathematical operations and all the needed variables and results are usually collected in libraries or filters, which are collections of pre-written code that can be referenced by computer programmers and used to perform a specific task.
By calling a library and providing the needed inputs and variables, a computer programmer can easily complete a specific operation without needing to write each code portion from scratch. A machine vision algorithm that performs a complete image analysis often uses hundreds of libraries and filters, nested and interconnected.
The complexity of the whole algorithm structure is usually very high, for this reason many machine vision software's provide more user-friendly approaches to operate libraries and filters and to design the complete image analysis algorithm.