Octave bindings for OpenCV

Here are Octave bindings for OpenCV, a collection of over 500 functions implementing computer vision, image processing, machine learning, and general-purpose numeric algorithms. The library can optionally use Intel's IPP library for better performance (via MMX, SSE, SSE2, etc).


This is a port of the Python bindings for OpenCV, and as such lives in the OpenCV source tree. When configured properly, the tree will produce an Octave binary package.

You must have a recent version of SWIG in your PATH (like from SVN, such that it supports Octave) and configure the tree with --with-octave and --with-swig. The build will produce an Octave package at $prefix/share/opencv/opencv-1.0.tar.gz. For example (assuming the loader sees /usr/local/lib),

$ tar xzf octave-opencv-031808.tar.gz
$ cd opencv-031808
$ ./configure --with-swig --with-octave
$ make
$ make install
$ octave -q
octave:1> pkg install /usr/local/share/opencv/octave/opencv-1.0.tar.gz
octave:2> pkg list
Package Name | Version | Installation directory
opencv *| 1.0.0 | /home/x/octave/opencv-1.0.0
octave:3> I=cvLoadImage("image002.png");

Using the library

There is extensive documention on the library available here, and online help is available using the help command in octave. The online help gives only the function prototypes, but when used in conjunction with the OpenCV manual, it should be sufficient to use the library.

Interoperability with Octave matrices and images is provided via the cv2mat, mat2cv, cv2im, and im2cv functions. There is online help available for these.


3/27/08: These bindings have been integrated into OpenCV. Latest sources are now available only from OpenCV CVS.

3/17/08: first release; alpha quality. Samples translated but not all running.
octave-opencv-031808.tar.gz (patched opencv, based on recent cvs snapshot)
octave-opencv-031808.patch.gz (just the patch)

octave-opencv was written by Xavier Delacour. Please send feedback, bugs, and/or patches to xavier dot delacour at gmail dot com.