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.


Download the Users Manual


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.

In-Place Execution

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.

Feature List

Here are some of the other main features:

  • Compatible with Windows and Linux
  • 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