La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

OpenCV: Introduction au Traitement d Images et Vid é o Fran ç ois Meunier DMI.

Présentations similaires


Présentation au sujet: "OpenCV: Introduction au Traitement d Images et Vid é o Fran ç ois Meunier DMI."— Transcription de la présentation:

1 OpenCV: Introduction au Traitement d Images et Vid é o Fran ç ois Meunier DMI

2 Contenu Librairies de OpenCV Ouverture et lecture dImages avec OpenCV Ouverture et lecture de vidéo avec OpenCV Gestion des événements (souris, track bar) Voir le tutoriel: Introduction to programming with OpenCV.doc

3 Librairies de OpenCV Librairie Cxcore Librairie Cv Librairie Highgui

4 Librairie Cxcore Contient les structures de données de base dOpenCV et supporte lalgèbre linéaire Structures CvPoint : point 2D avec coordonnées entières CvPoint2D32f: point 2D avec coordonnées réelles CvMat : matrice IplImage: entête d image IPL Opérations IplImage* cvCreateImage( CvSize size, int depth, int channels ); IplImage* cvCloneImage( const IplImage* image ); void cvSetImageROI( IplImage* image, CvRect rect ); Statistiques Algèbre linéaire

5 Librairie Cv Contient des algorithmes de traitement dimage, danalyse structurelle, danalyse du mouvement. Fonctions populaires void cvCanny : détection darêtes void cvGoodFeaturesToTrack: détection de coins void cvCvtColor : Convertion dimage dun domaine de couleur à un autre (CV_BGR2XYZ, CV_RGB2XYZ, CV_XYZ2BGR, CV_XYZ2RGB ) void cvPyrSegmentation : Segmentation dimage void cvMoments :Calcule les moments dordre 0, 1, 2, et 3 dune surface CvHistogram* cvCreateHist :Création dhistogramme CvSeq* cvConvexHull2 : Déduit lenveloppe convexe (convex hull) dun ensemble de points

6 Exemples de résultats Détection darête Segmentation dimage Histogramme

7 Librairie Highgui GUI simple Lecture et écriture dImages Lecture et écriture de Vidéo

8 Structure d image: IplImage typedef struct _IplImage { int nSize; /* sizeof(IplImage) */ int ID; /* version (=0)*/ int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */ int depth; /* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported */ int origin; /* 0 - top-left origin, 1 - bottom-left origin (Windows bitmaps style) */ int align; /* Alignment of image rows (4 or 8). OpenCV ignores it and uses widthStep instead */ int width; /* image width in pixels */ int height; /* image height in pixels */ int imageSize; /* image data size in bytes (==image->height*image->widthStep in case of interleaved data)*/ char *imageData; /* pointer to aligned image data */ int widthStep; /* size of aligned image row in bytes */ } IplImage;

9 Cr é ation d une image #include "cv.h" // includes OpenCV definitions #include "highgui.h" // includes highGUI definitions #include // includes C standard input/output definitions int main() { IplImage *cvImg; // image utilisee pour la visualisation CvSize imgSize; // dimension de l image de visualisation int i = 0, j = 0; imgSize.width = 640; // l image de visualisation est de imgSize.height = 480; // 640x480 pixels // cr é ation d une image de niveau de gris de 8 bits (0..255) cvImg = cvCreateImage( imgSize, 8, 1 );

10 Cr é ation d image (suite) for ( i = 0; i < imgSize.width; i++ ) for ( j = 0; j < imgSize.height; j++ ) ((uchar*)(cvImg->imageData + cvImg->widthStep*j))[i] = ( char ) ( ( i * j ) % 256 ); cvNamedWindow( "Testing OpenCV...", 1 ); // creation de la fenetre de // visualisation cvShowImage( "Testing OpenCV...", cvImg ); // affichage de l image cvWaitKey( 0 ); // attendre une touche enfoncee au clavier cvDestroyWindow( " Testing OpenCV … " ); // fermer la fenetre cvReleaseImage( &cvImg ); // liberer la memoire return( 0 ); // fin du programme }

