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 05/06/2010, 15:01] – damien200 | opencv [Le 01/03/2023, 20:56] (Version actuelle) – L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Karmic Lucid programmation | + | {{tag>Jammy programmation}} |
| ---- | ---- | ||
| Ligne 6: | Ligne 6: | ||
| 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 | ||
| + | . | ||
| - | ====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, |
| - | FIXME valable sur Intrepid, a mettre a jour pour que ce soit indépendant des versions | + | Pour avoir la norme PAL, il faut recompiler OpenCV. Voici comment procéder |
| - | + | * Suivez la précédure décrite au paragraphe | |
| - | * [[apt:// | + | * Modifiez les lignes 231/232 du fichier ''' |
| - | * [[apt:// | + | < |
| - | * GTK+ 2.x or higher, including headers (e.g. [[apt://libgtk2.0-dev|libgtk2.0-dev]]) | + | #define DEFAULT_V4L_WIDTH |
| - | * [[apt://pkg-config|pkg-config]] | + | #define DEFAULT_V4L_HEIGHT 576 |
| - | * [[apt:// | + | </code> |
| - | | + | * Décommentez la ligne 1041 et modifiez la ainsi : |
| - | * [[apt:// | + | < |
| - | * [[apt:// | + | |
| - | + | </ | |
| - | Installez les dépendances nécessaires | + | |
| - | < | + | |
| - | + | ||
| - | + | ||
| - | === Compiler les sources pour Karmic === | + | |
| - | + | ||
| - | + | ||
| - | Ouvrez un [[terminal]] et tapez: | + | |
| + | Voilà, recompilez ensuite OpenCV. Positionnez vous dans le répertoire opencv.build puis : | ||
| < | < | ||
| - | # On se place dans le dossier personnel (par exemple) | ||
| - | cd | ||
| - | |||
| - | # On télécharge les sources de OpenCV sur sourceforge | ||
| - | wget http:// | ||
| - | |||
| - | # On désarchive le dossier | ||
| - | 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 64: | Ligne 45: | ||
| </ | </ | ||
| - | === Méthode manuelle (vétuste? | ||
| - | 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 124: | Ligne 127: | ||
| ---- | ---- | ||
| - | // | + | // |
