Introduction - Download Overview - Contact

  Computer Vision Code

This page is developed out of an MIT source page.

Dynamic Object Intersections

Intersections in which the objects are moving relative to one another, can be defined as a static intersection, or can be understood using a boolean logic.

For static intersections the general principle is that even if both objects are moving, only one has to be considered moving. That is, one object's movement vector can be subtracted from both objects, leaving one object at rest.

Another approach  can be catagorized as boolean, this helps to define whether the objects intersect at all, or the location where the actual intersection of the two moving objects occurs.

An effective compilation of object intersection software is available at the realtime rendering site.

Much of the available source code available to be applied for machine vision is based in computer game rendering.

Of direct interest is:
People Tracking for Visual Surveillance

Research done on the Tracking of People in camera images for automatic visual surveillance systems, at the University of Reading.
The research is being carried out within the European Framework V project ADVISOR in which an integrated visual surveillance and behaviour analysis system is being developped. The People Tracker  used for the project is based on the Leeds People Tracker which was developed by Adam Baumberg. 

W4 from the The University of Maryland Institute for Advanced Computer Studies (UMIACS)

UK and EU-funded research and development projects such as CROMATICA, PRISMATICA and ADVISOR, all involving major European public transport operators.

The file below contains a demonstration of the Pairwise 2D Object Recognition software. This software was developed by the Electronic Systems Group in the University of Sheffiled. The software can be used to automatically construct edge based repres-entations of large numbers of objects and then recognise and locate these objects in cluttered scenes. The technique is view based and matches more closely the processes thought to exist in the primate brain. It is more generic than the wire frame techniques demonstrated in the 3D matcher and is suitable for fast implementation on fine-grained parallel hardware.


The Open Source Computer Vision Library provides a wide range of functions, including gesture recognition, object-tracking, face recognition and camera calibration, that will help researchers develop ways to use "computer vision" as a method for people to interact with computers.
University of Pennsylvania Computer Vision Source code
The journal of graphics tools has some code related to the papers
3-D Graphics Software 
Computational Geometry Resources 
Directory of /pub/Graphics
Graphics Gems Repository 
TOG : Software Related Tools and Resources 
Graphics Software Archive 
Directory of Computational Geometry Software 
Seth Teller : GeomLib 
Joseph O'Rourke
Ledalite library
The 3D Coding Blackhole
Software Related Tools at ToG
The Stony Brook Algorithm Repository
The Intel Computer Vision Library


                Gandalf is a computer vision and numerical algorithm library, written in C

CVonline: The Evolving, Distributed, Non-Proprietary,

On-Line Compendium of Computer Vision: Motion and Time Sequence Analysis

FAQ Frequently Asked Questions 
Graphics FAQ
list of graphics related faqs 

Computer Vision

Computer Vision software
David Eggert's Software Center (aspect graph)

                VXL is a collection of open-source C++ libraries for Computer Vision research and implementation, produced by an international consortium of researchers.The core libraries in VXL are:

* vnl (numerics): Numerical containers and algorithms. e.g. matrices, vectors, decompositions, optimisers.
* vil (imaging): Loading, saving and manipulating images in many common file formats, including very large images.
* vgl (geometry): Geometry for points, curves and other elementary objects in 1, 2 or 3 dimensions.
* vsl (streaming I/O): Platform independent binary I/O functionality.
* vbl (basic templates): Useful templated C++ classes and functions in STL style. e.g. smart pointers, 2d and 3d arrays, sparse arrays.
* vul (utilities): Useful non-numeric bit of code, e.g. for file, directory, and url handling, command-line parsing, using strings, timing, etc.

As well as the core libraries, 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. These libraries may be in the VXL package, or in one of the add-on packages such as tbl or oxl or rpl which contain useful code that may not be up to the excellent quality standards of VXL.

Carnegie Mellon University Computer Vision Home Page

                A class library for POSIX/Windows development with built-in support for object identification, object factories, object marshalling, and multi-threaded support.

                  A C++ Library for computer vision.

Image processing

Magic - Magic Software, Dave Eberly's online computer graphics related software repository.
PEIPA - The Pilot European Image Processing Archive
Utah Raster Toolkit 
Vision and image processing software
University of Florida Image Algebra Project

Here is a short collection of useful tools. Selected by the demand observed on the relevant internet news groups, all programs are C source code

