Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| opencv [Le 29/05/2010, 09:46] – maj lucid YannUbuntu | opencv [Le 01/03/2023, 20:56] (Version actuelle) – L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Karmic Lucid programmation | + | {{tag>Jammy programmation}} |
| ---- | ---- | ||
| - | |||
| ====== OpenCV ====== | ====== OpenCV ====== | ||
| - | OpenCV(( Pour Open Computer Vision)) est une bibliothèque libre d' | + | OpenCV(( Pour Open Computer Vision)) est une bibliothèque libre d' |
| - | ===== Pré-requis ===== | ||
| - | * Avoir les [[: | ||
| + | ===== Installation ===== | ||
| + | Il suffit d' | ||
| - | ===== Installation ===== | ||
| - | ====via les dépôts officiels==== | + | ==== Webcams testées et compatibles |
| - | Il suffit d' | + | * Logitech QuickCam pro 4000 |
| + | * Logitech QuickCam pro 9000 | ||
| + | * Hercules Webcam Dualpix HD (600*480 | ||
| + | * Logitech C930e | ||
| + | . | ||
| - | ==== Compiler les sources pour Karmic | + | ===== Autres caméras ===== |
| + | ==== Caméras à la norme PAL ==== | ||
| - | * [[apt:// | + | 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' |
| - | * [[apt:// | + | |
| - | * GTK+ 2.x or higher, including headers (e.g. [[apt:// | + | |
| - | * [[apt:// | + | |
| - | * [[apt:// | + | |
| - | * [[apt:// | + | |
| - | * [[apt:// | + | |
| - | * [[apt:// | + | |
| - | + | ||
| - | Installez les dépendances nécessaires (valable sur Intrepid): | + | |
| - | < | + | |
| - | + | ||
| - | Ouvrez un [[terminal]] et tapez: | + | |
| + | Pour avoir la norme PAL, il faut recompiler OpenCV. Voici comment procéder : | ||
| + | * Suivez la précédure décrite au paragraphe [[Opencv# | ||
| + | * Modifiez les lignes 231/232 du fichier ''' | ||
| < | < | ||
| - | # On se place dans le dossier personnel (par exemple) | + | #define DEFAULT_V4L_WIDTH |
| - | cd | + | #define DEFAULT_V4L_HEIGHT 576 |
| + | </ | ||
| + | * Décommentez la ligne 1041 et modifiez la ainsi : | ||
| + | < | ||
| + | | ||
| + | </ | ||
| - | # On télécharge les sources de OpenCV | + | Voilà, recompilez ensuite |
| - | wget http:// | + | < |
| - | + | ||
| - | # On désarchive | + | |
| - | tar -xjf OpenCV-2.0.0.tar.bz2 | + | |
| - | + | ||
| - | # On efface l' | + | |
| - | rm -r OpenCV-2.0.0.tar.bz2 | + | |
| - | mkdir opencv.build | + | |
| - | cd opencv.build | + | |
| - | + | ||
| - | # Et on installe | + | |
| - | cmake ../ | + | |
| make -j 2 | make -j 2 | ||
| sudo make install | sudo make install | ||
| Ligne 57: | Ligne 45: | ||
| </ | </ | ||
| - | ==== Méthode manuelle ==== | ||
| - | Télécharger directement l'archive depuis | + | ===== Exemple d'utilisation ===== |
| + | Ecrivez | ||
| + | < | ||
| + | #include <stdio.h> // Pour le printf()... | ||
| - | Décompressez l' | + | /* Les deux bibliothèques nécessaires |
| - | Puis faites : | + | - cv.h contient les structures et fonctions |
| - | <code>./ | + | - highgui.h contient les fonctions d' |
| - | make | + | */ |
| - | #Optionnel make check | + | # |
| - | make install</code> | + | #include |
| - | Si vous avez des erreurs lors du make install, vérifiez si vous avez les droits d'administrateur pour écrire dans les répertoires | + | int main(int argc, char *argv[]) |
| + | { | ||
| + | /* On initialise la 'capture' | ||
| + | | ||
| + | */ | ||
| + | CvCapture* capture = cvCaptureFromCAM(-1); | ||
| + | if(capture) // Si la caméra est reconnu | ||
| + | { | ||
| + | if(!cvGrabFrame(capture)) // On prend une image et une seule ! | ||
| + | { | ||
| + | printf(" | ||
| + | exit(0); | ||
| + | } | ||
| + | } | ||
| + | else // Si la caméra n'est pas reconnu ou si elle n' | ||
| + | { | ||
| + | printf(" | ||
| + | exit(0); | ||
| + | } | ||
| + | IplImage *img=cvRetrieveFrame(capture); | ||
| - | Il est possible que vous rencontriez cette erreur plus tard : | + | printf(" |
| - | < | + | |
| - | in function cvNamedWindow</ | + | |
| - | Dans ce cas, désinstallez OpenCV. | + | // On crée une fenètre |
| - | Placez vous dans le répertoire où vous avez fait vos commandes d'installation | + | |
| - | < | + | |
| - | Ensuite : | + | |
| - | < | + | |
| - | et suivez la procédure d' | + | |
| - | ===== Compatibilité Webcams ===== | + | // C'est ce que l'on fait ici : |
| + | cvShowImage(" | ||
| - | 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 [[: | + | // Appuyez sur une touche pour sortir |
| - | Commencez par télécharger une version spéciale d' | + | |
| - | Décompressez | + | // On libère ensuite, la mémoire de l'image et de la ressource |
| - | Puis faîtes : | + | |
| - | < | + | |
| - | make | + | |
| - | make install</ | + | } |
| + | </ | ||
| + | |||
| + | Créez aussi le fichier '' | ||
| - | Vous pouvez compiler votre programme comme d' | ||
| - | Pour exécuter le programme, faites: | ||
| < | < | ||
| - | | + | all: |
| + | g++ -O2 -Wall -o exemple ex_opencv.cpp `pkg-config --cflags --libs opencv` | ||
| + | clean: | ||
| + | rm -rf exemple | ||
| </ | </ | ||
| - | ==== Webcams testées et compatibles ==== | + | Pour compiler : |
| - | + | < | |
| - | * Logitech QuickCam pro 4000 | + | make |
| - | + | </ | |
| - | ==== Webcams testées et non compatibles ==== | + | |
| - | + | ||
| - | * Aucunes (pour le moment) | + | |
| + | Pour exécuter : | ||
| + | < | ||
| + | ./exemple | ||
| + | </ | ||
| + | Voilà, c'est tout... | ||
| ===== Liens utiles ===== | ===== Liens utiles ===== | ||
| - | * **(en)** [[http:// | + | * **(en)** [[https:// |
| - | * **(en)** [[http:// | + | * **(en)** [[http:// |
| Ligne 117: | Ligne 127: | ||
| ---- | ---- | ||
| - | // | + | // |
