Code for Computer Vision Algorithms

The standard source for code to implement basic computer vision algorithms is the OpenCV Library from Intel. Many research groups build on top of this OpenCV code base. The avaliability of code for specific techniques or applications is harder to predict, but some implementations are made available by the authors and others are available from commercial vendors. The following pointers are organized somewhat by what the code does, and often by what the code is written in. If you follow the link for the reference you may find many related papers in the Computer Vision Bibliography. A number of lists of code for sub-areas (e.g. OCR) have been created by researchers in the past, but often these are no longer maintained. These lists are included in the above listing along with many of the individual entries in those lists. Current research and applications are highlighted in various general and topical Computer Vision and Image Processing conferences, especially applications workshops.

Related resources include:


Code Source References, Listed by Topic

For more information on the topics, contact information, etc. see the annotated Computer Vision Bibliography or the Complete Conference Listing for Computer Vision and Image Analysis

Code, 3-D Segmentation
      * *Seg3D: Volumetric Image Segmentation and Visualization

Code, 3-D Visualization
      * *map3d: Interactive scientific visualization tool for bioengineering data

Code, 3D Fly Through
Definition:* *Make3D

Code, Active Appearance Model
      * *AAM Building
      * *Active Appearance Models
      * *am_tools

Code, Active Blobs
      * Active Blobs

Code, Alignment
      * Fast, Approximately Optimal Solutions for Single and Dynamic MRFs

Code, Bundle Adjustment
      * Addingham Bundle Adjustment
      * Design and Implementation of a Generic Sparse Bundle Adjustment Software Package Based on the Levenberg-Marquardt Algorithm, The

Code, Camera Calibration
      * Flexible New Technique for Camera Calibration, A
      * Matlab Camera Calibration Toolbox
      * Versatile Camera Calibration Technique for High-Accuracy 3D Machine Vision Metrology Using Off-the-Shelf TV Cameras and Lenses, A

Code, Chain Code
      * *Chain Code Representation
      * Fast Chain Coding of Region Boundaries

Code, Chain Code, C
      * *Chain Code Representation

Code, Computer Vision
Definition:* *GPU4Vision
      * *Handbook of Computer Vision and Applications. 3. Systems and Applications
      * *OpenCV
      * *OpenVidia
      * *PEIPA Computer Vision Software
      * *VXL
      * Computer Vision and Applications: A Guide for Students and Practitioners
      * Handbook of Mathematical Models in Computer Vision
      * Invitation to 3-D Vision: From Images to Geometric Models, An
      * MATLAB and Octave Functions Software for Computer Vision and Image Processing
      * Practical Computer Vision Using C

Code, Computer Vision, C++
Definition:* *VXL

Code, Computer Vision, Matlab
      * MATLAB and Octave Functions Software for Computer Vision and Image Processing

Code, Convex Grouping
      * Robust and Efficient Detection of Salient Convex Groups

Code, Convex Hull
      * Exact polyhedral visual hulls

Code, Curve Segmentation
      * Nonparametric Segmentation of Curves into Various Representations

Code, Curve Smoothing
      * Non-Parametric Multi-Scale Curve Smoothing

Code, Depth from Focus
      * Rational Filters for Passive Depth from Defocus

Code, Distance Transform
      * Distance Transforms of Sampled Functions

Code, Document Analysis
      * *Gamera project

Code, Edge Detection
      * *Edison: Edge Detection and Image SegmentatiON system
      * Combined Corner and Edge Detector, A
      * Global Measures of Coherence for Edge Detector Evaluation
      * Logical/Linear Operators for Image Curves
      * Recursive Filtering and Edge Tracking: Two Primary Tools for 3D Edge Detection
      * Susan: A New Approach to Low-Level Image-Processing

Code, Ellipse Fitting
      * Ellipse-Specific Direct Least-Square Fitting

Code, Energy Minimization
      * Computing geodesics and minimal surfaces via graph cuts

Code, Eye Tracking
Definition:* *openEyes

Code, Face Detection
      * *Face Detection Home Page

Code, Face Recognition
      * *Face Recogniton Home Page
      * CSU Face Identification Evaluation System: Its purpose, features, and structure, The

Code, Fourier
      * Shape Discrimination Using Fourier Descriptors

Code, Gait
      * *Baseline Algorithm and Performance for Gait Based Human ID Challenge Problem

Code, Geospatial
      * *OSGeo: Open Source Geospatial Foundation

Code, GIS
      * *OSGeo: Open Source Geospatial Foundation

Code, GPU
Definition:* *GPU4Vision
      * *OpenVidia

Code, H.264/AVC
      * H.264/AVC Refrence Software

Code, Head Tracking
      * Fast, Reliable Head Tracking under Varying Illumination: An Approach Based on Registration of Textured-Mapped 3D Models

