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.
CamCap and CLAG
Links to the Nottingham video processing environment otherwise known collectively
as CamCap, for camera and video processing work and CLAG, for command line
based image processing/display and prototyping. The environment is windows
based and makes use of DirectShow and the intel open source computer vision
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
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
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.
A robot needs a computer vision system that can run on a single board computer. Many image processing and
computer vision libraries make design tradeoffs favoring broad algorithm coverage, accuracy and
extensibility rather than performance on a small platform. While this is good for applications
with workstation class computers, it is bad for small robots and other deeply embedded systems.
EmbedCV does not try to do everything. It is only focused on embedded computer vision practical
for low-end computing platforms (e.g. a 200 MHz ARM or Pentium single board computer). So EmbedCV
trades accuracy for speed and has a very limited selection of algorithms. It is not a general
purpose image processing library.
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 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.
HornetsEye also is an attempt to trim down the Mimas library
and create a minimalistic and consistent C++/Ruby real-time computer vision library with an interface to Ruby.
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.
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
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
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
Mavis is computer vision software for mobile robots. It's part of an ongoing, group robotics project, called Leaf.
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
Myrobotlab is a open source Java service based framework for robotics and creative machine control.
Myrobotlab runs on the Java 1.6 JVM.
Movid is an acronym that stands for Modular Open Vision Interaction Daemon.
Movid a cross-platform and Open Source vision tracking system, designed to be as
modular as possible. Their current focus is on detection and tracking of humans and
their interaction with computers as well as any objects they might use to do so.
It utilizes computer vision, but other sensing techniques could be added as well.
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
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
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
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
SPIDER (System for Processing Image Data from Electron microscopy and Related fields)
is an image processing system for electron microscopy.
The OVS is an open source multi-platform vision system that is being developed to test combinations
of algorithms and to develop a few new algorithms for experimentation purposes. This project
is currently in its infancy and is relatively small in size at current only 12KLOCs.
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.
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,
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.