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 09/07/2010, 08:11]
volfoni54
opencv [Le 01/03/2023, 20:56] (Version actuelle)
L'Africain
Ligne 1: Ligne 1:
-{{tag>Karmic Lucid programmation ​BROUILLON}}+{{tag>Jammy programmation}}
  
 ---- ----
Ligne 6: Ligne 6:
 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]] 
  
 +===== Installation =====
  
 +Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] [[apt>​libopencv-dev]].
  
-===== Installation =====  
  
-====via les dépôts officiels====+==== Webcams testées et compatibles ​====
  
-Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer les paquets]]: [[apt://​libcv1|libcv1]] ​(ou [[apt://​libcv4|libcv4]] depuis [[lucid|Ubuntu 10.04 LTS]]et [[apt://​libcv-dev|libcv-dev]].+  * Logitech QuickCam pro 4000 
 +  * Logitech QuickCam pro 9000 
 +  * Hercules Webcam Dualpix HD (600*480 ​ne fonctionne pas en mode HD dans openCV) 
 +  * Logitech C930e 
 +.
  
-====par compilation====+===== Autres caméras ===== 
 +==== Caméras à la norme PAL ====
  
-===Dépendances===+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.).
  
-FIXME valable sur Intrepida mettre a jour pour que ce soit indépendant des versions +Pour avoir la norme PALil faut recompiler OpenCV. Voici comment procéder ​
- +  * Suivez la précédure décrite au paragraphe ​[[Opencv#Par compilation|Par compilation]] 
-  * [[apt://​cmake|CMake]] 2.6 ou supérieur ​ +  * Modifiez les lignes 231/232 du fichier '''​cvcap_v4l.cpp''​ qui se trouve dans ''​OpenCV-2.0.0/src/highgui'' ​
-  * [[apt://​subversion|Subversion]] (SVN) client +<​code>​ 
-  * GTK+ 2.x or higher, including headers (e.g. [[apt://libgtk2.0-dev|libgtk2.0-dev]]) +#define DEFAULT_V4L_WIDTH ​ 704 
-  * [[apt://pkg-config|pkg-config]] +#define DEFAULT_V4L_HEIGHT 576 
-  * [[apt://​libpng12-dev|libpng]],​ [[apt://​zlib1g-dev|zlib]],​ [[apt://​libjpeg62-dev|libjpeg]],​ [[apt://​libtiff4-dev|libtiff]] et [[apt://​libjasper-dev|libjasper]] with development files. +</code> 
-  ​* [[apt://​python-dev|Python]] 2.3 or later with developer packages (e.g. python-dev) +  * Décommentez la ligne 1041 et modifiez la ainsi 
-  * [[apt://​swig1.3|SWIG]] 1.3.30 or later +<​code>​ 
-  * [[apt://​libavcodec-dev|libavcodec]] etc. from [[apt://​ffmpeg|ffmpeg]] 0.4.9-pre1 or later + headers. +           ​selectedChannel.norm = VIDEO_MODE_PAL;​ 
- +</​code>​
-Installez les dépendances nécessaires ​+
- <​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>​ +
- +
- +
-=== Compiler les sources pour Karmic === +
- +
- +
-Ouvrez un [[terminal]] et tapez:+
  
 +Voilà, recompilez ensuite OpenCV. Positionnez vous dans le répertoire opencv.build puis :
 <​code>​ <​code>​
-# On se place dans le dossier personnel (par exemple) 
-cd 
- 
-# On télécharge les sources de OpenCV sur sourceforge 
-wget http://​sourceforge.net/​projects/​opencvlibrary/​files/​opencv-unix/​2.0/​OpenCV-2.0.0.tar.bz2/​download 
- 
-# On désarchive le dossier 
-tar -xjf OpenCV-2.0.0.tar.bz2 
- 
-# On efface l'​archive,​ on crée un dossier build et on va dedans 
-rm -r OpenCV-2.0.0.tar.bz2 
-mkdir opencv.build 
-cd opencv.build 
- 
-# Et on installe 
-cmake ../​OpenCV-2.0.0 
 make -j 2 make -j 2
 sudo make install sudo make install
Ligne 64: Ligne 45:
 </​code>​ </​code>​
  
-=== Méthode manuelle (vétuste?​)=== 
  
-Télécharger 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()...
  
-Décompressez l'​archive ​d'OpenCV que vous avez téléchargé dans un répertoire ​de travail+/* Les deux bibliothèques nécessaires ​d'opencv : 
-Puis faites : + - cv.h contient les structures et fonctions ​de manipulation d'​images 
-<code>./​configure + - highgui.h contient les fonctions d'​affichage des images 
-make +*/ 
-#Optionnel make check +#​include ​<cv.h> 
-make install</code>+#include ​<highgui.h>
  
-Si vous avez des erreurs lors du make installvérifiez si vous avez les droits d'administrateur pour écrire dans les répertoires ​d'installation. ​Si vous ne les avez pas, faîtes simplement un sudo make install.+int main(int argcchar *argv[]) 
 +
 +  /* On initialise la 'capture'​ depuis la WebCam, une adresse, 
 +     ​représentative de la ressource est retournée 
 +   */ 
 +  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.
  
-Il est possible que vous rencontriez cette erreur plus tard : +  printf("​L'​image fait %dx%d pixels et possède %d canaux (couleurs)\n",​img->width,​img->​height,​img->​nChannels); ​
-<​code>​OpenCV ERROR: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support) +
-         in function cvNamedWindow</​code>+
  
-Dans ce cas, désinstallez OpenCV. +  // On crée une fenètre ​dans laquelle on affichera l'image 
-Placez vous dans le répertoire où vous avez fait vos commandes d'installation +  ​cvNamedWindow("​Fenetre_test",​ CV_WINDOW_AUTOSIZE); ​
-<​code>​make uninstall</​code>​ +
-Ensuite : +
-<​code>​sudo apt-get install libgtk2.0-dev</​code>​ +
-et suivez la procédure d'​installation habituelle.+
  
-===== Compatibilité Webcams =====+  // C'est ce que l'on fait ici : 
 +  cvShowImage("​Fenetre_test",​ img );
  
-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érieures) votre webcam à partir du moment où elle fonctionne sous Ubuntu (avec un programme tel que [[:​cheese|Cheese]]). +  // Appuyez sur une touche pour sortir 
-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]]+  ​cvWaitKey(0);
  
-Décompressez ​l'archive d'​OpenCV que vous avez téléchargé dans un répertoire ​de travail. +  // On libère ensuite, la mémoire de l'image et de la ressource 
-Puis faîtes : +  ​cvReleaseImage(&​img ); 
-<​code>​./​configure +  ​cvReleaseCapture(&​capture);​ 
-make +  ​return 0; 
-make install</​code>​+} 
 +</​code>​ 
 + 
 +Créez aussi le fichier ''​Makefile''​ suivant :
  
-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) +
- +
- +
-===== Autres caméras ===== +
-==== Caméras à la norme PAL ==== +
- +
-Les caméras de ce type, ne fonctionnent pas directement sous OpenCV. Vous pouvez vous en rendre compte en créant un programme minimum d'​acquisition. Si celle-ci 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 en utilisant [[http://​doc.ubuntu-fr.org/​tvtime|tvtime]]. Ce logiciel permet de configurer facilement la norme d'​acquisition (NTSC, PAL, SECAM, etc.). +
- +
-Pour avoir la norme PAL, il faut recompiler OpenCV +
- +
-À noter : +
-- Je ne n'ai pas réussi à compiler OpenCV 2.1 sous Ubuntu Lucid. +
-- Je ne crois pas que l'on puisse utiliser 2 caméras de normes différentes (à confirmer)+
  
 +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 136: Ligne 127:
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​Myrkvid]],​ [[utilisateurs:​damien200]]//​+//​Contributeurs : [[utilisateurs:​Julien Bossut]] ​[[utilisateurs:​Myrkvid]],​ [[utilisateurs:​damien200]], [[utilisateurs:​volfoni54]]//
  • opencv.1278655863.txt.gz
  • Dernière modification: Le 18/04/2011, 14:52
  • (modification externe)