Chain code:  Input is a bi-level image, supposedly containing a single object as black pixels. The procedure returns the chain code corresponding to the object's boundary.
Hough transform:  For a bi-level image, this function computes the Hough transform. The resolution in Hough space can be changed to suit specific needs.
Thin:  Our version of the famous Zhang-Suen thinning algorithm.
Signature:  Calculates the signature of an object; that is, the set of (r, theta) values from the center of mass to the boundary of the object.
Vector templates:  For use with simple glyph-like objects. Construct a template by vectorizing the object boundary. Result can be rescaled and rotated when matching.

                Xapian is a high performance search engine library. It implements the probabilistic model of information retrieval, and is designed for use in applications ranging from full scale Web search engines to searching through email archives.

                LIMP is an image processing library for very large images.

Jungle Software Projects
                The jungle graphics library is a set of C++ classes that are either contributed directly from a researcher in the lab or are the hybrid of similar classes developed individually by separate researchers. The aim is to have a common set of general classes that are useful for research in computer graphics.

                               Real-time color classification and segmentation library.

froi || fs-fast region of interest
                               Provides ROI tools for the analysis of fMRI data.

Image manipulation

The Gimp (Amazing!)
What is OpenDX?



Open Visualization Data Explorer is a visualization framework that gives users the ability to apply advanced visualization and analysis techniques to their data. These techniques can be applied to help users gain new insights into data from applications in a wide variety of fields including science, engineering, medicine and business. Data Explorer provides a full set of tools for manipulating, transforming, processing, realizing, rendering and animating data and allow for visualization and analysis methods based on points, lines, areas, volumes, images or geometric primitives in any combination. Data Explorer is discipline-independent and easily adapts to new applications and data. The integrated object-oriented graphical user interface is intuitive to learn and easy to use. For more information, select the What is IBM Open Visualization Data Explorer? link listed below. 

Mesh simplification

Jade and Metro


                OpenMesh is a generic and efficient data structure for representing and manipulating polygonal meshes.



                The "Xerox Particle Simulation Environment" brings computer assisted design to physical systems that use and manipulate particulate materials.


Blender (great!) 
The Mind's Eye

Global illumination

Blue Moon Rendering Tools
RAD Source Distribution 
Ledalite library
Illum: A Radiosity Program 
Cornell Testbed for Image Synthesis 
MGF Parser and Examples
Render Park


Abdula: Articulated Body Dynamics Using Low-complexity Algorithms
AERO - A Physically Based Simulation and Animation System

Volume rendering

Light Field

Open Scene Graph

                The Open Scene Graph is a cross-platform C++/OpenGL library for the real-time, photo-realistic rendering of large 3D models.

Volume rendering

VolPack Volume Rendering Library 
Visual computing group in Pisa 

                triangulation, volume, simplification

                Coin is an open source C++ class library / toolkit for 3D model retainment, Open GL rendering, and manipulation.

                Viz is a highly interactive data visualization tool for displaying large voxel-based data sets

C++ Nurbs Library

   Non-Uniform Rational B-Splines (NURBS) curves and surface are parametric functions which can represent any type of curves of surfaces


dimension-independent package for the representation and manipulation of spatial objects as simplicial complexes at multiple resolutions. 
object-oriented computational geometry library, just great! 
The LEDA Library
BSP trees by AT Campbell III 
GMV Home Page (Mesh viewer)
Algorithm Animation SystemGeomNet
a system for performing distributed geometric computing over the Internet 
Ernst Mucke's GeomDir
The ZipPack Polygon Mesh Zippering Package 
software of the Visual computing group in Pisa 
triangulation, volume, simplification 
Grid Generation CodesAvailable in US 
STRIPE (triangel strip generation) 
Triangle A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator.
GNU Triangulated Surface library
Enclosing Ball Software

                Arageli is aC++ library and a set of programs for computations in arithmetic, algebra, geometry, linear and integer linear programming.

Point shop 3D

                Pointshop3D is a system for interactive shape and appearance editing of 3D point-sampled geometry.


                A Tiny Vector and Matrix template libary


                This code implements an algorithm for computing the closest point transform to a triangle surface on a regular 3D grid.
Simple Geometry library, Steve Baker's vector, matrix, and quaternion manipulation library.


             C++ template classes for Geometric Algebras.

File formats

NCSA's file formats (3D and bitmap)
Image File Formats (at TNT) 
The Graphics File Format Page 
MGF Parser and Examples
format for global illumination
CICA Image File Formats List
CICA Movie File Formats List 
The Unofficial TIFF Home Page 
RGBE File Format


                libdvbpsi is a simple library designed for MPEG TS and DVB PSI tables decoding and generating


