Reviews of Vision Software

k2bytes' review of Machine Vision Libraries - Every company that decides to develop its own software for machine vision first has to answer the question: "How do we make this happen?"....

Vision Software Applications

Advanced Digital Imaging Solutions Laboratory (ADISL)
Image Apprentice is a C/C++ based Image Processing Learner's Toolkit. Students use it as a companion to their favourite Image Processing Textbook. It allows one to use self-written image processing algorithms as plugins.
It comes with a Plugin Development Kit (PDK) that has a skeleton code having a simple coding style. A student who has attended a 101-level course in C/C++ programming is well-equipped to write an Image Processing plugin for Image Apprentice using Visual C++.

AForge.NET is a C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, etc.

AllSeeingI (ASI) is the codename for a computer vision and visualization framework. It is a visual programming environment for rapid development and easy reusability.

Editor's Note - This project is just getting started but may be a chance for developers to contribute to a brand new vision system.

Blepo is an open-source C/C++ library to facilitate computer vision research and education. Its goals are threefold:
1. to enable researchers to focus on algorithm development rather than low-level details such as memory management, reading/writing files, capturing images, and visualization, without sacrificing efficiency;
2. to provide a common platform for computer vision research, so that researchers can more easily share their latest algorithms with each other for comparison and extension; and
3. to capture a repository of the more mature, well-established algorithms to enable their use by others both within and without the community to avoid having to reinvent the wheel.

The library is aimed at doing computer vision by finding 'blobs' on an image , that is to say areas whose brightness is above or below a particular value.
It allows to compute blobs'edges as well as blobs'bounding box. However, the library does not perform blob tracking, it only tries to find all blobs each frame it was fed with.
It was primarly developped for Processing (Beta) but can be used in any java programs.

BoofCV is an open source Java library for real-time computer vision and robotics applications. Written from scratch for ease of use and high performance. Its functionality covers a wide range of subjects including, optimized low-level image processing routines, camera calibration, feature detection/tracking, structure-from-motion, and recognition. BoofCV has been released under an Apache 2.0 license for both academic and commercial use.

The Camellia Library is an open source Image Processing & Computer Vision library. Written in plain C, it is cross-platform (Unix / Linux, Windows) and robust. It already includes a lot of functions for image processing (filtering, morphological mathematics, labelling, warping, drawing, project/backproject, color conversion, loading/saving images, etc.), most of them being highly speed-optimized.

CellProfiler is free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically. See their papers on analyzing cell images and non-cell images.

The CImg Library is an open source C++ toolkit for image processing. It provides simple classes and functions to load, save, process and display images in your own C++ code. CImg stands for "Cool Image" : It is simple to use and efficient. It's like a STL for image processing!

Project goal was to create a simple, robust vision system suitable for real time robotics applications. The system aims to perform global low level color vision at video rates without the use of special purpose harware.

One of the primary purposes of the CVIPtools development is to allow students, faculty, and other researchers to explore the power of computer processing of digital images.
The newest version of CVIPtools, version 4.3, developed at the Computer Vision and Image Processing Laboratory at Southern Illinois University at Edwardsville, under the continuing direction of Dr. Scott E Umbaugh is currently available with the new textbook, Computer Imaging: Digital Image Analysis and Processing.

DigiFlow is a new image processing system designed specifically for research in fluid dynamics. DigiFlow replaces DigImage, originally released in 1992 and now used in 36 leading fluids laboratories around the world.

easyVision is an experimental Haskell system for fast prototyping of computer vision and image processing applications.

Code for the Edge Detection and Image SegmentatiON system. This system is a low-level feature extraction tool that integrates confidence based edge detection and mean shift based image segmentation. It was developed by the Robust Image Understanding Laboratory at Rutgers University.

eLynx Image Processing SDK and Lab. Windows & Linux image processing tools. Supports multi-core, 8 to 64-bit resolutions for grey,RGB,HLS,CIE Lab and Bayer images. Handles dng,tiff,fits,jpg,j2k,png and raw file formats. eLynx lab is a GUI application based on wxWidgets & eLynx SDK.

