Installation
- get OpenCV: pure-opencv has been tested to work with OpenCV 2.0.
- on Windows, pure-opencv is build with the MinGW toolchain. For the provided Makefile also MSYS is needed. You can obtain binary releases of MinGW and MSYS here.
- get the latest svn sources for pure-opencv from here.
- set the correct location of the OpenCV headers and libs in the Makefile, e.g., opencvdir=C:/opencvpath or call make opencvdir=C:/opencvpath (Of course opencvpathhas to be replaced with the actual installation path of OpenCV).
- make install copy the pure-opencv files to your Pure library folder.
Overview
The basic idea of the Pure bindings to the OpenCV library is to only provide a one-to-one interface to the image and matrix processing function of OpenCV, but to also support a functional-style interface to those routines. As the OpenCV-projectalready contains several libraries, Pure's namespaces are used to sort the different provided functions.
The following libraries and functions are currently supported:
- cxcore: all function and constants are accessible from Pure
- cv: (nearly) all functions and all constants are accessible from Pure
- highgui: only cvLoadImage and cvSaveImage and the relateed constants are currently supported
- ml: no machine learning functions are supported, as this library is based on C++
Namespaces
The Pure interface to OpenCV is split into the following namespaces:
- cv: contains all constants and interfaces to call OpenCV functions in an functional style, meaning without side-effects. (An exception are the IO-functions like SaveImage and LoadImage, which indeed have side-effects).
- cv::core: contains a direct interface to all OpenCV functions from the cv and cxcore libraries. When using these functions, one must take care of the correct allocation of the used C-type structs.
Issues
- Sometimes calling functions from the Highgui lib crashes on WindowsXP. Here recompiling OpenCV with the MinGW toolchain helped. Unfortunately, the standard headers of the binary MinGW package (MinGW-5.1.6 at the time of this writing) do not fully support the Video for Windows lib. A manual upgrade of the MinGW WinAPI fixes this (look for w32api-3.14 at sourceforge).