Collada

Gtk

OpenCV [ fr en ]

OpenGL

Ode

Python

Qt

Ftgl


Qu'est-ce qu'OpenCV

OpenCV signifie Open Source Computer Vision Library. C'est un regroupement de fonctions C et quelques classes C++ qui ont ete implementees pour de nombreux algorithmes de Traitement d'image et de Vision par Ordinateur

Principaux points

OpenCV est compose de quelques centaines de fonctions C (>300). Ce n'est pas vraiment une bibliotheque de calculs, meme si elle s'appuie sur certaines d'entre elles (voir en dessous).

OpenCV est gratuit a usage non commercial et commercial (voir les details de la licence).

OpenCV fournit une interface transparente aux primitives integrees par Intel® Integrated Performance Primitives (IPP) (seulement ippcv pour lmoment). C'est-a-dire que la librairie charge automatiquement des bibilotheques d'IPP optimisee pour le processeur specifiques, si elles sont disponibles.
Pour plus d'informationn sur IPP, vous pouvez les retrouver sur http://www.intel.com/software/products/ipp/ippvm20/index.htm.

Il y a d'autres interfaces d'OpenCV pour d'autres langages/environnements (d'autres sont a venir):
Tout d'abord la Yahoo group list vachement utile pour toutes les questions, les dernieres nouveautes, tous les contacts des utilisateurs "declares".
  1. Telechargement sur SourceForge
  2. Installation pour Windows
  3. Installation pour Linux
  4. Petit test d'installation
  5. Documentation
  6. Exemples pour Windows
  7. Exemples pour Linux

Retour

Telechargement sur SourceForge