Filters is a library (not an application) implementing image filters and image processing functions.

flob is a fast flood-fill multi-blob detector that works in processing. It is a jar library that tracks blobs and simple features in processings' image streams. It has been tested on Windows, Mac, and Linux.

FreeImage Algorithms
FreeImage Algorithms is an image processing library built on top of FreeImage. Although originally created for images involving cells it could be used for a large range of tasks. Some of the features include Arithmetic operations, Statistical operations, Convolution and related filters, Predefined Palettes, FFT, Binary Morphology, Particle finding - Ie Labelling of binary images, HBITMAP conversions (Win32), Drawing - Basic Shapes / Convex Hull, Distance Transform, Flood Fill, Linear Scaling, Many utility functions including min max finding in an image, Get Pixels values along a line, Create images from arrays of data.

Gamera is a cross platform python library for the creation of document recognition systems. It combines a programming library with GUI tools for symbol training and interactive image processing. Apart from providing a set of commonly needed functionality for document image analysis, Gamera additionally allows for custom plugins as Python or C++ Plugins and as Toolkits.

The Fast Computer Vision and Numerical Library. Gandalf is a C library designed to support the development of computer vision applications.

G'MIC is a console-based image processing tool whose goal is to convert, manipulate and visualize generic 1D/2D/3D multi-spectral image datasets. This includes classical color images, but also more complex data as image sequences or 3D volumetric images. It has been designed with portability in mind, and thus runs on a wide variety of different plateforms.

GPUCV is a free GPU-accelerated library for image processing and computer vision. It offers an Intel OPENCV-like programming interface for easily porting existing applications.

Gwyddion is a modular program for SPM (scanning probe microscopy) data analysis. Primarily it is supposed to be used for analysis of height fields obtained by means of scanning probe microscopy techniques (AFM, MFM, STM, NSOM), but generally it can be used for any other height field analysis or image analysis.

Gluas plus GIMP - GNU Image Manipulation Program
Gluas is a GIMP plug-in providing a enviroment for testing algorithms for image processing. The environment contains a simple editor for entering the algorithms. It uses the lua interpreter.

iLab Neuromorphic Vision C++ Toolkit (iNVT)
The iLab Neuromorphic Vision C++ Toolkit is a comprehensive set of C++ classes for the development of neuromorphic models of vision. Neuromorphic models are computational neuroscience algorithms whose architecture and function is closely inspired from biological brains. The iLab Neuromorphic Vision C++ Toolkit comprises not only base classes for images, neurons, and brain areas, but also fully-developed models such as our model of bottom-up visual attention and of Bayesian surprise.

IM Toolkit
Windows and UNIX - The idea behind IM was to create a toolkit that was not so complex as OpenCV, neither so big as VTK, but that can be used as a solid base to the development of thesis and dissertations, as for commercial applications.

ImageJ is a public domain Java image processing program inspired by NIH Image for the Macintosh. It runs, either as an online applet or as a downloadable application, on any computer with a Java 1.1 or later virtual machine. Downloadable distributions are available for Windows, Mac OS, Mac OS X and Linux.

Editor's Note - This project is geared towards medical image analysis. If you need to analyze image cross-sections, break/create image stacks, then this package is worth some attention!

ImLib3D is a C++ library and visualisation system for 3D image processing. It contains most basic image processing algorithms, and some more sophisticated ones. ImLib3D images are STL-compliant templated containers.

Imalab is a powerful development environment for complex applications in computer vision. It allows for flexible interactive experimentation with the vision modules developed in the Prima team, and can be dynamically extended with new modules. A versatile scripting mechanism provides for fast and convenient interactive development.

Editor's Note - Most of the documentation is in French.

IMLAB is a free open source graphical application for Scientific Image Processing that runs in Windows, Linux and many other UNIX systems. It supports multiple windows, data types including 32 bit integers, 32 bit real numbers and complex numbers. It is implemented in C++ and also in C to provide a very simple way to add new functions. It has many image operations and supports several file formats.

Intel® Integrated Performance Primitives (Intel® IPP) is a software library of highly optimized functions for multimedia, audio, video, speech, computer vision, image and signal processing.