Code, HEIV
      * HEIV based estimation

Code, Hough Transform
      * *Hough Transform Code

Code, Hough Transform, C
      * *Hough Transform Code

Code, Image Analysis
      * *C++ Template Image Processing Library
      * *Delft Image Processing library, The
      * *Image Processing Library 98
      * *ImageLib: An Image Processing C++ Class Library
      * *LibCVD: computer vision library
      * *NeatVision
      * *Noesis Vision
      * *Recognition And Vision Library
      * *Robot Vision 2 Inc.
      * Computational strategies for protein quantitation in 2D electrophoresis gel image processor for Matlab
      * Vista: A Software Environment for Computer Vision Research

Code, Image Analysis, C
      * *Delft Image Processing library, The

Code, Image Analysis, Matlab
      * *Delft Image Processing library, The

Code, Image Coding
      * Java-Based MPEG-4 Like Video Codec, A

Code, Image Coding, Java
      * Java-Based MPEG-4 Like Video Codec, A

Code, Image Compression
      * Compression Method for Arbitrary Precision Floating-Point Images, A

Code, Image Processing
Definition:* *AccuSoft
      * *Bioimage Suite
      * *Generic Programming for Computer Vision: The VIGRA Computer Vision Library
      * *GNU Image Manipulation Program
      * *Groningen Image Processing System, GIPSY
      * *Handbook of Mathematical Methods in Computer Vision
      * *HIPR2: Free WWW-based Image Processing Teaching Materials with JAVA
      * *Ifran View
      * *IFS: Image File System
      * *ImageJ-Plugins -- Various Plugins for the image manipulation software ImageJ
      * *ImageJ: Image Processing and Analysis in Java
      * *ImageMagick
      * *JPEG 2000
      * *JPEG: Joint Photographic Experts Group
      * *LibTIFF: TIFF Library and Utilities
      * *LTI-Lib
      * *MediaCybernetics
      * *Mimas
      * *OpenCV
      * *pbmplus Image File Format Conversion Package
      * 3-D Image Processing Algorithms
      * Algorithms for Graphics and Image Processing
      * Algorithms for Image Processing and Computer Vision
      * Building Imaging Applications with Java(TM)
      * Computer Vision and Image Processing: A Practical Approach Using CVIPtools
      * Concise Introduction to Image Processing using C++, A
      * Data Structures for Image Processing in C
      * Digital Image Processing Algorithms and Applications
      * Digital Image Processing Using MATLAB(R), 2nd Edition
      * Digital Image Processing: A Practical Introduction Using Java
      * Digital Image Processing: An Algorithmic Approach Using Java
      * Digital Image Processing: An Algorithmic Approach with MATLAB
      * Digital Signal and Image Processing Using MATLAB(R)
      * Fuzzy Image Processing and Applications with MATLAB
      * Handbook of Astronomical Image Processing
      * Handbook of Computer Vision Algorithms in Image Algebra
      * Handbook of Image Processing Operators
      * High Performance Computer Imaging
      * HIPS: A Unix-Based Image Processing System
      * Hypermedia Image Processing Reference
      * Image Analysis, Classification and Change Detection in Remote Sensing: With Algorithms for ENVI/IDL
      * Image Processing Handbook, The
      * Image Processing in Java
      * Image Processing with MATLAB: Applications in Medicine and Biology
      * Image Processing, Analysis and and Machine Vision: A MATLAB Companion
      * Machine Vision Algorithms in Java: Techniques and Implementation
      * Pattern Recognition and Image Processing in C++
      * Photo-Based 3D Graphics in C++: Compositing, Warping, Morphing, and Other Digital Special Effects
      * PIKS Foundation C Programmer's Guide
      * Practical Algorithms for Image Analysis: Description, Examples, and Code
      * Practical Image Processing in C
      * Principles of Digital Image Processing: Core Algorithms
      * Principles of Digital Image Processing: Fundamental Techniques
      * VIPS: A Digital Image Processing Algorithm Development Environment

Code, Image Processing, C
Definition:* *OpenCV
      * Data Structures for Image Processing in C
      * High Performance Computer Imaging
      * Numerical Recipes in C: The Art of Scientific Computing
      * PIKS Foundation C Programmer's Guide
      * Practical Computer Vision Using C
      * Practical Image Processing in C
      * Signal Processing Algorithms in Fortran and C

Code, Image Processing, C++
      * *C++ Template Image Processing Library
      * *Generic Programming for Computer Vision: The VIGRA Computer Vision Library
      * *Image Processing Library 98
      * *ImageLib: An Image Processing C++ Class Library
      * *LibCVD: computer vision library
      * *LTI-Lib
      * *Mimas
      * *Recognition And Vision Library
      * Concise Introduction to Image Processing using C++, A
      * Pattern Recognition and Image Processing in C++
      * Photo-Based 3D Graphics in C++: Compositing, Warping, Morphing, and Other Digital Special Effects

