Différences
Ci-dessous, les différences entre deux révisions de la page.
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, 11:13] 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==== | ||
- | |||
- | 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]]. | ||
- | |||
- | ==== Par compilation ==== | ||
- | |||
- | === Dépendances === | ||
- | |||
- | FIXME valable sur Intrepid, à mettre a jour pour que ce soit indépendant des versions | ||
- | |||
- | * [[apt://cmake|CMake]] 2.6 ou supérieur | ||
- | * [[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 : | ||
- | <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: | ||
- | |||
- | <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 | ||
- | sudo make install | ||
- | sudo ldconfig | ||
- | </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]]. | ||
- | |||
- | Décompressez l'archive d'OpenCV que vous avez téléchargé dans un répertoire de travail. | ||
- | Puis faites : | ||
- | <code>./configure | ||
- | make | ||
- | #Optionnel make check | ||
- | make install</code> | ||
- | |||
- | 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. | ||
- | |||
- | Il est possible que vous rencontriez cette erreur plus tard : | ||
- | <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. | ||
- | 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é Webcams ===== | ||
- | |||
- | 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]]). | ||
- | 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]] | ||
- | |||
- | Décompressez l'archive d'OpenCV que vous avez téléchargé dans un répertoire de travail. | ||
- | Puis faîtes : | ||
- | <code>./configure | ||
- | make | ||
- | make install</code> | ||
- | |||
- | Vous pouvez compiler votre programme comme d'habitude. | ||
- | Pour exécuter le programme, faites: | ||
- | <code> | ||
- | LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so ./example | ||
- | </code> | ||
==== Webcams testées et compatibles ==== | ==== Webcams testées et compatibles ==== | ||
Ligne 109: | Ligne 17: | ||
* Logitech QuickCam pro 4000 | * Logitech QuickCam pro 4000 | ||
* Logitech QuickCam pro 9000 | * Logitech QuickCam pro 9000 | ||
- | + | * Hercules Webcam Dualpix HD (600*480 : ne fonctionne pas en mode HD dans openCV) | |
- | ==== Webcams testées et non compatibles ==== | + | * Logitech C930e |
- | + | . | |
- | * Aucunes (pour le moment) | + | |
===== Autres caméras ===== | ===== Autres caméras ===== | ||
==== Caméras à la norme PAL ==== | ==== Caméras à la norme PAL ==== | ||
- | Les caméras de ce type sont analogique. Le signal de sortie est à la norme CCIR et elles s'interfaçent avec une carte PCI -- ou autre -- que l'on peut trouver sur internet pour quelques euros (vous aurez plus cher de port 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 [[http://doc.ubuntu-fr.org/tvtime|tvtime]]. Ce logiciel permet de configurer facilement la norme du codage (NTSC, PAL, SECAM, etc.). | + | 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.). |
Pour avoir la norme PAL, il faut recompiler OpenCV. Voici comment procéder : | Pour avoir la norme PAL, il faut recompiler OpenCV. Voici comment procéder : | ||
- | * Suivez la précédure décrite au paragraphe ''Par compilation'' | + | * Suivez la précédure décrite au paragraphe [[Opencv#Par compilation|Par compilation]] |
- | * Modifiez le fichier '''cvcap_v4l.cpp'' qui se trouvez dans ''OpenCV-2.0.0/src/highgui'' aux lignes 231/232 : | + | * Modifiez les lignes 231/232 du fichier '''cvcap_v4l.cpp'' qui se trouve dans ''OpenCV-2.0.0/src/highgui'' : |
<code> | <code> | ||
#define DEFAULT_V4L_WIDTH 704 | #define DEFAULT_V4L_WIDTH 704 | ||
Ligne 132: | Ligne 38: | ||
</code> | </code> | ||
- | Voilà, recompiler ensuite OpenCV. Positionnez vous dans le répertoire opencv.build puis : | + | Voilà, recompilez ensuite OpenCV. Positionnez vous dans le répertoire opencv.build puis : |
<code> | <code> | ||
make -j 2 | make -j 2 | ||
Ligne 139: | Ligne 45: | ||
</code> | </code> | ||
- | À 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) | ||
- | - Je n'ai pas de caméra SECAM sous la main, mais je pense que la procédure est la même... | ||
- | ==== Exemple d'utilisation ==== | + | ===== Exemple d'utilisation ===== |
Ecrivez le code ''ex_opencv.cpp'' suivant : | Ecrivez le code ''ex_opencv.cpp'' suivant : | ||
<code> | <code> | ||
Ligne 207: | Ligne 109: | ||
<code> | <code> | ||
make | make | ||
+ | </code> | ||
+ | |||
+ | Pour exécuter : | ||
+ | <code> | ||
+ | ./exemple | ||
</code> | </code> | ||
Ligne 213: | Ligne 120: | ||
===== 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 220: | Ligne 127: | ||
---- | ---- | ||
- | //Contributeurs : [[utilisateurs:Myrkvid]], [[utilisateurs:damien200]], [[utilisateurs:volfoni54]]// | + | //Contributeurs : [[utilisateurs:Julien Bossut]] [[utilisateurs:Myrkvid]], [[utilisateurs:damien200]], [[utilisateurs:volfoni54]]// |