IMPROMPTU, which stands for IMage PROcessing Module for the Prototyping, Testing, and Utilization of image analysis processes, is a software package for multi-dimensional image processing. With IMPROMPTU, a user can construct an arbitrary sequence of operations to run automatically on an input volume. This sequence, referred to as a process, can be made up of operations selected from any of several categories. Each category, which represents one general type of image-processing operation, contains a number of functions.

Jerry's Java Image Processing Pages. A great way to explore many image processing filters by experimenting with Java applets.

Java Advanced Imaging (JAI) API
The Java Advanced Imaging API provides a set of object-oriented interfaces that support a simple, high-level programming model which lets you manipulate images easily.

MegaWave2 is a free software intended for image processing. It is made of a C library of modules, that contains original algorithms written by researchers and a Unix/Linux package designed for the fast developpement of new image processing algorithms.

Leptonica Library
This site contains well-tested C code for some basic image processing operations, along with a description of the functions and some design methods. A full set of affine transformations (translation, shear, rotation, scaling) on images of all depths is included, with the exception that some of the scaling methods do not work at all depths. There are also implementations of binary morphology, grayscale morphology, convolution and rank order filters, and applications such as jbig2 image processing and color quantization.

The LTI-Lib is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. It has been developed at the Chair of Technical Computer Science (Lehrstuhl fuer Technische Informatik) LTI at the Aachen University of Technology, as part of many research projects in computer vision dealing with robotics, object recognition and sign language and gesture recognition.

Lispix is a public domain image analysis program for Microsoft Windows (PC), written and maintained by David Bright. It features a collection of special purpose research tools for electron microscopy and spectral imaging at NIST. Most of Lispix is written in Common Lisp.

LuaMat aims to provide a easy to use language to create visual effects and to modify images. LuaMat is a fast way to use the most popular algorithms of Image Processing and Computer Vision. As Lua, becoming the standard for video-game scripting engines, LuaMat is fast and has a simple syntax.

Machine Perception Toolbox
The MPT is a cross-platform collection of libraries for real-time perception primitives, including face detection, eye detection, blink detection, color tracking. Future versions will also include expression recognition, predictive color tracking, and tracking based on multisensor fusion.

The Mimas toolkit
Mimas was originally conceived as a platform for real-time machine vision research. Its aim was and still is to reduce the turnaround time of new research into the application workspace. It is written in C++ and is released in source code form subject to the GNU Lesser General Public License (LGPL).

MIRIAD (Multichannel Image Reconstruction, Image Analysis and Display) is a toolbox, in the form of an environment with a large set of moderate-sized program which perform individual tasks, involving calibration, mapping, deconvolution and image analysis of interferometric data. MIRIAD software is also part of the Hat Creek telescope control software; data obtained from the telescopes is directly written into MIRIAD format with a MIRIAD user interface.

Motion is a program that monitors the video signal from one or more cameras and is able to detect if a significant part of the picture has changed; in other words, it can detect motion.

Myrobotlab is a open source Java service based framework for robotics and creative machine control. Myrobotlab runs on the Java 1.6 JVM.

The MPT stands for "Machine Perception Toolbox" and is pronounced ``Empty'', ``Empty Box'', or "Mu". It supplies cross-platform libraries for real-time perception primitives, including face detection, eye detection, blink detection, color tracking. Soon it will also include expression recognition, predictive color tracking, and tracking based on multisensor fusion. In addition, it supplies many example which show how to embed the MPT functions in applications. It also provides applications (eyedetection, real time face tracking in video ...) which are useful applications in their own right. Finally, Matlab .mex interfaces are provided for many of these core libraries for those who like using Matlab.

NeatVision is a free Java based image analysis and software development environment, which provides high level access to a wide range of image processing algorithms through well defined and easy to use graphical interface. NeatVision is in its second major release.

The NMPT package consists of an API and a set of libraries for Machine Perception that were developed by Nicholas Butko. It can be obtained via the Download NMPT section. Directions for compiling the software (including platform-specific directions for installing OpenCV 2.1+) are in the Installation section. The central philosophy of this package is three-fold: Easy to Install, Easy to Learn API, Easy to Run.

