Introduction OpenCV - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Introduction OpenCV

Description:

Qu'est-ce qu'OpenCV? Structure de l'image IPL. Fonctionnalit s offertes. Exemples ... Offre des outils pour traiter vos images et faciliter la reconnaissance du ... – PowerPoint PPT presentation

Number of Views:986
Avg rating:3.0/5.0
Slides: 20
Provided by: Ber990
Category:

less

Transcript and Presenter's Notes

Title: Introduction OpenCV


1
Introduction à OpenCV
GEL 21405 Design III
  • Charles du Tremblay
  • A 2006

2
Plan
  • Pourquoi OpenCV?
  • Quest-ce quOpenCV?
  • Structure de limage IPL
  • Fonctionnalités offertes
  • Exemples dutilisation

3
Pourquoi OpenCV?
  • Une grande part de vos résultats dépendent de la
    vision.
  • Fournit un lien entre la caméra et votre
    application (IA).
  • Offre des outils pour traiter vos images et
    faciliter la reconnaissance du terrain.

4
Quest-ce quOpenCV?
  • OpenCV Open Source Computer Vision Library
  • OpenCV vise
  • La vision numérique en temps réel
  • La segmentation, reconnaissance et identification
    dobjets
  • OpenCV offre
  • Une collection dalgorithmes
  • Des exemples de codes

5
Quest-ce quOpenCV
  • OpenCV est bâtit sur IPL (Intel Image Processing
    Library)
  • Même format dimage (IPL image)
  • La plupart des fonctions sont compatibles
  • Différences
  • Fonctions exclusives
  • Quelques fonctions incompatibles
  • OpenCV utilisation partielle du format IPL image

6
Structure de limage IPL
  • IplImage
  • nSize sizeof(IplImage) (int)
  • nChannels Nb. de canaux (1-4 en OpenCV) (int)
  • depth Bits par pixels (int)
  • width Largeur de limage en pixels (int)
  • height Hauteur de limage en pixels (int)
  • roi Region Of Interest (_IplROI)
  • maskROI1 Masque (_IplImage)
  • alphaChannel2 Canal alpha (int)
  • colorModel2 Espace couleur utilisé (char4)
  • BorderMode2 Mode de détection de contour
    (int4)
  • 1 Doit être NULL pour les fonctions OpenCV
  • 2 Non supporté ou ignoré par OpenCV. Utile pour
    IPL.

7
Fonctionnalités offertes
  • Création, allocation destruction dimages
  • Détection de contours
  • Conversion despace couleur
  • Analyse de contour
  • Soustraction darrière-plan
  • Détection de régions
  • Pyramides dimages
  • Opération morphologiques (érosion, dilatation,
    etc.)
  • Seuillage

8
Création, allocation destruction dimages
  • Lier une caméra
  • Fonction cvCaptureFromCAM(int index)
  • Retourne un objet CvCapture qui définit votre
    caméra
  • Lindex importe peu pour une seule caméra
  • Prendre une image
  • Fonction cvGrabFrame(CvCapture camera)
  • Demande à la caméra de capturer une image
  • Fonction cvRetrieveFrame(CvCapture camera)
  • Retourne une image IPL (IplImage)
  • Le format par défaut est BRG 8-bits

9
Création, allocation destruction dimages
  • Créer une image vide
  • Fonction cvCreateImage(CvSize size, int depth,
  • int channels)
  • Retourne une image IPL (IplImage) remplie de 0.
  • Libérer la mémoire
  • Fonction cvReleaseImage(IplImage img)
  • Pour libérer lespace mémoire prise par une
    image.
  • Fonction cvReleaseCapture(CvCapture camera)
  • Pour libérer la caméra.

10
Conversion despace couleur
  • Pour OpenCV
  • Espaces couleurs
  • RGB (BRG, RBG, etc.)
  • HSV
  • YCRCB
  • CIE XYZ
  • Fonction cvCvtColor(imgSrc, imgDest, code)
  • CIE Lab
  • Bayer
  • Greyscale

Attention à lordre des composantes RGB dans les
images que vous traitez! Par défaut, vos images
sont capturées en BRG et non en RGB.
11
Seuillage
  • Permet une première identification des points
    dintérêts.
  • Garde les pixels de la couleur de lobjet
    recherché

Seuil sur RGB blanc
Seuil sur HSV rouge
Image originale
12
Exemple dapplication
  • Trouver un objet rouge dans une image
  • Initialiser la caméra et les images.
  • Convertir lespace couleur.
  • Parcourir limage HSV et vérifier les pixels par
    rapport aux seuils fixés.
  • Détruire limage et libérer la mémoire.

13
Exemple dapplication
  • Initialiser la caméra et les images
  • //Définir une caméra
  • CvCapture camera cvCaptureFromCAM( -1 )
  • //Capturer une image
  • cvGrabFrame( camera )
  • //Aller chercher limage sous format IplImage
  • IplImage brgFrame cvRetrieveFrame( camera )
  • //Copies de limage pour les transformations
  • IplImage seuilFrame cvCreateImage(
    cvGetSize(brgFrame),
  • IPL_DEPTH_8U , 1 )
  • IplImage hsvFrame cvCreateImage(
    cvGetSize(brgFrame),
  • IPL_DEPTH_8U, 3 )

14
Exemple dapplication
  • Convertir lespace couleur
  • //Conversion BGR -gt HSV
  • cvCvtColor( brgFrame, hsvFrame, CV_BGR2HSV )
  • //Retourne limage par rapport à X si nécessaire
  • cvFlip( hsvFrame, NULL, 0) //0 axe X

15
Exemple dapplication
  • Parcourir limage HSV et vérifier les seuils
  • //Pour chaque pixel
  • for(int y 0 y lt (cvGetSize(hsvFrame).height)
    y)
  • for(int x 0 x lt (cvGetSize(hsvFrame).width)
    x)
  • //si HSV entre les seuils max et min
  • if(
  • //test minH (0)
  • ((hsvFrame-gtimageData hsvFrame-gtwidthStepy))
    x3 gt 0
  • //test maxH (50)
  • ((hsvFrame-gtimageData hsvFrame-gtwidthStepy))
    x3 lt 50

16
Pourquoi  x3k
Donc k0 pour H k1 pour S k2 pour V
17
Exemple dapplication
  • Parcourir limage HSV et vérifier les seuils
    (suite)
  • //test minS (100)
  • (hsvFrame-gtimageData hsvFrame-gtwidthStepy)(x
    3)1 gt100
  • )
  • //placer un point blanc dans limage seuils
    .
  • ( seuilFrame-gtimageData seuilFrame-gtwidthStep
    y)x 255
  • //Sinon, placer un point noir.
  • else
  • ( seuilFrame-gtimageData seuilFrame-gtwidthStep
    y)x 0
  • //fin des boucles

18
Exemple dapplication
  • Détruire limage et libérer la mémoire
  • suite des opérations sur limage
  • //Libérer lespace des images
  • cvReleaseImage( brgFrame )
  • cvReleaseImage( hsvFrame )
  • cvReleaseImage( seuilFrame )
  • //Libérer la caméra
  • cvReleaseCapture( camera )

19
Bon Travail!
  • Références
  • Intel Image Processing Library Reference Manual
  • OpenCV Reference Manual
  • http//wcours.gel.ulaval.ca/2006/a/21405/default/7
    references/index.chtml
  • http//www.site.uottawa.ca/laganier/tutorial/open
    cvdirectshow
  • http//www710.univ-lyon1.fr/bouakaz/OpenCV-0.9.5/
    docs/
Write a Comment
User Comments (0)
About PowerShow.com