Code, Image Processing, Java
      * *HIPR2: Free WWW-based Image Processing Teaching Materials with JAVA
      * *ImageJ-Plugins -- Various Plugins for the image manipulation software ImageJ
      * *ImageJ: Image Processing and Analysis in Java
      * *NeatVision
      * Building Imaging Applications with Java(TM)
      * Digital Image Processing: A Practical Introduction Using Java
      * Digital Image Processing: An Algorithmic Approach Using Java
      * Image Processing in Java
      * Machine Vision Algorithms in Java: Techniques and Implementation
      * Principles of Digital Image Processing: Core Algorithms
      * Principles of Digital Image Processing: Fundamental Techniques

Code, Image Processing, Matlab
      * Digital Image Processing Using MATLAB(R), 2nd Edition
      * Digital Image Processing: An Algorithmic Approach with MATLAB
      * Digital Signal and Image Processing Using MATLAB(R)
      * Fuzzy Image Processing and Applications with MATLAB
      * Image Processing with MATLAB: Applications in Medicine and Biology
      * Image Processing, Analysis and and Machine Vision: A MATLAB Companion
      * Signal Processing Algorithms in MATLAB

Code, Image Retrieval
      * Evaluating Image Retrieval

Code, Image Stitching
      * *Panorama Tools
      * *XuvTools - eXtend yoUr View Toolkit

Code, Inpainting
Definition:* *restoreInpaint

Code, Isocontour
      * Probability Density Estimation Using Isocontours and Isosurfaces: Applications to Information-Theoretic Image Registration

Code, Kalman Filter
      * *Kalman Filter Library
      * Introduction to the Kalman Filter, An

Code, Landmarks
      * Precision Landmark Location for Machine Vision and Photogrammetry: Finding and Achieving the Maximum Possible Accuracy

Code, Learning
      * *Torch: Machine-Learning Library

Code, Levenberg-Marquardt
      * Algorithm for Least-Squares Estimation of Nonlinear Parameters, An
      * Levenberg-Marquardt nonlinear least squares algorithms in C/C++

Code, Mammography
      * Efficient presentation of DICOM mammography images using Matlab

Code, Matching
      * Implementation of the Self-Similarity Descriptor
      * LIBPMK: A Pyramid Match Toolkit
      * Modal Matching for Correspondence and Recognition
      * Software Library for Appearance Matching (SLAM)

Code, Mathematical Software
      * *NIST Guide to Available Mathematical Software

Code, Mesh Models
      * *VolMorph Documentation
      * ply2vri
      * Zippered Polygon Meshes from Range Images

Code, Modes
      * Mode-Finding for Mixtures of Gaussian Distributions

Code, Morphology
      * *Mathematical Morphology

Code, Mosaic
Definition:* *Photosynth
      * Scene Collages and Flexible Camera Arrays

Code, Motion Blur
      * 3-D Shape Estimation and Image Restoration: Exploiting Defocus and Motion-Blur

Code, Motion Capture
      * *CMU Graphics Lab Motion Capture Database

Code, Motion Segmentation
      * Implementation of Bilayer Segmentation of Live Video

Code, Motion
      * Linear Algorithm for Motion from Three Weak Perspective Images Using Euler Angles

Code, Music Processing
      * Staff Line Removal Toolkit for Gamera

Code, Neural Networks
      * Enhanced neural gas network for prototype-based clustering
      * Pattern Recognition with Neural Networks in C++

Code, Numerical Algorithms
      * Numerical Recipes in C: The Art of Scientific Computing

Code, Object Recognition
      * Spatial Priors for Part-Based Recognition Using Statistical Models
      * Weakly Supervised Learning of Part-Based Spatial Models for Visual Object Recognition

Code, OCR
Definition:* *GOCR
      * *Google Tesseract-OCR
      * Nist Form-Based Handprint Recognition System (Release 2.2)

Code, Open Source
      * *AAM Building
      * *C++ Template Image Processing Library
      * *LTI-Lib
      * *Mimas
      * *OpenCV
      * *OpenVidia
      * *OSGeo: Open Source Geospatial Foundation
      * *VXL

Code, Optic Flow
      * *Optic Flow Evaluation
      * Performance of Optical Flow Techniques
      * Real-Time Quantized Optical Flow
      * Robust Estimation of Multiple Motions: Parametric and Piecewise-Smooth Flow-Fields, The

Code, Pattern Recognition
      * *MultiSpec: A Freeware Multispectral Image Data Analysis System
      * *Presto-Box: Pattern REcognition Scilab TOolBOX
      * *PRTools: The Matlab Toolbox for Pattern Recognition