This web site provides definitive information about the C3D file format for programmers, manufacturers and end-users. The C3D format is a public domain, binary file format that is used in Biomechanics, Animation and Gait Analysis laboratories to record synchronized 3D and analog data.  It is supported by almost all 3D Motion Capture System manufacturers, as well as other companies in the Biomechanics, Motion Capture and Animation Industries.

The C3Dserver - a free Software Development Kit for C3D files with support for
                                 Visual Basic and C++.

 Free C3D software tools and documentation.


How to use image-based rendering in computer games 
The Game Programming Page
Crystal space Powerful 3D engine
PC-GPE on the Web
Rad game tools


                Platform independent commercial grade LGPL game engine.

The Nebula Device
                Nebula Device is an open source realtime 3D game/visualization engine, written in C++ and scriptable through Tcl/Tk, Python and Lua.


                Kyra is a simple, fully featured, industrial strength Sprite engine written in C++.


                GAUGE is a 3D game engine.

GTC: the Game Tool Chest

                GTC is a C library for making networked 3d interactive applications.


Gizmo 3D 
(High performance 3D Scene Graph and effect visualisation toolkit for Linux, WIN32 and IRIX) 
OpenGL resources and 3D graphics 
OpenGL WWW Center 
The Mesa 3-D graphics library
Quickdraw 3D
Peremptory Performer
Java 3D API
Gateway to OpenGL Info
Open Inventor
Open Inventor FAQ
Open Inventor Documentation 

                Very Fast Machine Learning toolkit for mining high-speed time-changing data streams and very large databases.
VFML is being distributed under a modified BSD license.
                XEngine is a platform- and rendering-API-independent 3D engine for real-time visualization with support for programmable graphics pipeline architectures and is implemented in C++.


                GLT is a C++ class library for programming interactive 3D graphics with OpenGL.

                QGLViewer addresses people programming in OpenGL to play around with three dimensional scenes or to write software that uses OpenGL.


                A class library to support multilayer 2D/3D-OpenGL-Applications.

                SimGear is a set of open-source libraries designed to be used as building blocks for quickly assembling 3d simulations, games, and visualization applications.


                ImLib3D is an open-source C++ library for 3D (volumetric) image processing.

                SPU-Toolbox, short for Sensor Processing Unit Toolbox, is a computer vision centric C++ API for frame-rate sensor control under Linux.

C++ Tree Traversing Package
                The "C++ Tree Traversing Package" is a package providing generic, templated classes for the efficient traversal and, with a small amount of extra work, search of almost all tree-like structures.

                NeL is a library. It is designed and maintained by Nevrax. This library contains a framework, a 3D engine, an AI engine and a  Network engine.

                The ZThread library is an advanced, object-oriented multi-threading library. It provides a set of objects to create and control interruptable threads.

                The Visualization ToolKit (VTK) is an open source, freely available software system for 3D computer graphics, image processing, and visualization.

 Interactive Visualisation Framework
                Ivf++ is a simple OpenGL/GLUT based C++ visualisation framework.

Digital Dawn Graphics Toolkit
                The DDG Toolkit is a Library of C++ classes to build real time 3D graphics applications.

Explicit Multi-Threading (XMT): A PRAM-On-Chip Vision
Research into parallel algorithmic methods, called PRAM (for parallel-random-access machine, or model). 
The XMT tools

User interface

(Open GL machine-independent C++ user interface library) 


3D object intersection
Fast, Minimum Storage Ray-Triangle Intersection 
Rayshade Homepage 
Ray Tracing News Guide
Persistence of Vision Ray Tracer 


Numerical recipes 

                Math Studio is an open-source project conceived to make typing and resolution of mathematical expressions more comfortable

                and easier.


                IT++ is a library of mathematical, signal processing, speech processing, and communications classes and functions.

                aimLib is an "array-independent mathematics library." This means that it can operate with any number of available array libraries.

               A comprehensive mathematics library in C

              A library for calculations with extreme precision.


reflection model (BRDF) viewer
PC demos explained
3D Engines List 
comparison o plenty of 3d engine 
Graphics Memory Library 
Welcome to the Jack Homepage 

The ITTI Gravigs Project

The Vislist 

The Vislist Digest is intended to embrace discussion on a wide range of vision topics, including physiological theory, computer vision, machine vision and image processing algorithms, vision techniques to support robot navigation and spatial representation, artificial intelligence and neural network techniques applied to vision, industrial applications, robotic eyes, implemented systems, ideas, profound thoughts; anything related to vision and its automation is fair game. 


Home | Site Index