Avant tout, va falloir telecharger cette librairie. Le site de SourceForge propose les dernieres mises a jour (perso, j'utilise la beta3.1, la derniere en ce moment).
Une fois telechargee, il faut installer cette librairie.

Retour

Installation pour Windows

La, normalement pas de problemes, c'est une installation a la Windows, donc, 'ok', 'suivant', 'suivant', 'ok', etc...
chargement..
chargement..
chargement..
chargement..
chargement..
chargement..
chargement..
chargement..
chargement..
chargement..
Dans le menu 'demarrer' de windows, on peut maintenant voir :
chargement..
On peut voir egalement dans le repertoire d'installation creee par OpenCV (dans mon exemple c:\Program Files\OpenCV):
chargement..
Maintenant que OpenCV est installe, il faut le compiler pour pouvoir utiliser les librairies (cv.lib, highgui.lib, cvaux.lib, etc..). Je vais utiliser Visual C++ pour jouer avec. En ouvrant le fichier OpenCV.dsp (qui se trouve dans _dsw ou dans Demarrer -> Programmes -> OpenCV -> OpenCV Workspace), vous trouvez :
chargement..
Ce sont tous les projets d'OpenCV, commencez par compiler
chargement..
Maintenant, pour être de compiler un code source avec Visual C++ en utilisant OpenCV, vous devez copier les fichiers dll dans votre répertoire de travail (ca depend de ce que vous voulez faire), normalement : Ces fichiers sont utilisés pour l'execution.
  1. Pour compiler votre programme avec Visual, vous devez ajouter les répertoire des entêtes d'OpenCV

    dans Tools->Options
    Dans 'Include files'
    • c:\PROGRAM FILES\OPENCV\CV\INCLUDE for cv.h
    • c:\PROGRAM FILES\OPENCV\OTHERLIBS\HIGHGUI for highgui.h
    Pour éviter ce genre d'erreurs :fatal error C1083: Cannot open include file: 'cv.h': No such file or directory

    Dans 'Library files' :
    • c:\PROGRAM FILES\OPENCV\LIB for cv.lib, highgui.lib, cvaux.lib, etc..
    Pour éviter ce genre d'erreurs :LINK : fatal error LNK1104: cannot open file "cv.lib"
  2. Pour linker votre programme avec Visual C++, vous devez ajouter les librairies statiques comme ça :

    Dans Project->Settings, Link
    Dans 'Object/library modules'
    • cv.lib, highgui.lib (cvaux.lib en option)
    Pour éviter ce genre d'erreurs : File.obj : error LNK2001: unresolved external symbol _cvFlip... _cvRectangle... _cvCircle... _cvFindCornerSubPix... _cvCopy pour cv.lib
    or File.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall CvvImage::~CvvImage(void)" (??1CvvImage@@UAE@XZ) pour highgui.lib.
Maintenant, vous ètes prêt à jouer avec OpenCV.

Retour

Installation pour Linux

Installation pour Debian

Liste de paquetages :
apt-cache search opencv
libcvaux-dev - development files for libcvaux
libcvaux0.9-5 - computer vision extension library
libcvcam-dev - development files for libcvcam
libcvcam0.9-5 - computer vision camera support library
libhighgui-dev - development files for libhighgui
libhighgui0.9-5 - computer vision GUI library
libopencv-dev - development files for libopencv
libopencv-doc - OpenCV documentation and examples
libopencv0.9-5 - computer vision library
Lancer l'installation (thx zam):
apt-get install libcvaux-dev libcvaux0.9-5 libcvcam-dev libcvcam0.9-5 libhighgui-dev libhighgui0.9-5 libopencv-dev libopencv-doc libopencv0.9-5

Installation des TAR

Extraction de l'archive
gunzip opencv-0.9.5.tar.gz
tar -xvf opencv-0.9.5.tar
ou
tar -xzvf opencv-0.9.5.tar.gz
Pre-requis pour l'install : Compilation de la bibliotheque :
./configure
make
make install # en tant que root
ldconfig # en tant que root
NB : Perso, j'ai eu des problemes avec le fichier configure : le chemine de la librairie X11 n'etait pas la bonne..donc a verifier avant de chercher pendant deux semaines ....

Retour

Test

Test de compilation avec le petit exemple suivant :
/*
 * foo.c
 */
#include <cv.h>
#include <highgui.h>
int main(int argc,char *argv[])
{
  IplImage *image;
  int x,y;
  image = cvCreateImage(cvSize(300,300),8,1);
  cvSetZero(image);
  for(y=0 ; y < image->height ; y++)
  {
    for(x=0; x < image->width ; x++)
    {
      (image->imageData+image->widthStep*y)[x] = (x*y)%256
    }
  }
  cvNamedWindow("Image",1)
  cvShowImage("Image",image);
  cvWaitKey(0);
  return 0;
}
Ligne de compilation (sous debian) :
gcc opencv-config --cflags --libs highgui foo.c -o foo
Résultat de ce petit bout code :

Retour

Documentation

En fait, toutes les aides d'OpenCV ont ete sitees. Il y en a trois, en fait, plus deux et demi que trois :
Sur le net, en general les rares aides que l'on peut y trouver ressemblent etrangement a celles que l'on a deja en local.....

Retour

Exemples Windows

Sous Windows, il existe pas mal d'exemples :
  • StereoDemo
Exemple de manipulation en stéréovision
utilisation des paramètres intrinsèques des caméras
  • LKDemo
Exemple de Corner Tracker très performant
utilisation de l'optique flou
  • VMDemo
Exemple de morphing
utilisation de droites épipolaire
  • HMMDemo
Exemple de reconnaissance de visage
méthode empirique d'apprentissage

Retour

Exemples Linux

Le premier test que l'on peut faire sous Linux est de verifier le script opencv-config :

Usage: opencv-config [OPTIONS]
Options:
  [--prefix]
  [--cflags]
  [--cxxflags]
  [--libs [opencv] [highgui] [cvcam] [cvaux]]
  [--version]
opencv-config --prefix
/usr
opencv-config --cflags
-I/usr/include/opencv
opencv-config --cxxflags
-I/usr/include/opencv
opencv-config --libs opencv highgui cvcam cvaux
-lopencv -lopencv -lhighgui -lcvcam -lcvaux
opencv-config --version
0.9.5