Code, PCA
      * Framework for Robust Subspace Learning, A

Code, Perceptual Grouping
      * Computing Perceptual Organization in Computer Vision
      * in-depth study of graph partitioning measures for perceptual organization, An

Code, Radar
      * *Radar Tools

Code, Radiometric Calibration
      * Radiometric Self Calibration

Code, Range Registration
      * *VripPack: Volumetric Range Image Processing Package

Code, Rectification
      * Rectification for any epipolar geometry

Code, Registration
      * elastix: A Toolbox for Intensity-Based Medical Image Registration
      * Iterative Image Registration Technique with an Application to Stereo Vision, An

Code, Relighting
      * Lighting Sensitive Display

Code, Restoration
Definition:* *restoreInpaint

Code, Retinex
      * Retinex in Matlab

Code, Retinex, Matlab
      * Retinex in Matlab

Code, Segmenation Evaluation
      * Automated Performance Evaluation of Range Image Segmentation

Code, Segmentation
      * *Edison: Edge Detection and Image SegmentatiON system
      * Berkeley Segmentation Dataset and Benchmark, The
      * Dynamic Threshold Determination by Local and Global Edge Evaluation
      * Efficient Graph-Based Image Segmentation
      * Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision, An
      * Graph Partitioning Active Contours (GPAC) for Image Segmentation
      * Intellegent Scissors: Interactive tool for image segmentation
      * Level-set image segmenation software
      * Matlab toolbox for Level Set Methods
      * Normalized cut image segmenation software
      * Ratio Contour Code
      * Robust Analysis of Feature Spaces: Color Image Segmentation
      * Segmentation skin cancer images

Code, Segmentation, C
      * Normalized cut image segmenation software

Code, Segmentation, C++
      * Robust Analysis of Feature Spaces: Color Image Segmentation

Code, Segmentation, Matlab
      * Matlab toolbox for Level Set Methods

Code, Shape from Shading
      * Integration of Shape from Shading and Stereo
      * Shape From Shading Using Linear-Approximation
      * Shape from Shading: A Survey

Code, SIFT
      * Distinctive Image Features from Scale-Invariant Keypoints

Code, Signal Processing
      * Signal Processing Algorithms in Fortran and C
      * Signal Processing Algorithms in MATLAB

Code, Snakes
      * *Mega Wave
      * *qsnake_demo
      * Gradient Vector Flow: A New External Force for Snakes

Code, Space Envelope
      * Space Envelope: A Representation for 3D Scenes, The

Code, Steerable Filter
      * Steerable Pyramid: A Flexible Architecture for Multi-Scale Derivative Computation, The

Code, Stereo
      * *Real Time Dense Stereo
      * *SRI Stereo Engine
      * Computing Visual Correspondence with Occlusions via Graph Cuts
      * Efficient Belief Propagation for Early Vision
      * Shape and the Stereo Correspondence Problem
      * Stereo Matching With Nonlinear Diffusion
      * Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms, A

Code, Structure from Motion
      * Automatic Non-rigid 3D Modeling from Video
      * Bundler: Structure from Motion for Unordered Image Collections

Code, Super-Resolution
      * *Super-Resolution Code

Code, Support Vector Machines
      * *LIBSVMTL: a Support Vector Machine Template Library
      * LIBSVM: a library for support vector machines

Code, Surface Appearance
      * Time-varying Surface Appearance: Acquisition, Modeling, and Rendering

Code, Surface Fitting
      * Linear Fitting with Missing Data for Structure-from-Motion

Code, Surgery
      * IGSTK: an open source software toolkit for image-guided surgery

Code, TIFF
      * *LibTIFF: TIFF Library and Utilities

Code, Tracking
      * Design and Implementation of People Tracking Algorithms for Visual Surveillance Applications
      * Fragments Tracker
      * GPU_KLT: A GPU-based Implementation of the Kanade-Lucas-Tomasi Feature Tracker
      * KLT: An Implementation of the Kanade-Lucas-Tomasi Feature Tracker
      * Learning the Statistics of People in Images and Video
      * Lucas-Kanade 20 Years On
      * Tracker Fusion for Robustness in Visual Feature Tracking
      * Tracking by an Optimal Sequence of Linear Predictors
      * Tracking Vector Magnetograms with the Magnetic Induction Equation

Code, Video Processing
      * *Rad Video Tools

Code, Viewing
      * *Lotus Hill Institute

Code, Visualization
      * *Mathematical Morphology

Code, Wavelets
      * *Mega Wave
      * Wavelab

Code, Wavelets, Matlab
      * Wavelab

For more information on the topics, contact information, etc. see the annotated Computer Vision Bibliography or the Complete Conference Listing for Computer Vision and Image Analysis