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 01/01/2010, 10:40]
damien200
opencv [Le 01/03/2023, 20:56] (Version actuelle)
L'Africain
Ligne 1: Ligne 1:
-{{tag>Intrepid ​programmation}}+{{tag>Jammy programmation}}
  
 ---- ----
- 
 ====== OpenCV ====== ====== OpenCV ======
  
-  * OpenCV ​[[http://​www.intel.com/​technology/​computing/​opencv/​index.htm]] ​est une bibliothèque d'​analyse d'​images et de vision par ordinateuren langage C/C++, proposée ​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.
  
-====== Installation ====== ​ 
  
-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]] 
  
-Ici sera présentée la seconde solution.+===== Installation =====
  
-Installez les dépendances nécessaires (valable sur Intrepid): +Il suffit d'[[:tutoriel:​comment_installer_un_paquet|installer le paquet]] [[apt>libopencv-dev]].
- <​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>​ +
-  +
-  * CMake 2.6 or higher +
-  * Subversion (SVN) client +
-  * GTK+ 2.x or higher, including headers (e.g. libgtk2.0-dev) +
-  * pkgconfig +
-  * libpng, zlib, libjpeg, libtiff, libjasper with development files (e.g. libjpeg-dev) +
-  * Python 2.3 or later with developer packages (e.g. python-dev) +
-  * SWIG 1.3.30 or later +
-  * libavcodec etc. from ffmpeg 0.4.9-pre1 or later + headers.+
  
-Décompressez l'​archive d'​OpenCV que vous avez téléchargé dans un répertoire de travail. 
-Puis faîtes : 
-<​code>​./​configure 
-make 
-#Optionnel make check 
-make install</​code>​ 
  
-FIXME (j'ai une erreur quand je fais ce qui est marqué sous karmic.) \\ \\ +==== Webcams testées et compatibles ====
-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 pas, faîtes simplement un sudo make install.+
  
 +  * Logitech QuickCam pro 4000
 +  * Logitech QuickCam pro 9000
 +  * Hercules Webcam Dualpix HD (600*480 : ne fonctionne pas en mode HD dans openCV)
 +  * Logitech C930e
 +.
  
-Il est possible que vous rencontriez cette erreur plus tard : +===== Autres caméras ===== 
-<​code>​OpenCV ERROR: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support) +==== Caméras à la norme PAL ====
-         in function cvNamedWindow</​code>​+
  
-Dans ce casdésinstallez ​OpenCV. +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...). Malheureusementelle ne fonctionnent pas directement sous OpenCV. ​Vous pouvez ​vous en rendre compte en créant un programme minimum ​d'acquisitionSi 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.).
-Placez ​vous dans le répertoire où vous avez fait vos commandes ​d'installation +
-<​code>​make uninstall</​code>​ +
-Ensuite : +
-<​code>​sudo apt-get install libgtk2.0-dev</​code>​ +
-et suivez la procédure d'installation habituelle.+
  
-====== Compatibilité Webcam ======+Pour avoir la norme PAL, il faut recompiler OpenCV. Voici comment procéder : 
 +  * 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''​ : 
 +<​code>​ 
 +#define DEFAULT_V4L_WIDTH ​ 704 
 +#define DEFAULT_V4L_HEIGHT 576 
 +</​code>​ 
 +  * Décommentez la ligne 1041 et modifiez la ainsi : 
 +<​code>​ 
 +           ​selectedChannel.norm ​VIDEO_MODE_PAL;​ 
 +</​code>​
  
-Il existe un certain nombre de webcam non compatibles avec OpencvVoici une technique permettant de rendre compatible sous Intrepid (Non testé avec les versions supérieures) votre webcam à partir du moment ou elle fonctionne sous Ubuntu (avec un programme tel que Cheese) +Voilà, recompilez ensuite OpenCVPositionnez vous dans le répertoire opencv.build puis : 
-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]]+<​code>​ 
 +make -j 2 
 +sudo make install 
 +sudo ldconfig 
 +</code>
  
-Décompressez l'archive ​d'OpenCV ​que vous avez téléchargé ​dans un répertoire de travail+ 
-Puis faîtes ​+===== Exemple d'utilisation ===== 
-<​code>​./​configure+Ecrivez le code ''​ex_opencv.cpp''​ suivant : 
 +<​code>​ 
 +#include <​stdio.h>​ // Pour le printf()... 
 + 
 +/* 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>​ 
 + 
 +int main(int argc, char *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
 + 
 +  printf("​L'​image fait %dx%d pixels et possède %d canaux (couleurs)\n",​img->​width,​img->​height,​img->​nChannels);​  
 + 
 +  // On crée une fenètre dans laquelle on affichera l'​image 
 +  cvNamedWindow("​Fenetre_test",​ CV_WINDOW_AUTOSIZE);​  
 + 
 +  // C'est ce que l'on fait ici : 
 +  cvShowImage("​Fenetre_test",​ img ); 
 + 
 +  // Appuyez sur une touche pour sortir 
 +  cvWaitKey(0);​ 
 + 
 +  // On libère ensuite, la mémoire de l'​image et de la ressource 
 +  cvReleaseImage(&​img ); 
 +  cvReleaseCapture(&​capture);​ 
 +  return 0; 
 +} 
 +</code> 
 + 
 +Créez aussi le fichier ''​Makefile''​ suivant : 
 + 
 +<​code>​ 
 +all: 
 + g++ -O2 -Wall -o exemple ex_opencv.cpp `pkg-config --cflags --libs opencv` 
 +clean: 
 + rm -rf exemple 
 +</code> 
 + 
 +Pour compiler : 
 +<​code>​
 make make
-make install</​code>​+</​code>​
  
-Vous pouvez compiler votre programme comme d'​habitude. +Pour exécuter :
-Pour exécuter ​le programme, faites:+
 <​code>​ <​code>​
- ​LD_PRELOAD=/​usr/​lib/​libv4l/​v4l1compat.so ​./example+./exemple
 </​code>​ </​code>​
  
-====== Liens utiles ​====== +Voilà, c'est tout... 
-  * OpenCV @ Intel [[http://​www.intel.com/​technology/​computing/​opencv/​index.htm]] + 
-  * OpenCV @ Sourceforge ​[[http://​sourceforge.net/​projects/​opencvlibrary/​]] +===== Liens utiles ===== 
-  * OpenCV @ WillowGarage ​(wiki) [[http://​opencv.willowgarage.com/​wiki/​]]+ 
 +  * **(en)** ​[[https://​sourceforge.net/​projects/​opencvlibrary/​|OpenCV @ Sourceforge]] 
 +  * **(en)** [[http://​opencv.willowgarage.com/​wiki/​|OpenCV @ WillowGarage (wiki)]]
  
  
Ligne 73: Ligne 127:
 ---- ----
  
-//Contributeur ​: [[utilisateurs:​Myrkvid]].//+//Contributeurs ​[[utilisateurs:​Julien Bossut]] ​[[utilisateurs:​Myrkvid]], [[utilisateurs:​damien200]],​ [[utilisateurs:​volfoni54]]//
  • opencv.1262338857.txt.gz
  • Dernière modification: Le 01/01/2010, 10:40
  • par damien200