Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
opencv [Le 16/05/2010, 16:31]
TheCaméléon Ajout d'un FIXME
opencv [Le 01/03/2023, 20:56] (Version actuelle)
L'Africain
Ligne 1: Ligne 1:
-{{tag>Karmic Intrepid ​programmation ​BROUILLON}}+{{tag>Jammy programmation}}
  
 ---- ----
- 
 ====== OpenCV ====== ====== OpenCV ======
  
-OpenCV(( Pour Open Computer Vision)) est une bibliothèque libre d'​analyse d'​images et de vision par ordinateur sous licence ​%%BSD%% en langage C/C++. Elle a été développée à l'​origine par Intel.+OpenCV(( Pour Open Computer Vision)) est une bibliothèque libre d'​analyse d'​images et de vision par ordinateur sous licence BSD en langage C/C++. Elle a été développée à l'​origine par Intel.
  
-===== Pré-requis ===== 
  
-  * Avoir les [[:​sudo|droits d'​administration]] 
-  * [[apt://​cmake|CMake]] 2.6 or higher 
-  * [[apt://​subversion|Subversion]] (SVN) client 
-  * GTK+ 2.x or higher, including headers (e.g. [[apt://​libgtk2.0-dev|libgtk2.0-dev]]) 
-  * [[apt://​pkg-config|pkg-config]] 
-  * [[apt://​libpng12-dev|libpng]],​ [[apt://​zlib1g-dev|zlib]],​ [[apt://​libjpeg62-dev|libjpeg]],​ [[apt://​libtiff4-dev|libtiff]] et [[apt://​libjasper-dev|libjasper]] with development files. 
-  * [[apt://​python-dev|Python]] 2.3 or later with developer packages (e.g. python-dev) 
-  * [[apt://​swig1.3|SWIG]] 1.3.30 or later 
-  * [[apt://​libavcodec-dev|libavcodec]] etc. from [[apt://​ffmpeg|ffmpeg]] 0.4.9-pre1 or later + headers. 
  
-Installez les dépendances nécessaires (valable sur Intrepid):​ +===== Installation =====
- <​code>​sudo aptitude install build-essential gcc cmake subversion libgtk2.0-0-dev pkg-config ​ libpng-dev libjpeg-dev libtiff-dev libjasper-dev python-dev swig1.3 libavformat-dev libdc1394-22-dev libgtk2.0-dev</​code>​+
  
 +Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] [[apt>​libopencv-dev]].
  
-===== Installation =====  
-Il est possible d'​installer openCV directement depuis les dépots: [[apt://​libcv1|libcv1]] et [[apt://​libcv-dev|libcv-dev]] FIXME libcv1 indispo sous lucid 
  
-==== Compiler les sources pour Karmic ​====+==== Webcams testées et compatibles ​====
  
 +  * Logitech QuickCam pro 4000
 +  * Logitech QuickCam pro 9000
 +  * Hercules Webcam Dualpix HD (600*480 : ne fonctionne pas en mode HD dans openCV)
 +  * Logitech C930e
 +.
  
-Pour installer ​la librairie OpenCV sur Karmic, ouvrez un terminal et tapez:+===== Autres caméras ===== 
 +==== Caméras à la norme PAL ====
  
-<​code>​ +Les caméras de ce type sont analogiques. Le signal de sortie est à la norme CCIR et elles s’interfacent avec une carte PCI -- ou autre -- que l'on peut trouver sur internet pour quelques euros (vous aurez plus cher de frais de transport que de carte...). Malheureusement,​ elle ne fonctionnent pas directement sous OpenCV. Vous pouvez vous en rendre compte en créant un programme minimum d'​acquisition. Si cette dernière est très (très) lente et que l'​image créée est déformée, il y a de fortes chances que votre caméra ne soit pas à la norme par défaut (NTSC, je crois). Vous pouvez aussi vérifier la norme utilisée avec [[:​tvtime|tvtime]]. Ce logiciel permet de configurer facilement la norme du codage (NTSC, PAL, SECAM, etc.).
-# On se place dans le dossier personnel ​(par exemple) +
-cd+
  
-On télécharge les sources de OpenCV sur sourceforge +Pour avoir la norme PAL, il faut recompiler OpenCV. Voici comment procéder : 
-wget http://​sourceforge.net/​projects/​opencvlibrary/​files/​opencv-unix/​2.0/​OpenCV-2.0.0.tar.bz2/download +  * Suivez la précédure décrite au paragraphe [[Opencv#Par compilation|Par compilation]] 
- +  * Modifiez les lignes 231/232 du fichier '''​cvcap_v4l.cpp''​ qui se trouve dans ''​OpenCV-2.0.0/​src/​highgui''​ : 
-On désarchive le dossier +<​code>​ 
-tar -xjf OpenCV-2.0.0.tar.bz2 +#define DEFAULT_V4L_WIDTH ​ 704 
- +#define DEFAULT_V4L_HEIGHT 576 
-# On efface l'​archive,​ on crée un dossier build et on va dedans +</​code>​ 
-rm -r OpenCV-2.0.0.tar.bz2 +  * Décommentez la ligne 1041 et modifiez la ainsi : 
-mkdir opencv.build +<​code>​ 
-cd opencv.build+           selectedChannel.norm = VIDEO_MODE_PAL;​ 
 +</​code>​
  
-# Et on installe +Voilà, recompilez ensuite ​OpenCV. ​Positionnez vous dans le répertoire opencv.build puis : 
-cmake ../OpenCV-2.0.0+<​code>​
 make -j 2 make -j 2
 sudo make install sudo make install
Ligne 53: Ligne 45:
 </​code>​ </​code>​
  
-==== Autres versions ==== 
  
-Il existe différentes façon ​d'obtenir OpenCV: soit par la méthode Gestionnaire de paquets Synaptic, soit par la méthode manuelle en téléchargeant directement l'​archive depuis ​le site [[http://​sourceforge.net/project/showfiles.php?​group_id=22870&​package_id=16948|sourceforge d'​OpenCV]]+===== Exemple ​d'utilisation ===== 
 +Ecrivez ​le code ''​ex_opencv.cpp''​ suivant ​: 
 +<​code>​ 
 +#include <stdio.h> // Pour le printf()...
  
-Ici sera présentée la seconde solution.+/* Les deux bibliothèques nécessaires d'​opencv : 
 + - cv.h contient les structures et fonctions de manipulation d'​images 
 + - highgui.h contient les fonctions d'​affichage des images 
 +*/ 
 +#include <​cv.h>​ 
 +#include <​highgui.h>​
  
-Décompressez l'archive d'OpenCV que vous avez téléchargé dans un répertoire ​de travail. +int main(int argc, char *argv[]) 
-Puis faîtes : +
-<​code>​./configure +  /* On initialise la 'capture' ​depuis la WebCam, une adresse, 
-make +     ​représentative ​de la ressource est retournée 
-#Optionnel make check +   */ 
-make install</code>+  ​CvCapture* capture = cvCaptureFromCAM(-1);​ 
 +  if(capture) ​// Si la caméra est reconnu 
 +  { 
 + if(!cvGrabFrame(capture)) // On prend une image et une seule ! 
 +
 +  printf("​Could not grab a frame\n\7"​); ​// Si la prise d'​image n'est pas possible, on sort ! 
 +  exit(0);​ 
 +
 +  } 
 +  else // Si la caméra n'est pas reconnu ou si elle n'​existe pas, on sort... 
 +  { 
 +  printf("​Could not open video device\n"​);​ 
 +  exit(0); 
 +  } 
 + IplImage *img=cvRetrieveFrame(capture);​ // On rapatrie l'​image que l'on '​stocke'​ dans img avec ses propriétés.
  
-Si vous avez des erreurs lors du make install, vérifiez si vous avez les droits d'administrateur pour écrire dans les répertoires ​d'​installation. Si vous ne les avez pasfaîtes simplement un sudo make install.+  printf("​L'image fait %dx%pixels et possède %d canaux (couleurs)\n",​img->​width,​img->​height,img->​nChannels); ​
  
-Il est possible que vous rencontriez cette erreur plus tard : +  // On crée une fenètre dans laquelle on affichera l'​image 
-<​code>​OpenCV ERROR: Unspecified error (The function is not implemented. Rebuild the library with WindowsGTK+ 2.x or Carbon support) +  ​cvNamedWindow("​Fenetre_test"​CV_WINDOW_AUTOSIZE)
-         in function cvNamedWindow</​code>​+
  
-Dans ce cas, désinstallez OpenCV. +  // C'​est ​ce que l'​on ​fait ici 
-Placez vous dans le répertoire où vous avez fait vos commandes d'​installation +  ​cvShowImage("​Fenetre_test",​ img );
-<​code>​make uninstall</​code>​ +
-Ensuite ​+
-<​code>​sudo apt-get install libgtk2.0-dev</​code>​ +
-et suivez la procédure d'​installation habituelle.+
  
-===== Compatibilité Webcams =====+  // Appuyez sur une touche pour sortir 
 +  cvWaitKey(0);​
  
-Il existe un certain nombre ​de webcam non compatibles avec Opencv. Voici une technique permettant ​de rendre compatible sous Intrepid ​(Non testé avec les versions supérieuresvotre webcam à partir du moment où elle fonctionne sous Ubuntu ​(avec un programme tel que [[:​cheese|Cheese]]). +  // On libère ensuite, la mémoire ​de l'​image et de la ressource 
-Commencez par télécharger une version spéciale d'​Opencv (malheureusement il s'agit de la version 1.0, la version 1.1pre n'est pas disponible) [[http://​github.com/​nzjrs/​opencv/​tree/master|sur ce site]]+  cvReleaseImage(&​img ​)
 +  cvReleaseCapture(&​capture); 
 +  ​return ​0
 +
 +</code>
  
-Décompressez l'archive d'OpenCV que vous avez téléchargé dans un répertoire de travail. +Créez aussi le fichier ​''​Makefile''​ suivant ​:
-Puis faîtes ​: +
-<​code>​./​configure +
-make +
-make install</​code>​+
  
-Vous pouvez compiler votre programme comme d'​habitude. 
-Pour exécuter le programme, faites: 
 <​code>​ <​code>​
- ​LD_PRELOAD=/​usr/​lib/​libv4l/​v4l1compat.so ./example+all: 
 + g++ -O2 -Wall -o exemple ex_opencv.cpp `pkg-config --cflags --libs opencv` 
 +clean: 
 + rm -rf exemple
 </​code>​ </​code>​
  
-==== Webcams testées et compatibles ==== +Pour compiler : 
- +<​code>​ 
-  * Logitech QuickCam pro 4000 +make 
- +</​code>​
-==== Webcams testées et non compatibles ==== +
- +
-  * Aucunes (pour le moment)+
  
 +Pour exécuter :
 +<​code>​
 +./exemple
 +</​code>​
  
 +Voilà, c'est tout...
  
 ===== Liens utiles ===== ===== Liens utiles =====
  
-  * **(en)** [[http://​sourceforge.net/​projects/​opencvlibrary/​|OpenCV @ Sourceforge]] +  * **(en)** [[https://​sourceforge.net/​projects/​opencvlibrary/​|OpenCV @ Sourceforge]] 
-  * **(en)** [[http://​opencv.willowgarage.com/​wiki/​|OpenCV @ WillowGarage (wiki)]] ​+  * **(en)** [[http://​opencv.willowgarage.com/​wiki/​|OpenCV @ WillowGarage (wiki)]]
  
  
Ligne 115: Ligne 127:
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​Myrkvid]],​ [[utilisateurs:​damien200]]//​+//​Contributeurs : [[utilisateurs:​Julien Bossut]] ​[[utilisateurs:​Myrkvid]],​ [[utilisateurs:​damien200]], [[utilisateurs:​volfoni54]]//
  • opencv.1274020296.txt.gz
  • Dernière modification: Le 18/04/2011, 14:40
  • (modification externe)