11 Lecture & Affichage d Image #include "cv.h" #include "highgui.h" #include char name0[] = "../images/airplane.jpg"; char name1[] = "../images/baboon.jpg"; int main() { IplImage* img0 = NULL; IplImage* img1 = NULL; img0 = cvLoadImage( name0, -1 ); // exemple: fichier baboon.jpg est lu et pointé par img1 img1 = cvLoadImage( name1, -1 ); Spécifier le nom des fichiers image Déclaration du nom de fichier image à lire Création de pointeurs sur des structures IplImage Déclaration des images Lire les images avec la fonction cvLoadImage() Lecture des fichiers images

12 Lecture & Affichage d Image (suite) // une fenetre de visualisation est créée avec comme titre image0 cvNamedWindow( "image0", 1 ); cvNamedWindow( "image1", 1 ); // img0 est affichee dans la fenetre image0 cvShowImage( "image0", img0 ); // img1 est affichee dans la fenetre image1 cvShowImage( "image1", img1 ); cvWaitKey(0); // Attendre quune touche au clavier soit enfoncee // liberation de la memoire de limage img0 cvReleaseImage( &img0 ); // liberation de la memoire de limage img1 cvReleaseImage( &img1 ); …….. cvNamedWindow() crée une fenêtre daffichage. Paramètres: 1) Titre de la fenêtre. 2) CV_WINDOW_AUTOSIZE, limage sera ajustée à la fenêtre. cvShowImage() permet dafficher une image. Affichage dImages Libérer les Images

13 Lecture & Affichage d Image (suite) // liberation de la memoire de la fenetre image0 cvDestroyWindow( image0) ); // liberation de la memoire de la fenetre image1 cvDestroyWindow( image1) ); return(0); } Libérer les fenêtres

14 Résultats (lecture et affichage) Écriture dimage Lecture et affichage dimage

15 Ouverture et lecture de vidéo avec OpenCV CvCapture* capture = 0; capture = cvCaptureFromCAM(-1) // indexe de la caméra ou -1 la premiere disponible ou cvCaptureFromAVI(video.avi) Pour chaque image dans le vidéo IplImage* frame = 0; frame = cvQueryFrame( capture ); image = cvCreateImage( cvGetSize(frame), 8, 3 ); image->origin = frame->origin; cvCopy( frame, image, 0 ); image est limage que vous pouvez alors manipuler

16 Gestion des événements (souris, track bar) Création dun track bar

17 Gestion des événements (souris, track bar) Création dun track bar

18 Gestion des événements (souris, track bar) Création dun track bar

19 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c)

20 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c) // conversion de couleur BGR à GRAY // lissage de image03 // cloner limage image03

21 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c) // faire pivoter limage par rapport a laxe x

22 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c)

23 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c): Fonction associée à lévénement de déplacement du track bar

24 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c): Fonction associée à lévénement de déplacement du track bar

25 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c): Fonction associée à lévénement de déplacement du track bar

26 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c): Fonction associée à lévénement de déplacement du track bar

27 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (findThresholdFaceNIR.c): Fonction associée à lévénement de déplacement du track bar

28 Gestion des événements (souris, track bar) Gestion des événements de souris

29 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c)

30 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c) // specifier la fenetre et la fonction associee //…. le main() se poursuit ici …..

31 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c: main() suite..)

32 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c: main() suite..) // Affichage des cercles verts correspondant aux pixels sélectionnés dans limage

33 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c: main() suite..)

34 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c: main() suite..)

35 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c): fonction associée à lévénement de souris

36 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c): exécution du programme

37 Gestion des événements (souris, track bar) Exemple de programme utilisant OpenCV (lkdemo.c): exécution du programme: événement cliquer bouton gauche


Télécharger ppt "OpenCV: Introduction au Traitement d Images et Vid é o Fran ç ois Meunier DMI."

Présentations similaires


Annonces Google