NIH Image is a public domain image processing and analysis program for the Macintosh. It was developed at the Research Services Branch (RSB) of the National Institute of Mental Health (NIMH), part of the National Institutes of Health (NIH).

Editor's Note - The NIH IMAGE project is similar to ImageJ. In fact they are documented side by side. ImageJ is recommended to be used by PC based users as NIH IMAGE is a Mac based program.

OpenCV is an extensive open-source image processing library, built on the Intel Image Processing Library (IPL). OpenCV aids commercial uses of computer vision in human-computer interface, robotics, monitoring, biometrics and security by providing a free and open infrastructure where the distributed efforts of the vision community can be consolidated and performance optimized.

Outliner is a vectorizer of the edges in the raster pictures. The new edge detection algorithm is used. It is developed in Visual C++ 2010 Express Edition, using WinAPI and STL. The targeted audience for this project are developers. And the project's centerpiece is the algorithm of positionning contour dots and drawing stroke curves through them.

The OpenVIDIA project implements computer vision algorithms on computer graphics hardware, using OpenGL and Cg. The project provides useful example programs which run real time computer vision algorithms on single or parallel graphics processing units (GPU).

Peter Kovesi Research
MATLAB and Octave Functions for Computer Vision and Image Processing.

Projective Vision Toolkit
The Projective Vision Toolkit (PVT) is a series of utilities that allows one to take an image sequence and compute the fundamental matrix and trilinear tensor.
This can be used for such problems as camera selfcalibration, structure from motion, camera motion annotation, image stabilization, 3D tracking and recognition, etc.

pureImage is an open-source cross-language plugin framework, focused on the reuse of freely available image processing libraries.
Using pureImage, one can combine and re-use image processing functions, whether originating from different libraries or home-grown code, from different programming languages via a uniform interface. Right now, pureImage can be used under Windows and Linux, from C, C++, and Java. It provides bindings for OpenCV, CImg and other libraries.
pureImage is released by the Department of Knowledge-Based Mathematical Systems, Johannes Kepler University Linz, under the terms of the GPL v3.

QCV is a Qt-based computer vision framework library that provides an easy to use interface to display, analyze and run computer vision algorithms. The library is provided with practical examples to show what you can do with just a few lines of code. OpenCV is used as the supporting computer vision library. QCV offers a 2D visualization tool, an on-line on-the-fly parameter editor, a clock tool to evaluate computation times, and a control tool to manipulate input video and sequences of images. Multiple application examples that demonstrates the main features of this framework are provided.

Built upon the Qt library, it offers a set of computer vision and image processing algorithms, matrix, vector and tensor algebra functions, under an homogeneous object oriented API. It also provides a comprehensive set of wrapper functions for the Intel's image processing IPP library and a GUI based designer application that makes creating new programs a snap!

RAVL - Recognition And Vision Library
RAVL provides a base C++ class library, together with a range of computer vision, pattern recognition and supporting tools. The aim of RAVL is to move software developed within the Centre for Vision, Speech and Signal Processing at the University of Surrey, England for research purposes into the public domain and to support its use in a wider community.

Using RoboRealm you can create a low cost vision software solution with a standard webcam that allows you to explore the very complex world of image analysis and image processing. Through an easy to use analysis pipeline you can add image processing filters to translate an image into robotic movements, computer actions, or just plain fun! RoboRealm is free to download!

RobotVisionCAD or in short RvCAD is a computer aided design for Image Processing and Computer Vision. RvCAD's GUI presents users with a view where users drag and drop Image Processor Elements, and visually connecting them to form Image Processing Pipeline. RvCAD supports real-time live video processing from VideoForWindow, DirectShow(WDM) and Video4Linux on linux, compatible capture device.

SimpleCV is a Python interface to several powerful open source computer vision libraries in a single convenient package. With it, your software can have access to high level algorithms in feature detection, filtering, and pattern recognition in a unified framework. Forget about bit depths, file formats, color spaces, buffer management, eigenvalues, and matrix vs bitmap storage.

