Announce

PukiWiki contents have been moved into SONOTS Plugin (20070703)

OpenCV Installation

Table of Contents

Windows

Install OpenCV

Download OpenCV installer and install it. I assume you have installed onto C:\Program Files\OpenCV.

If you get an error "0xc0150002" when you run a compiled binary OpenCV application, you may need to install Microsoft Visual C++ 2005 SP1 Redistributable Package (x86).

MS Visual C++

Setup MS Visual C++

I write details based on MS Visual Studio 2005. Follow menus of MS Visual C++ window as:

  • Tools > Options > Projects and Solutions > VC++ directories >
  • Show Directory for: > Include Files. Now add
    C:\Program Files\OpenCV\cv\include
    C:\Program Files\OpenCV\cvaux\include
    C:\Program Files\OpenCV\cxcore\include
    C:\Program Files\OpenCV\otherlibs\highgui
    C:\Program Files\OpenCV\ml\include
    C:\Program Files\OpenCV\otherlibs\cvcam\include
    
  • Show Directory for: > Library Files. Now add
    C:\Program Files\OpenCV\lib
    
  • (Option) Show Directory for: > Source Files. Now add
    C:\Program Files\OpenCV\cv\src
    C:\Program Files\OpenCV\cvaux\src
    C:\Program Files\OpenCV\cxcore\src
    C:\Program Files\OpenCV\otherlibs\highgui
    C:\Program Files\OpenCV\otherlibs\cvcam\src\windows
    

Setup MS Visual C++ for each project

  • Right Click Project > Property >
  • Configuration Proeperties > Linker > Input > Additional Dependencies. Now add
    • cv.lib cxcore.lib cvaux.lib highgui.lib ml.lib cvcam.lib
  • Change 'Configuration' drop down menu from Release (Debug) to Debug (Release).
  • Do the same thing (Add .libs to Input)

Or, add below codes into your source codes above #include(s).

#ifdef _MSC_VER
#pragma comment(lib, "cv.lib")
#pragma comment(lib, "cxcore.lib")
#pragma comment(lib, "cvaux.lib")
#pragma comment(lib, "highgui.lib")
#pragma comment(lib, "ml.lib")
#pragma comment(lib, "cvcam.lib")
#endif

MinGW gcc/g++

Install MinGW

MinGW is a collection of freely available and freely distributable Windows specific header files and import libraries, augmenting the GNU Compiler Collection, (GCC), and its associated tools, (GNU binutils). MinGW provides a complete Open Source programming tool set which is suitable for the development of native Windows programs that do not depend on any 3rd-party C runtime DLLs.

  • Download Automated MinGW Installer from MinGW project page and install (gcc and g77)
  • MinGW originally does not include gdb debugger. If you want it, download .tar.bz2 of GNU Source-Level Debugger from MinGW project page and unarchive it.
  • Copy files into C:\MinGW

How To Compile

g++ test.cpp -I"C:\Program Files\OpenCV\cv\include" -I"C:\Program Files\OpenCV\cxcore\include" -I"C:\Program Files\OpenCV\otherlibs\highgui" -L"C:\Program Files\OpenCV\lib" -lcxcore -lcv -lhighgui -lcvaux -lml

How to Use MinGW on cygwin

Cygwin is a Linux-like environment for Windows. It consists of two parts: A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality. A collection of tools which provide Linux look and feel.

http://www.cygwin.com/

Setup to use MinGW g++ instead of cygwin g++

$ export PATH=/cygdrive/c/MinGW/bin:$PATH

But, note that MinGW g++ takes windows path (\) unlike cygwin g++ takes unix path (/).

Linux

gcc/g++

Download OpenCV source codes (.tar.gz)

Root user

tar zxvf opencv-1.0.0.tar.gz; cd opencv-1.0.0
./configure
make
make install

General user

tar zxvf opencv-1.0.0.tar.gz; cd opencv-1.0.0
./configure --prefix=$HOME/usr
make
make install
# configuration
export PATH=$HOME/usr/bin/:$PATH
export LD_LIBRARY_PATH=$HOME/usr/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$HOME/usr/lib/pkgconfig:$PKG_CONFIG_PATH
export MANPATH=$HOME/usr/man:$MANPATH

Compilation is as

g++ `pkg-config --cflags opencv` foo.c -o foo `pkg-config --libs opencv`

It must be equivalent with

g++ -I$HOME/usr/include/opencv foo.c -o foo -L$HOME/usr/lib -lcxcore -lcv -lhighgui -lcvaux -lml

where $HOME/usr is the prefix specified at the ./configure step.

MacOS X

I tried long time ago, there should exist easier ways nowadays.

  • Install Xcode from OS CD, 'custome' to install everything.
  • Get OpenCV and http://lestang.org/article45.html.
  • Copy these files into OpenCV.
  • ./configure to create cvconfig.h.
  • Double click Xcode project in _make, add path of the cvconfig.h to highgui.
  • Build, try projects of samples.
  • To execute builded program on command line, copy _make/build/Debug/*.framework into ~/Library/Frameworks. If Frameworks does not exist, create it.
    $ _make/build/Debug/kmeans.app/Contents/MacOS/kmeans

Sample Test code

test.cpp

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>

int main(int argc, char *argv[])
{
  // Nothing but create a window
  cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
  cvMoveWindow("mainWin", 100, 100);
  cvWaitKey(0);
  return 0;
}