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:29] – 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:// | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | // |