- BrainTech's Odysee Development Studio
- Commercial program - A drag-and-drop environment for vision system
prototyping and testing (a la Wit, Vision Blox, Khoros, etc.). It is also
an open architecture so that one can import their own C/C++ functions. (by
Ajay Sidda / Odysee / BrainTech)
Calibration - Routines for calibrating using Roger Tsai's
perspective projection camera model. (by Reg
Willson / CMU)
grouping algorithm - Robustly locates salient convex collections
of line segments in an image.
list approximation code - From Nonparametric segmentation
of curves into various representations, PAMI 1995 pp 1140-1153. by
Paul Rosin and Geoff West.
- Contour modeling, extraction, detection, and classification.
Markov Model routines - Implementation of Forward, Backward,
Viterbi and Baum-Welch algorithms. The code follows Rabiner and Juang notation.
Written in c. (by Tapas
Kanungo / Center for
Automation Research / University
of Maryland, College Park)
- Intel Video
Capture Card Libraries for Linux - Research libraries for
the Intel Create & Share Camera Pack and the Smart Video Recorder III
to be used with C, Matlab, or Java on a Linux system
speed image capture into Matlab and C, and slower capture into Java. (by
/ Learning and Vision
Group / MIT)
- KLT -
An implementation of the Kanade-Lucas-Tomasi feature tracker. (by Stan
Birchfield / Stanford
Vision Lab / Stanford
Operators (by Lee
- A Mathematical Morphology Toolbox for the Khoros System
Stereo Algorithm - Code for the maximum-flow formulation
of the N camera stereo correspondence problem. (by Sebastien
Roy / NEC Research
- A framework for quantitative measurement of image texture classification
- Wavelet, Snake and Segmentation source code.
- Microsoft Easy
Camera Calibration Tool - a flexible camera calibration technique,
which only requires the camera to observe a planar pattern shown at a few
(at least two) different (unknown) orientations. (by Zhengyou
Zhang / Vision
Technology Group / Microsoft
Handwriting OCR Testbed - OCR software and datasets for UNIX
Homepage - source code for image processing and more.
A full English version will be available soon. (by Yudong
Yang / Computer
Vision Lab / Tsinghua
- Performance of Optical Flow
Techniques - Implementations of a number of optical flow
algorithms as well as test data and results.
These programs are described
in John Barron, David
Fleet and Steven
Beauchemin, Queen's University Tech Report RPL-TR-9107,
July 1992 (revised July 1993).
- Philip Torr's
stereo vision code - routines to generate corner matches
between images guided by RANSAC and epipolar geometry, fundamental matrix
estimation, synthetic data generation, trifocal tensor estimation, and more.
Torr / Machine
Learning and Perception Group / Microsoft)
- SAMPLEX Color
Classifier - Demos and software (requires licensing) (Purdue
- SRI Stereo Engine
Software - fast stereo software for PCs. It performs disparity
calculations and filtering in real time on images up to 320x240 in size.
( SRI Artificial Intelligence
Center / SRI International)
- Low-level image processing.
SUSAN is an acronym for Smallest
Univalue Segment Assimilating Nucleus. The SUSAN algorithms cover image
noise filtering, edge finding and corner finding. (by Steve
Smith / Oxford
- An object oriented framework for artificial vision.
low-level operations (FFTs, convolutions), pipes, Tk widgets, stereo and
optical flow modules.
of Skin-Cancer Images - Implementation of an algorithm for
segmenting images of skin cancer and other pigmented lesions (see Image
and Vision Computing, January 1999, pp. 65-74).
An automatic method
for segmention of images of skin cancer and other pigmented lesions is implemented.
This method first reduces a color image into an intensity image and approximately
segments the image by intensity thresholding. Then, it refines the segmentation
using image edges. Double thresholding is used to focus on an image area
where a lesion boundary potentially exists. Image edges are then used to
localize the boundary in that area. A closed elastic curve is fitted to
the initial boundary and is locally shrunk or expanded to approximate edges
in its neighborhood in the area of focus. Segmentation results from twenty
randomly selected images show an average error that is about the same as
that obtained by four experts manually segmenting the images. (by L.
Xu, M. Jackowski, A. Goshtasby, C. Yu, D. Roseman, S. Bines, A. Dhawan,
A. Huntley / Intelligent
Systems Laboratory / Wright
- A demo package for recognizing hand-drawn sketches through Size
Vision Mathematics group / University of Bologna)
Check Eero's home page for a tar file. (by
- TargetJr - A C++ Computer Vision
Environment - C++ programing environment with libraries to
support: image processing; image segmentation; camera modeling; 2-d and
3-d geometry; a graphical user interface based on FRESCO.
has been developed over the last 10 years, starting at GE's Corporate R&D
Center. Currently TargetJr is used by a number of vision research groups
with emaphasis on geometric algorithms and object recognition. TargetJr
is written in C++ and organized into a number of libraries including: numerics;
spatial objects; image; image processing; segmentation; computational geometry;
3-d modeling; and user interface. (by Joseph
Mundy, William Hoffman, Andrew Fitzgibbon, Peter Vanroose and Rupert Curwen
/ GE Corp. R&D, Oxford University, University of Leuven)
- Pattern recognition of multivariate numerical data.
- UNL Fourier
Features (UFF) - An implementation of a general purpose 2-D
shape description method. (by Thomas
of Calgary vision software - Includes chain code, Hough transform,
Polygon Mesh Zippering - Combines several range images into
a polygonal mesh.
Image Processing Toolkits
- PC-based image processing without the need of extensive programming
The following image processing functions are realized as
DLLs. The complete C source code of these DLLs is part of the standard pack.
Point, local and global, morphological operations Texture, image sequence
Histograms procedures Hough and color transformations Automatic counting
and interactive measuring Pattern recognition, graylevel profile General
purpose and display functions (
The Imaging Source)
- Aphelion - Commercial
image processing and understanding package for Windows. Features a rapid
prototyping environment, image processing and object recognition libraries,
and a vision tutorial.
Aphelion is a commercial software product which
can be used to quickly develop vertical imaging applications. It is a comprehensive
and powerful development environment and a delivery vehicle for image-based
applications, including a Graphical User Interface, Image Processing libraries
available as DLLs or ActiveX components, a Visual Basic compatible scripting
language, a chart server, etc. Aphelion provides the very latest developments
in mathematical morphology and symbolic representation/recognition, as well
as effective tools for quantitative analysis, microscopy, pattern recognition,
and classification. (by Bruno Lay / Amerinex
Applied Imaging Inc.)
- AutoTrace converts bitmap to vector graphics (by Martin Weber)
- Bersoft Image Measurement
- Measure length, angle, segments, perimeter and area in digital images.
Commercial package for windows.
Bersoft Image Measurement runs under
Windows 9.x/NT and it is intended to measure length, angle, segments, perimeter
and area in digital images. It can be used in multiple scientific disciplines,
such as Biology, Ecology, Geography, Agronomy, and Natural Sciences. It
also can export matrixes (Exporting RGB values) with the decimal or hexadecimal
values of the image pixels. The DEMO version can realize all the functions,
but only over images saved in a propietary format: Image Bersoft Bitmap
(bim extension). ( Bersoft)
- GUI-based computer vision and image processing tools, ANSI-C source
code and libraries for Windows95/NT and UNIX, extended computer imaging
Also contains an extended Tcl shell with all the computer
imaging functions. ANSI-C source code and libraries for image analysis,
image compression, image enhancement, image restoration, and many imaging
utilities. Used for both research and education, as well as applications
development. (by Scott
E Umbaugh, Greg Hance, Arve Kjoelen, Kun Luo, Mark Zuke, Yansheng Wei and
others / CVIP
Group / Southern Illinois
University at Edwardsville)
- Clemex Vision - Commercial
software for analysis of images from microscopes.
Vision Workshop - An image analysis tool based on the Vista
- C++ image processing library.
- DTU Image Viewer and Analyser
- The DIVA consists of a number of image analysis functions collected
in C++ template image classes and a windows interface, which handles a wide
variety of different image file formats and pixel types. Everything is available
as source code. (Section for Image Analysis / Technical
University of Denmark)
- Geographic Information System
Gems - Generally useful graphics and image processing subroutines
from the similarly-named books.
- HALCON - a commercial
computer vision tool consisting of an image processing library, C and C++
interfaces, and a rapid prototyping tool called HDevelop.
manufactured by MVTec, which is a spin-off of the Technische Universit?
M?chen and the Bavarian Research Center for Knowledge Based Systems (FORWISS).
The company is specialized in software solutions for image processing using
standard hardware and framegrabbers. HALCON covers a wide field of applications
like factory automation, quality control, medical image analysis, aerial
image analyis, surveillance, research, and education. (
MVTec Software GmbH)
- General Unix-based Image Processing System with C source code (Commercial
HIPS is a software package for image processing that runs
under the UNIX operating system. HIPS is modular and flexible, it provides
automatic documentation of its actions, and is almost entirely independents
of special equipment. It handles sequences of images (movies) in precisely
the same manner as single frames. Over 200 such image transformation programs
have been developed. HIPS is written in C, provided as source code, and
is both a set of separate programs as well as a callable library. (by
Michael S. Landy)
- A C library with extensive tools for computer vision, photogrammetry,
matrices/vectors, display (with Open GL for 3D), Kalman filtering and much
more. (by Phil
McLauchlan, Ali Rahimi / Centre
for Vision, Speech and Signal Processing / University
- ILIB Imaging Libraries
- commercial package of image processing libraries for the Windows environment
(C/C++ interface). It also includes neural and genetic imaging capabilities.
- IMAQ Vision -
Adds machine vision and image processing functionality to LabVIEW and ActiveX
containers (National Instruments)
- Freeware image processing toolkit for Windows
- Image Processing Library
- The main purpose of Image Processing Library (IPL) is to simplify
image processing under Windows environment. (
Medical Imaging Lab)
- Image Processing Library
98 - A platform independent image manipulating C/C++ library
The purpose of the library is to be useful, for combining tailor-made
image processing and interpretation with standard methods for acquisitions,
processing, display and storage of image information. Emphasis is put on
interactivity in projects made by students, as well as for advanced research
and development. (by Ivar Balslev and Ren?Dencker / The Maersk Mc-Kinney
Moller Institute for Production Technology / University
of Southern Denmark, Odense University)
- Image-Pro Plus
- Commercial image analysis software used in biological and industrial
- An Image Processing C++ Class Library (template based)
is a C++ class library providing image processing and related facilities.
The main set of classes provides a variety of image and vector types, with
additional modules supporting scalar and vector quantisation, wavelet transforms,
DCT transforms, and simple histogram operations. (by Brendt Wohlberg
/ University of Cape Town)
Image Processing Tools - Complements Pbmplus with edge detection,
high/low/band-pass filters, thresholding, etc. (by Simon Winder)
Image Processing Library - Optimized assembly MMX code for
image processing, pattern recognition, signal processing, and matrix manipulation
(no source - but still free) (
Performance Library Suite / Intel
- Interactive Data Language (IDL)
- IDL is a development environment for data visualization, 2D and 3D
graphics, and image processing.
- Khoros - An integrated
software environment for data exploration and visualization, visual programming
and simulation, and sofware development.
- LEADTOOLS Imaging Development
Toolkit - commercial toolkit that supports loading, saving, converting,
and processing of color, greyscale, and document images - Windows-based
commercial toolkit that (
LEAD Technologies, Inc.)
Real-time ImageProcessing System - multithreaded PC-based
image proccessing environment that supports realtime video processing.
LookingGlass is an Image Processing Environment for developing imaging applications
and for research and development of new image system. LookingGlass supports
real-time live video processing from VideoForWindow compatible device, and
also supports BMP, JPG, GIF89 and AVI or user can write a dll to support
other vdo format or image acquisition device. LookingGlass can produce AVI
file, sequence of BMP or JPG files, or just display images to screen, or
users can write a dll to do what ever output they want. LookingGlass is
derived from RobotVision2(http://www.ccs.neu.edu/home/psksvp/rv2.htm), so
LookingGlass uses the pipeline idea and support using the same IP-DLL as
RobotVision2. (by PongSuvan)
Pyramid Tools - MatLab tools for multi-scale (pyramid) image
This includes Laplacian pyramids, QMFs/wavelets, and
steerable pyramids as well as fast convolution routines, histogram tools,
and synthetic image generation.
- Microsoft Vision
SDK - Visual C++ library for vision which defines an image
object and supports digitizer independent image acquisition.
Image Processing - commercial Image Processing Environment
with ISO12087 based "drag and drop" modules and a powerful API
for C,C++ programming of own modules. (
Dynamic Imaging AS)
- A 3-D shape from contour package.
- Optimas: Analytical Imaging
- Complete commercial image-analysis program for Windows used in biological
and industrial measurement environments.
Optimas implements hundreds
of measurement, image processing, and image management operations, all available
from the graphical user interface. Optimas is designed for the imaging professional
who needs the ability to prototype and quickly develop custom imaging solutions,
and therefore includes an integrated development environment enabling one
to record, edit, and debug macros. It is being used the world over to develop
cutting-edge solutions to imaging problems. An Automation Server and Client
(formerly known as "OLE Automation") Optimas also allows itself
to be controlled via VB or any Automation Client, and conversely can control
Excel or any Automation Server via an elegant syntax. Help is richly linked
and context-sensitive. ( Media
- Image manipulation toolkit.
This is the standard toolkit
for Unix, it converts between dozens of formats. A version with many more
features called NetPBM
is also available, but may not be as easy to install. Some
NetPBM patches are available.
- Perl Data Language -
An extension to perl that implements fast, compact manipulation of large,
N-dimensional data arrays for scientific computing and image processing.
- real-time image processing software that uses any VideoForWindow(VFW)
compatible camera as the image source (by Pong
Suvan / Northeastern
- RobotVisionCAD(RvCAD) is an Image Processing Environment for developing
imaging applications and for research and development of new image system.
RobotVisionCAD(RvCAD) is an Image Processing Environment for developing
imaging applications and for research and development of new image system.
RvCAD supports real-time live video processing from VideoForWindow compatible
device, and also supports BMP, JPG, GIF89 and AVI or user can write a dll
to support other vdo format or image acquisition device. RvCAD can also
produce AVI file, sequence of BMP or JPG files, or just display images to
screen, or users can write a dll to output images to whatever device they'd
like. RvCAD is similar to an electonic logic gate simulation Program. Users
drag and drop RvCadProcessor components from the left tree view then connect
them together to build an ImageProcessing pipeline. (by pong
- SDC Morphology Toolbox for Matlab
- Matlab add-on: Gray-scale morphological tools for image segmentation,
non-linear filtering, pattern recognition and image analysis: watershed,
Euclidean distance transform, top-hat, reconstruction. (many real-life demonstrations)
- A set of vision algorithm development libraries written in C
TINA is the result of over 50 man years of vision research. It is a set
of libraries providing many levels of infrastructure for people wishing
to develop vision algorithms. It contains a vast array of code from image
reading and writing to depth estimation from stereo pairs. TINA is used
as an on-going research tool by several vision research groups in the UK.
It is written in C and has been compiled on many UNIX platforms including
Sun workstations, HP workstations and PCs running Linux flavours. It requires
only the basic UNIX system, a current gcc compiler and the X graphics libraries.
( University of Sheffield)
- The Delft Scientific
Image Processing Library - DIPlib is a scientific image processing
library written in C. It contains a large number of functions for processing
and analysing multi dimensional image data.
The library provides functions
for performing transforms, filter operations, object generation, and statistical
analysis of images. (by Michael van Ginkel, Geert van Kempen, Cris Luengo
Hendriks, Lucas van Vliet Geert van Kempen Cris Luengo Hendriks Lucas van
Vliet / Pattern Recognition
Group / Delft University
- The Image Processing
Tool Kit - Comprehensive set of image processing and analysis
routines in the form of Photoshop-compatible plug-ins for Mac and PC, with
extensive tutorial. (commercial package $$) (by Chris
Russ, John Russ)
- UTHSCSA ImageTool
- free image processing and analysis program for windows.
- Utah Raster
Toolkit - UNIX commands and C libraries for an 8 bits/pixel,
1-255 channel image format.
Contains a nice display tool for
X11; it's fast, supports animation and zooms in on any image. Wes
Barris' URT extensions are quite useful too.
- Tcl/Tk toolkit for visualization and interactive segmentation of 2D
Server - Video access library - VideoServer is a library for Visual
C++ that allows programmers to integrate realtime video access into their
applications with just a few lines of code. VideoServer should work with
most frame-grabbers and USB cameras. (by Kay Talmi / Vision Pearls /
- A flexible library of C-routines, command-line filters, and Motif
widgets for image representation and manipulation.
- Visus Imaging -
Image analysis toolkit and complete systems aimed at researchers and microscopists
in Biomedical and Material Sciences. (commercial product $$) (Foresthill
- WiT - Visual
programming environment for image processing (demo).
- XMegaWave, an Image
Processing Environment - a freeware graphical windows environment
oriented towards image processing, where the user can create his own function
in a very easy way.
Some european universities have developed a freeware
image processing environment, named XMegaWave (XMW). It runs on Unix workstations
or Linux machines, running Motif and X11 windows libraries. XMW includes
some classical procedures for image processing (edge detection, segmentation,
morphological filters). But the important thing is that XMW is also a programming
library, where the user can implement his own image processing algorythm
in C in a very very very easy way. The time needed to write the code and
debug it is very short, so you can obtain results rapidly. Besides, XMW
is a pedagogic tool suitable for using in image processing classes. It can
be explained in just one class, and the students can easily implement any
kind of image filter. (Image Mathematical Analysys Group (AMI) / University
Las Palmas )
- Demo of a commercial package.
- GD - a graphics library for
GIF creation - provides GIF read/write code in a C library.
It also provides minimal image manipulation functions (lines, arcs, text,
colors). Includes versions for Unix and Windows systems. (by Thomas
Boutell / Boutell.Com)
- GNU Image Manipulation
Program (GIMP) - Photoshop-style image editor.
- Ghostscript and
ghostview - PostScript previewer and pretty user interface
Ghostscript and supplemental font
files are also available.
- Load, display, process, save, and convert images in many formats.
Works on Unix, Linux, Windows, and Mac. Includes a display program, a converter,
screen capture, animator, and more.
- Imaging Primer
- Interactive and comprehensive images analysis and processing software
for windows95 (commercial product). (by Pepi Cima / Rio
- JPEG - Library
source code and simple display tools.
player and encoder
and fancy VCR-like
interface using Motif.
- OpenGL implementation.
- NIH Image
- for Macintosh
- TIFF - Library
source code and tools
Image Display and Analysis (VIDA) - Demo of a commercial
- X11 display tool.
Supports many animation and image formats ("everything"
except mpeg). Notes
on integrating xanim with Web clients/MIME are also available.
- X11 display tool.
Not as featureful as xv but it understands
nearly all the same formats and displays images much more quickly. Source
archive is available.
- XV - X11
Image Display tool.
Provides an amazing assortment of image operators,
reads and writes images in many different formats.
- Emulation of SGI GL library for X11.
Synthetic Data Generators
- CGAL - Computational Geometry
Algorithms Library - C++ library of geometric primitives
and standard data structures and algorithms used in computational geometry.
The CGAL project is a collaborative effort to develop a robust, easy
to use, and efficient C++ software library of geometric data structures
and algorithms. The CGAL library contains: - Basic geometric primitives
such as points, vectors, lines, predicates such as for relative positions
of points, and operations such as intersections and distance calculation.
- A collection of standard data structures and geometric algorithms, such
as convex hull, (Delaunay) triangulation, planar map, polyhedron, smallest
enclosing sphere, and multidimensional query structures. - Interfaces to
other packages, e.g. for visualisation, and I/O, and other support facilities.
For further information and for downloading the library and documentation,
please visit the CGAL web page: http://www.cs.uu.nl/CGAL/ Should you have
any questions or comments, please send a message to firstname.lastname@example.org (
- Netlib - Public
domain collection of mathematical software, papers, and databases.
Mostly in Fortran, but f2c (included in netlib) converts Fortran to C.
- Numerical Recipies
- Public Domain code for the famous book (only some of the code is public
- StatLib - Statistical
software, datasets, and information.
- Carina - commercial
package for recognizing license plates (Adaptive Recognition Hungary)
- Grabbo: vision-based MIDI controller
- Grabbo uses orientation histograms for realtime image matching and
3D interpolation. MIDI output. Free demo version for BeOS. (Tebo Software)
- IEEE-1394 Digital Camera
Windows Driver - Windows device driver and C/C++ software
library for IEEE-1394 digital cameras.
The web site also contains a
demo program, documentation, example images, links, and other information.
IEEE-1394 digital cameras are an ideal solution for acquiring high quality
images with a regular laptop computer. (by Iwan
Ulrich / Mobile
Robot Programming Lab / Carnegie
- Application to capture video to memory or disk using PC and Matrox
Meteor (written using Visual C++). (by Ross
Cutler / Computer
Vision Lab / UMCP)
- PicDB - an image
database system with query by image content capabilities.
- a video capture program used to capture uncompressed image sequences
using a PC configured with a 1 to 3 Bitflow RoadRunner digital frame grabbers.
(by Ross Cutler
/ Computer Vision Lab
/ University of Maryland)
- Renoir -
3D reconstruction from photos - 3D reconstruction from photos.
3D photomontage. ($$ payware $$ - free demo version available). Mainly useful
for computer graphics, but uses some computer vision techniques
of an object is created manually from parametric blocks. Corresponding edges
are marked on images and model. Camera and model parameters are reconstructed
through minimization of distance between projected edges of model and corresponding
edges, marked on photos. (by Ildar Valiev / Integra,