scikit-image is a collection of algorithms for image processing. It is available free of charge and free of restriction. The scikit-image SciKit (toolkit for SciPy) extends scipy.ndimage to provide a versatile set of image processing routines. It is written in the Python language. This SciKit is developed by the SciPy community.

SPIDER (System for Processing Image Data from Electron microscopy and Related fields) is an image processing system for electron microscopy.

TINA (TINA Is No Acronym) is an open source environment developed to accelerate the process of image analysis research. TINA provides functionality to assist in all areas of image analysis including handling of image, image feature and geometrical data; statistical and numerical analysis of data; GUI development as well as transmission and containment of data. TINA also provides a range of high-level analysis techniques for both machine vision (3D object location, 2D object recognition, temporal-stereo depth estimation, etc) and medical image analysis (MR tissue segmentation, blood flow analysis, etc).

Exploring Tekkotsu Programming on the Sony AIBO. Tekkotsu (see www.Tekkotsu.org) is an application development framework for the Sony AIBO robot dog. ("Tekkotsu" literally means iron bones in Japanese, and refers to a metal framework, such as the skeleton of a building.) At its lowest level, Tekkotsu provides primitives for sensory processing, smooth control of effectors, and event-based communication.

TLIB is an image processing library written specifically for real-time object tracking. It is meant for people with basic C/C++ programming and image processing skills. TLIB aims at fulfilling several goals: Efficiency, Ease-of-use,Portability,Educational,Use of multiple sources.

tnimage is a scientific image analysis program that allows you to create, edit, analyze, and produce color prints of images. It is particularly useful for analyzing images of SDS and agarose gels and X-ray or MRI images.

It's a machine vision library, written in simple C++ and based on the Torch machine-learning library. This package contains Basic image processing and feature extraction algorithms such as rotation, flip, photometric normalizations (Histogram Equalization, Multiscale Retinex, Self-Quotient Image or Gross-Brajovic), edge detection, 2D DCT, 2D FFT, 2D Gabor, PCA to do Eigen-Faces, LDA to do Fisher-Faces

Yayi is a generic open-source library for image processing and mathematical morphology. It is written in C++ and has a Python interface. It provides multidimensional and multispectral algorithms in one framework.

UTHSCSA ImageTool (IT) is a free image processing and analysis program for Microsoft Windows 9x, Windows ME or Windows NT. IT can acquire, display, edit, analyze, process, compress, save and print gray scale and color images.IT can read and write over 22 common file formats including BMP, PCX, TIF, GIF and JPEG.

VIGRA stands for "Vision with Generic Algorithms". It's a novel computer vision library that puts its main emphasize on customizable algorithms and data structures. By using template techniques similar to those in the C++ Standard Template Library, you can easily adapt any VIGRA component to the needs of your application, without thereby giving up execution speed.

VIP Base
VIPBase is a free software with unique features that are useful for image and video processing. These include Canny edge detection, Split / Merge videos, Affine, Perspective transformation, Radial distortion removal, Background subtraction, Camera calibration, and AdaBoost face detection and feature training

VXL (the Vision-something-Libraries) is a collection of C++ libraries designed for computer vision research and implementation. It was created from TargetJr and the IUE with the aim of making a light, fast and consistent system. VXL is written in ANSI/ISO C++ and is designed to be portable over many platforms. There are libraries covering numerical algorithms, image processing, co-ordinate systems, camera geometry, stereo, video manipulation, structure recovery from motion, probability modelling, GUI design, classification, robust estimation, feature tracking, topology, structure manipulation, 3d imaging, and much more.

XMegaWave (XMW) is a freeware graphical windows environment oriented towards image processing. The development of XMW has been based on the collaboration between researchers from the University of the Balearic Islands (Spain), the University of Las Palmas de Gran Canaria (Spain) and the University of Paris IX Dauphine (France).

XVision provides an application independent set of tools for visual feature tracking optimized to be simple to configure at the user level, yet extremely fast to execute.

Add Link?

Know of something that should be included in this list? Then please contact us and let us know!