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 09/07/2010, 08:09] – volfoni54 | opencv [Le 04/01/2019, 15:16] (Version actuelle) – [Webcams testées et compatibles] 93.3.26.109 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | ====== OpenCV ====== | ||
| + | |||
| + | OpenCV(( Pour Open Computer Vision)) est une bibliothèque libre d' | ||
| + | |||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | * Avoir les [[: | ||
| + | |||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | Il suffit d' | ||
| + | |||
| + | ===== 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 [[: | ||
| + | Commencez par télécharger une version spéciale d' | ||
| + | |||
| + | Décompressez l' | ||
| + | Puis faîtes : | ||
| + | < | ||
| + | make | ||
| + | make install</ | ||
| + | |||
| + | Vous pouvez compiler votre programme comme d' | ||
| + | Pour exécuter le programme, faites: | ||
| + | < | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ==== Webcams testées et compatibles ==== | ||
| + | |||
| + | * Logitech QuickCam pro 4000 | ||
| + | * Logitech QuickCam pro 9000 | ||
| + | * Hercules Webcam Dualpix HD (600*480 : ne fonctionne pas en mode HD dans openCV) | ||
| + | * Logitech C930e | ||
| + | . | ||
| + | ==== Webcams testées et non compatibles ==== | ||
| + | |||
| + | * Aucune (pour le moment) | ||
| + | |||
| + | |||
| + | ===== Autres caméras ===== | ||
| + | ==== Caméras à la norme PAL ==== | ||
| + | |||
| + | Les caméras de ce type sont analogiques. Le signal de sortie est à la norme CCIR et elles s' | ||
| + | |||
| + | 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 ''' | ||
| + | < | ||
| + | #define DEFAULT_V4L_WIDTH | ||
| + | #define DEFAULT_V4L_HEIGHT 576 | ||
| + | </ | ||
| + | * Décommentez la ligne 1041 et modifiez la ainsi : | ||
| + | < | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Voilà, recompilez ensuite OpenCV. Positionnez vous dans le répertoire opencv.build puis : | ||
| + | < | ||
| + | make -j 2 | ||
| + | sudo make install | ||
| + | sudo ldconfig | ||
| + | </ | ||
| + | |||
| + | À noter : | ||
| + | - Je 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' | ||
| + | Ecrivez le code '' | ||
| + | < | ||
| + | #include < | ||
| + | |||
| + | /* Les deux bibliothèques nécessaires d' | ||
| + | - cv.h contient les structures et fonctions de manipulation d' | ||
| + | - highgui.h contient les fonctions d' | ||
| + | */ | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | int main(int argc, char *argv[]) | ||
| + | { | ||
| + | /* On initialise la ' | ||
| + | | ||
| + | */ | ||
| + | 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); | ||
| + | |||
| + | printf(" | ||
| + | |||
| + | // On crée une fenètre dans laquelle on affichera l' | ||
| + | cvNamedWindow(" | ||
| + | |||
| + | // C'est ce que l'on fait ici : | ||
| + | cvShowImage(" | ||
| + | |||
| + | // Appuyez sur une touche pour sortir | ||
| + | cvWaitKey(0); | ||
| + | |||
| + | // On libère ensuite, la mémoire de l' | ||
| + | cvReleaseImage(& | ||
| + | cvReleaseCapture(& | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Créez aussi le fichier '' | ||
| + | |||
| + | < | ||
| + | all: | ||
| + | g++ -O2 -Wall -o exemple ex_opencv.cpp `pkg-config --cflags --libs opencv` | ||
| + | clean: | ||
| + | rm -rf exemple | ||
| + | </ | ||
| + | |||
| + | Pour compiler : | ||
| + | < | ||
| + | make | ||
| + | </ | ||
| + | |||
| + | Pour exécuter : | ||
| + | < | ||
| + | ./exemple | ||
| + | </ | ||
| + | |||
| + | Voilà, c'est tout... | ||
| + | |||
| + | ===== Liens utiles ===== | ||
| + | |||
| + | * **(en)** [[http:// | ||
| + | * **(en)** [[http:// | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
