Voyant Vision is a FREE library of software functions that make developing machine vision solutions easier. It’s brought to you by Lecky Integration, a consulting business with more than 20 years’ experience creating customized machine vision systems that integrate cameras, lighting, and specialized software for use in factory automation, inspection, transportation and security applications.
This is the same software we use for our customers, so you can be sure it’s lab- and field-tested in some of the most demanding, real-world environments for the most exacting, real-world clients.
So why are we offering it for free? Because that’s just the kind of people we are. We love machine vision, we love software, and we love sharing what we know. You’ll find more than 600 super slick and totally free functions for everything from OCR and pattern recognition to color processing, bar-code reading as well as traditional metrology, presence/absence, edge finding and geometric mathematical operations. Grab the download and jump right into the machine vision love!
The Voyant Vision library is distributed as a single .h file and one lib file. Voyant was made by computer vision professionals for computer vision professionals.
For more information on installation, general programming guidelines, and example programs, see the Voyant Vision Wiki.
Three Interfaces to Fit Any Programming Model
Voyant Vision provides three levels of interfaces. The Raw Interface is designed to work seamlessly with third party libraries and easily supports various formats of 8-bit and 16-bit gray scale images. The Image Interface uses our vyImage image data structure, which vastly simplifies keeping track of image sizes and regions of interest. Support for rectangles, rotated rectangles, and line regions is built in. The Process Interface allows complete applications to be built. Processing functions are written individually for each region of interest. At execution time, the regions are loaded, processed, and results analyzed automatically using a single function call.
Many image processing algorithms examine a region of many pixels in order to compute a new value for a particular pixel. This means that newly computed pixel values cannot immediately be placed back into their original locations. At least without corrupting the calculation of new values for adjacent pixels. In the past, these algorithms were written to assume that there was a “source” image and a “destination” image, and that the new pixels were placed immediately into their locations in the destination. This architecture requires double storage for each image, and results in the image pixels bouncing from one buffer to another during processing. Modern CPUs and DSPs all employ advanced cache memory systems to maintain their processing throughput. The main principle necessary to enjoy the advantage of these systems is locality; that is, frequent re-accesses to the same memory locations resulting in what are known as cache hits.
Unfortunately, source/destination algorithm architectures interfere with locality, reducing the cache hit rate and reducing overall processing speed. To solve this problem, the Voyant Vision library uses an in-place architecture, in which new pixel values are buffered only until it is safe to place them back into the original image. Lecky Integration’s extensive machine vision research points to in-place execution as the best combination of speed, memory usage, and ease of code development.
Flexible Error Checking and Reporting
Voyant Vision contains a complete built-in error handling and reporting application which can also be used as a debugging terminal for programming use. Also every single function will also return an error code if anything goes wrong, saving you debugging time.
Here are some of the other main features:
Support for both C and C++ coding styles
Complete graphics overlay support
Handles both 8 and 16-bit images for maximum performance
High performance in-place execution optimizes cache hit rates
Support for rectangle, rotated rectangle, and line regions of interest
Fully automated coordinate transformation for regions of interest and real-world coordinates