introduction `a...

63
Design III Marc-Andr´ e Gardner Yannick Hold-Georoy Pr´ esentation de OpenCV Installation Param` etres d’une cam´ era Acquisition et achage vid´ eo Qu’est-ce qu’une image ? Segmentation Analyse structurelle Morphologie eom´ etrie Pour en savoir plus Introduction ` a OpenCV Design III : Int´ egration Marc-Andr´ e Gardner Yannick Hold-Georoy epartement de g´ enie ´ electrique, g´ enie informatique Facult´ e des sciences et de g´ enie Universit´ e Laval Hiver 2017 2018

Upload: others

Post on 15-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Introduction a OpenCVDesign III : Integration

Marc-Andre GardnerYannick Hold-Geo↵roy

Departement de genie electrique, genie informatiqueFaculte des sciences et de genie

Universite Laval

Hiver 20172018

Page 2: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, c’est...

• un cadriciel tres puissant pour la vision numerique

• une compilation d’algorithmes utiles

• une implementation optimisee pour un maximum deperformance

• une documentation bien ecrite avec de nombreux exemples

Page 3: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, c’est...

• un cadriciel tres puissant pour la vision numerique

• une compilation d’algorithmes utiles

• une implementation optimisee pour un maximum deperformance

• une documentation bien ecrite avec de nombreux exemples

Page 4: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, c’est...

• un cadriciel tres puissant pour la vision numerique

• une compilation d’algorithmes utiles

• une implementation optimisee pour un maximum deperformance

• une documentation bien ecrite avec de nombreux exemples

Page 5: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, c’est...

• un cadriciel tres puissant pour la vision numerique

• une compilation d’algorithmes utiles

• une implementation optimisee pour un maximum deperformance

• une documentation bien ecrite avec de nombreux exemples

Page 6: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, ce n’est pas...

Un magicien !

• si vos images sont mauvaises, le resultat le sera aussi(garbage in, garbage out)

• peu utile en dehors de la vision (asservissement desmoteurs, intelligence artificielle...)

• traiter des images en 1600x1200 donnera un superberesultat, mais au prix d’une surcharge de calcul importante

• si les mathematiques derriere vos algorithmes sontincorrectes, le resultat ne le sera pas non plus. Utiliser desalgorithmes preimplementes est interessant, mais il fauttout de meme comprendre ce qu’ils font...

Page 7: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, ce n’est pas...

Un magicien !

• si vos images sont mauvaises, le resultat le sera aussi(garbage in, garbage out)

• peu utile en dehors de la vision (asservissement desmoteurs, intelligence artificielle...)

• traiter des images en 1600x1200 donnera un superberesultat, mais au prix d’une surcharge de calcul importante

• si les mathematiques derriere vos algorithmes sontincorrectes, le resultat ne le sera pas non plus. Utiliser desalgorithmes preimplementes est interessant, mais il fauttout de meme comprendre ce qu’ils font...

Page 8: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, ce n’est pas...

Un magicien !

• si vos images sont mauvaises, le resultat le sera aussi(garbage in, garbage out)

• peu utile en dehors de la vision (asservissement desmoteurs, intelligence artificielle...)

• traiter des images en 1600x1200 donnera un superberesultat, mais au prix d’une surcharge de calcul importante

• si les mathematiques derriere vos algorithmes sontincorrectes, le resultat ne le sera pas non plus. Utiliser desalgorithmes preimplementes est interessant, mais il fauttout de meme comprendre ce qu’ils font...

Page 9: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

OpenCV, ce n’est pas...

Un magicien !

• si vos images sont mauvaises, le resultat le sera aussi(garbage in, garbage out)

• peu utile en dehors de la vision (asservissement desmoteurs, intelligence artificielle...)

• traiter des images en 1600x1200 donnera un superberesultat, mais au prix d’une surcharge de calcul importante

• si les mathematiques derriere vos algorithmes sontincorrectes, le resultat ne le sera pas non plus. Utiliser desalgorithmes preimplementes est interessant, mais il fauttout de meme comprendre ce qu’ils font...

Page 10: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Installation d’une versionoptimisee

• OpenCV est preinstalle en version 2.4.7 sur les imagesFedora Linux qui vous sont fournies.

• Il peut etre interessant d’utiliser une version personnaliseeplus recente (gains en performances / fonctionnalites)

• Binaires disponibles pour Windows (Visual Studio)

3.2

Page 11: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Installation d’une versionoptimisee

• OpenCV est preinstalle en version 2.4.7 sur les imagesFedora Linux qui vous sont fournies.

• Il peut etre interessant d’utiliser une version personnaliseeplus recente (gains en performances / fonctionnalites)

• Binaires disponibles pour Windows (Visual Studio)

3.2

Page 12: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Langages supportes

• OpenCV o↵re des bindings o�ciels pour les langagessuivants : C, C++, Python et Java

• Les documentations C, C++ et Python sont communes,mais la documentation Java est separee(http://docs.opencv.org/java/) (les interfaces sontlegerement di↵erentes)

• Il existe egalement le projet non o�ciel JavaCV(https://github.com/bytedeco/javacv)

• Pour pouvoir avoir les bindings java, il faut compiler uneversion personnalisee d’OpenCV, en ayantprealablement installe ant et en ayant correctement decritle chemin d’installation de Java avec la variabled’environnement $JAVA HOME (voir documentd’installation sur le site du cours)

Page 13: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Langages supportes

• OpenCV o↵re des bindings o�ciels pour les langagessuivants : C, C++, Python et Java

• Les documentations C, C++ et Python sont communes,mais la documentation Java est separee(http://docs.opencv.org/java/) (les interfaces sontlegerement di↵erentes)

• Il existe egalement le projet non o�ciel JavaCV(https://github.com/bytedeco/javacv)

• Pour pouvoir avoir les bindings java, il faut compiler uneversion personnalisee d’OpenCV, en ayantprealablement installe ant et en ayant correctement decritle chemin d’installation de Java avec la variabled’environnement $JAVA HOME (voir documentd’installation sur le site du cours)

Page 14: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Langages supportes

• OpenCV o↵re des bindings o�ciels pour les langagessuivants : C, C++, Python et Java

• Les documentations C, C++ et Python sont communes,mais la documentation Java est separee(http://docs.opencv.org/java/) (les interfaces sontlegerement di↵erentes)

• Il existe egalement le projet non o�ciel JavaCV(https://github.com/bytedeco/javacv)

• Pour pouvoir avoir les bindings java, il faut compiler uneversion personnalisee d’OpenCV, en ayantprealablement installe ant et en ayant correctement decritle chemin d’installation de Java avec la variabled’environnement $JAVA HOME (voir documentd’installation sur le site du cours)

Page 15: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Langages supportes

• OpenCV o↵re des bindings o�ciels pour les langagessuivants : C, C++, Python et Java

• Les documentations C, C++ et Python sont communes,mais la documentation Java est separee(http://docs.opencv.org/java/) (les interfaces sontlegerement di↵erentes)

• Il existe egalement le projet non o�ciel JavaCV(https://github.com/bytedeco/javacv)

• Pour pouvoir avoir les bindings java, il faut compiler uneversion personnalisee d’OpenCV, en ayantprealablement installe ant et en ayant correctement decritle chemin d’installation de Java avec la variabled’environnement $JAVA HOME (voir documentd’installation sur le site du cours)

Page 16: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

USB Video-device Class etparametrage

• UVC est un standard pour la video sur USB ; il supporteun certain nombre de controles utiles au projet, enparticulier Exposure, Gain, White balance, Backlightcompensation, Contrast et Brightness.

• La Logitech C905 est configuree par defaut avec desreglages automatiques.

• Ces parametres peuvent etre ajustes directement dansOpenCV (VideoCapture.set en C++ par exemple), ouavec un utilitaire en ligne de commande, uvcdynctrl (yuminstall uvcdynctrl). Le logiciel guvcview peut etre utilepour constater l’impact des reglages.

Page 17: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

USB Video-device Class etparametrage

• UVC est un standard pour la video sur USB ; il supporteun certain nombre de controles utiles au projet, enparticulier Exposure, Gain, White balance, Backlightcompensation, Contrast et Brightness.

• La Logitech C905 est configuree par defaut avec desreglages automatiques.

• Ces parametres peuvent etre ajustes directement dansOpenCV (VideoCapture.set en C++ par exemple), ouavec un utilitaire en ligne de commande, uvcdynctrl (yuminstall uvcdynctrl). Le logiciel guvcview peut etre utilepour constater l’impact des reglages.

Page 18: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

USB Video-device Class etparametrage

• UVC est un standard pour la video sur USB ; il supporteun certain nombre de controles utiles au projet, enparticulier Exposure, Gain, White balance, Backlightcompensation, Contrast et Brightness.

• La Logitech C905 est configuree par defaut avec desreglages automatiques.

• Ces parametres peuvent etre ajustes directement dansOpenCV (VideoCapture.set en C++ par exemple), ouavec un utilitaire en ligne de commande, uvcdynctrl (yuminstall uvcdynctrl). Le logiciel guvcview peut etre utilepour constater l’impact des reglages.

Page 19: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Acquisition et lecture video• OpenCV permet une acquisition facile a partir de lacamera (en temps reel) :

import cv2captObj = cv2.VideoCapture(CAMERA_ID) # 0 pour la 1ere camera, 1 pour la

seconde...assert captObj.isOpened(), "Erreur lors de l’ouverture de la camera!"isFrameReturned, img = captObj.read()

• La meme interface peut etre utilisee pour lire un fichier :import cv2captObj = cv2.VideoCapture("ma_video.avi")assert captObj.isOpened(), "Erreur lors de l’ouverture du fichier video!"isFrameReturned, img = captObj.read()

• Dans tous les cas, la video est traitee image par image(chaque appel a read() renvoie une nouvelle image). Si letraitement est plus rapide que le nombre d’images parseconde renvoyees par la camera, ou si la fin du fichiervideo est atteinte, read() retourne False pour l’indiquer.

• On peut aussi lire une seule image (JPG, PNG, etc.) :import cv2img = cv2.imread("mon_image.jpg")

Page 20: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Acquisition et lecture video• OpenCV permet une acquisition facile a partir de lacamera (en temps reel) :

import cv2captObj = cv2.VideoCapture(CAMERA_ID) # 0 pour la 1ere camera, 1 pour la

seconde...assert captObj.isOpened(), "Erreur lors de l’ouverture de la camera!"isFrameReturned, img = captObj.read()

• La meme interface peut etre utilisee pour lire un fichier :import cv2captObj = cv2.VideoCapture("ma_video.avi")assert captObj.isOpened(), "Erreur lors de l’ouverture du fichier video!"isFrameReturned, img = captObj.read()

• Dans tous les cas, la video est traitee image par image(chaque appel a read() renvoie une nouvelle image). Si letraitement est plus rapide que le nombre d’images parseconde renvoyees par la camera, ou si la fin du fichiervideo est atteinte, read() retourne False pour l’indiquer.

• On peut aussi lire une seule image (JPG, PNG, etc.) :import cv2img = cv2.imread("mon_image.jpg")

Page 21: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Acquisition et lecture video• OpenCV permet une acquisition facile a partir de lacamera (en temps reel) :

import cv2captObj = cv2.VideoCapture(CAMERA_ID) # 0 pour la 1ere camera, 1 pour la

seconde...assert captObj.isOpened(), "Erreur lors de l’ouverture de la camera!"isFrameReturned, img = captObj.read()

• La meme interface peut etre utilisee pour lire un fichier :import cv2captObj = cv2.VideoCapture("ma_video.avi")assert captObj.isOpened(), "Erreur lors de l’ouverture du fichier video!"isFrameReturned, img = captObj.read()

• Dans tous les cas, la video est traitee image par image(chaque appel a read() renvoie une nouvelle image). Si letraitement est plus rapide que le nombre d’images parseconde renvoyees par la camera, ou si la fin du fichiervideo est atteinte, read() retourne False pour l’indiquer.

• On peut aussi lire une seule image (JPG, PNG, etc.) :import cv2img = cv2.imread("mon_image.jpg")

Page 22: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Acquisition et lecture video• OpenCV permet une acquisition facile a partir de lacamera (en temps reel) :

import cv2captObj = cv2.VideoCapture(CAMERA_ID) # 0 pour la 1ere camera, 1 pour la

seconde...assert captObj.isOpened(), "Erreur lors de l’ouverture de la camera!"isFrameReturned, img = captObj.read()

• La meme interface peut etre utilisee pour lire un fichier :import cv2captObj = cv2.VideoCapture("ma_video.avi")assert captObj.isOpened(), "Erreur lors de l’ouverture du fichier video!"isFrameReturned, img = captObj.read()

• Dans tous les cas, la video est traitee image par image(chaque appel a read() renvoie une nouvelle image). Si letraitement est plus rapide que le nombre d’images parseconde renvoyees par la camera, ou si la fin du fichiervideo est atteinte, read() retourne False pour l’indiquer.

• On peut aussi lire une seule image (JPG, PNG, etc.) :import cv2img = cv2.imread("mon_image.jpg")

Page 23: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

A�chage et enregistrement

• OpenCV o↵re la possibilite d’a�cher facilement une ouplusieurs images :

import cv2img = cv2.imread("mon_image.jpg")cv2.namedWindow("Affichage") # Le nom de la fenetre a creercv2.imshow("Affichage", img) # Afficher "img" dans la fenetre "Affichage"cv2.waitKey() # Tres important!

• Il est necessaire d’appeler la fonction waitKey pour que lafenetre soit mise a jour !

• On peut enregistrer une video traitee par OpenCV a l’aidede la classe VideoWriter :import cv2captObj = cv2.VideoCapture(CAMERA_ID) # Ouverture de la camerafourcc = cv2.VideoWriter_fourcc(*’XVID’) # Preparation a enregistrerwriteObj = cv2.VideoWriter(’fichier.avi’, fourcc, fps=30, frameSize=(640, 480))isFrameReturned, img = captObj.read()while isFrameReturned == True: # Tant que la camera envoie des imageswriteObj.write(img) # Ecrire l’imageisFrameReturned, img = captObj.read() # Demander une nouvelle image

• Il est aussi possible d’enregistrer une image avec imwrite.

Page 24: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

A�chage et enregistrement

• OpenCV o↵re la possibilite d’a�cher facilement une ouplusieurs images :

import cv2img = cv2.imread("mon_image.jpg")cv2.namedWindow("Affichage") # Le nom de la fenetre a creercv2.imshow("Affichage", img) # Afficher "img" dans la fenetre "Affichage"cv2.waitKey() # Tres important!

• Il est necessaire d’appeler la fonction waitKey pour que lafenetre soit mise a jour !

• On peut enregistrer une video traitee par OpenCV a l’aidede la classe VideoWriter :import cv2captObj = cv2.VideoCapture(CAMERA_ID) # Ouverture de la camerafourcc = cv2.VideoWriter_fourcc(*’XVID’) # Preparation a enregistrerwriteObj = cv2.VideoWriter(’fichier.avi’, fourcc, fps=30, frameSize=(640, 480))isFrameReturned, img = captObj.read()while isFrameReturned == True: # Tant que la camera envoie des imageswriteObj.write(img) # Ecrire l’imageisFrameReturned, img = captObj.read() # Demander une nouvelle image

• Il est aussi possible d’enregistrer une image avec imwrite.

Page 25: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

A�chage et enregistrement

• OpenCV o↵re la possibilite d’a�cher facilement une ouplusieurs images :

import cv2img = cv2.imread("mon_image.jpg")cv2.namedWindow("Affichage") # Le nom de la fenetre a creercv2.imshow("Affichage", img) # Afficher "img" dans la fenetre "Affichage"cv2.waitKey() # Tres important!

• Il est necessaire d’appeler la fonction waitKey pour que lafenetre soit mise a jour !

• On peut enregistrer une video traitee par OpenCV a l’aidede la classe VideoWriter :import cv2captObj = cv2.VideoCapture(CAMERA_ID) # Ouverture de la camerafourcc = cv2.VideoWriter_fourcc(*’XVID’) # Preparation a enregistrerwriteObj = cv2.VideoWriter(’fichier.avi’, fourcc, fps=30, frameSize=(640, 480))isFrameReturned, img = captObj.read()while isFrameReturned == True: # Tant que la camera envoie des imageswriteObj.write(img) # Ecrire l’imageisFrameReturned, img = captObj.read() # Demander une nouvelle image

• Il est aussi possible d’enregistrer une image avec imwrite.

Page 26: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

A�chage et enregistrement

• OpenCV o↵re la possibilite d’a�cher facilement une ouplusieurs images :

import cv2img = cv2.imread("mon_image.jpg")cv2.namedWindow("Affichage") # Le nom de la fenetre a creercv2.imshow("Affichage", img) # Afficher "img" dans la fenetre "Affichage"cv2.waitKey() # Tres important!

• Il est necessaire d’appeler la fonction waitKey pour que lafenetre soit mise a jour !

• On peut enregistrer une video traitee par OpenCV a l’aidede la classe VideoWriter :import cv2captObj = cv2.VideoCapture(CAMERA_ID) # Ouverture de la camerafourcc = cv2.VideoWriter_fourcc(*’XVID’) # Preparation a enregistrerwriteObj = cv2.VideoWriter(’fichier.avi’, fourcc, fps=30, frameSize=(640, 480))isFrameReturned, img = captObj.read()while isFrameReturned == True: # Tant que la camera envoie des imageswriteObj.write(img) # Ecrire l’imageisFrameReturned, img = captObj.read() # Demander une nouvelle image

• Il est aussi possible d’enregistrer une image avec imwrite.

Page 27: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Qu’est-ce qu’une image ?

• Une image est une grille reguliere de valeurs (pixels) ;

• Generalement composee de 1, 3 ou 4 canaux.

Page 28: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Qu’est-ce qu’une image ?

• Une image est une grille reguliere de valeurs (pixels) ;

• Generalement composee de 1, 3 ou 4 canaux.

Page 29: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Qu’est-ce qu’une image ?

• Une image est une grille reguliere de valeurs (pixels) ;

• Generalement composee de 1, 3 ou 4 canaux.

Page 30: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation

La segmentation est le partitionnement d’une image enmultiples segments (groupes de pixels).

• Les fonctions threshold et inRange binarisent les images.

• Ces fonctions sont utilisees pour retourner un masquebinaire qui ne conserve que les regions interessantes :marqueurs sur le robot, forme a reproduire, etc.

Page 31: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation

La segmentation est le partitionnement d’une image enmultiples segments (groupes de pixels).

• Les fonctions threshold et inRange binarisent les images.

• Ces fonctions sont utilisees pour retourner un masquebinaire qui ne conserve que les regions interessantes :marqueurs sur le robot, forme a reproduire, etc.

Page 32: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation

La segmentation est le partitionnement d’une image enmultiples segments (groupes de pixels).

• Les fonctions threshold et inRange binarisent les images.

• Ces fonctions sont utilisees pour retourner un masquebinaire qui ne conserve que les regions interessantes :marqueurs sur le robot, forme a reproduire, etc.

Image : http://answers.opencv.org/question/3300/skin-detection/

Page 33: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Changement d’espacecolorimetrique

Page 34: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Changement d’espacecolorimetrique

Page 35: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Changement d’espacecolorimetrique

Page 36: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Changement d’espacecolorimetrique

• La fonction cvtColor permet de passer d’un espace decouleurs a l’autre :

import cv2img_bgr = cv2.imread("mon_image.jpg")img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)img_bgr_again = cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR)img_gray = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2GRAY)

Attention !

• OpenCV encode la teinte sur 180 degres au lieu de 360

• Attention a l’a�chage : OpenCV suppose que l’image aa�cher est toujours une image BGR !

Page 37: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Changement d’espacecolorimetrique

• La fonction cvtColor permet de passer d’un espace decouleurs a l’autre :

import cv2img_bgr = cv2.imread("mon_image.jpg")img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)img_bgr_again = cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR)img_gray = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2GRAY)

Attention !

• OpenCV encode la teinte sur 180 degres au lieu de 360• Attention a l’a�chage : OpenCV suppose que l’image a

a�cher est toujours une image BGR !

Page 38: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Changement d’espacecolorimetrique

• La fonction cvtColor permet de passer d’un espace decouleurs a l’autre :

import cv2img_bgr = cv2.imread("mon_image.jpg")img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)img_bgr_again = cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR)img_gray = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2GRAY)

Attention !

• OpenCV encode la teinte sur 180 degres au lieu de 360• Attention a l’a�chage : OpenCV suppose que l’image a

a�cher est toujours une image BGR !

S

image : http://stackoverflow.com/questions/17239253/opencv-bgr2hsv-creates-lots-of-artifacts/28201863

H

S V

RGB

Page 39: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation par couleur

• Il est beaucoup plus simple de travailler en HSV poursegmenter selon la couleur.

• Deux parametres principaux pour chaque composant : lavaleur recherchee et la tolerance sur celle-ci.

Image originale Segmentee (bleu) Segmentee (vert)

Page 40: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation par couleur

• Il est beaucoup plus simple de travailler en HSV poursegmenter selon la couleur.

• Deux parametres principaux pour chaque composant : lavaleur recherchee et la tolerance sur celle-ci.

Image originale Segmentee (bleu) Segmentee (vert)

Page 41: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation par couleur

• Il est beaucoup plus simple de travailler en HSV poursegmenter selon la couleur.

• Deux parametres principaux pour chaque composant : lavaleur recherchee et la tolerance sur celle-ci.

Image originale

Segmentee (bleu) Segmentee (vert)

Page 42: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation par couleur

• Il est beaucoup plus simple de travailler en HSV poursegmenter selon la couleur.

• Deux parametres principaux pour chaque composant : lavaleur recherchee et la tolerance sur celle-ci.

Image originale Segmentee (bleu)

Segmentee (vert)

Page 43: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Segmentation par couleur

• Il est beaucoup plus simple de travailler en HSV poursegmenter selon la couleur.

• Deux parametres principaux pour chaque composant : lavaleur recherchee et la tolerance sur celle-ci.

Image originale Segmentee (bleu) Segmentee (vert)

Page 44: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 45: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 46: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 47: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 48: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 49: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 50: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 51: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 52: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 53: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 54: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 55: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Etiquetage et englobement deforme

• findContours retourne la liste des sequences de pixelsrepresentant les contours des pixels groupes

• floodFill colorie tous les pixels connectes a un pixel initial

• connectedComponents identifie et groupe les pixels

OpenCV peut trouver la forme geometrique englobante desgroupes de pixels :

• boundingRect : rectangle englobant

• minEnclosingCircle : cercle de rayon minimal

• approxPolyDP : polygone arbitraire

Page 56: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Traitements au niveau despixels et filtrage

• Les fonctions dilate et erode sont disponibles.

AstuceIl vaut parfois mieux faire plusieurs iterations d’erosion ou dedilatation plutot que d’augmenter la taille du noyau.

• On peut obtenir ouverture et fermeture en combinanterode et dilate dans l’ordre voulu (par exempledilate(erode(img)) pour une ouverture).

• Il est possible de faire un filtrage avec un filtre moyenneurstandard (fonction blur), un filtre a noyau gaussien(fonction gaussianBlur), etc.

Page 57: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Traitements au niveau despixels et filtrage

• Les fonctions dilate et erode sont disponibles.

AstuceIl vaut parfois mieux faire plusieurs iterations d’erosion ou dedilatation plutot que d’augmenter la taille du noyau.

• On peut obtenir ouverture et fermeture en combinanterode et dilate dans l’ordre voulu (par exempledilate(erode(img)) pour une ouverture).

• Il est possible de faire un filtrage avec un filtre moyenneurstandard (fonction blur), un filtre a noyau gaussien(fonction gaussianBlur), etc.

Page 58: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Traitements au niveau despixels et filtrage

• Les fonctions dilate et erode sont disponibles.

AstuceIl vaut parfois mieux faire plusieurs iterations d’erosion ou dedilatation plutot que d’augmenter la taille du noyau.

• On peut obtenir ouverture et fermeture en combinanterode et dilate dans l’ordre voulu (par exempledilate(erode(img)) pour une ouverture).

• Il est possible de faire un filtrage avec un filtre moyenneurstandard (fonction blur), un filtre a noyau gaussien(fonction gaussianBlur), etc.

Page 59: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Traitements au niveau despixels et filtrage

• Les fonctions dilate et erode sont disponibles.

AstuceIl vaut parfois mieux faire plusieurs iterations d’erosion ou dedilatation plutot que d’augmenter la taille du noyau.

• On peut obtenir ouverture et fermeture en combinanterode et dilate dans l’ordre voulu (par exempledilate(erode(img)) pour une ouverture).

• Il est possible de faire un filtrage avec un filtre moyenneurstandard (fonction blur), un filtre a noyau gaussien(fonction gaussianBlur), etc.

Page 60: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Pour en savoir plus

• Il existe une multitude d’autres fonctions utiles...

• Une excellente reference : Learning OpenCV : ComputerVision with the OpenCV Library (disponible en ligne a labibliotheque de l’Universite Laval)

• Fouillez dans la documentation !

• Inspirez-vous des exemples et tutoriels fournis :http://docs.opencv.org/trunk/doc/tutorials/

tutorials.html et http://github.com/Itseez/opencv/tree/master/samples

Page 61: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Pour en savoir plus

• Il existe une multitude d’autres fonctions utiles...

• Une excellente reference : Learning OpenCV : ComputerVision with the OpenCV Library (disponible en ligne a labibliotheque de l’Universite Laval)

• Fouillez dans la documentation !

• Inspirez-vous des exemples et tutoriels fournis :http://docs.opencv.org/trunk/doc/tutorials/

tutorials.html et http://github.com/Itseez/opencv/tree/master/samples

Page 62: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Pour en savoir plus

• Il existe une multitude d’autres fonctions utiles...

• Une excellente reference : Learning OpenCV : ComputerVision with the OpenCV Library (disponible en ligne a labibliotheque de l’Universite Laval)

• Fouillez dans la documentation !

• Inspirez-vous des exemples et tutoriels fournis :http://docs.opencv.org/trunk/doc/tutorials/

tutorials.html et http://github.com/Itseez/opencv/tree/master/samples

Page 63: Introduction `a OpenCVwcours.gel.ulaval.ca/2018/h/GEL3014/default/5notes/presentiels/opencv-2018-2.pdfde OpenCV Installation Param`etres d’une cam´era Acquisition et achage vid´eo

Design III

Marc-AndreGardnerYannick

Hold-Geo↵roy

Presentationde OpenCV

Installation

Parametresd’une camera

Acquisition eta�chage video

Qu’est-cequ’uneimage ?

Segmentation

Analysestructurelle

Morphologie

Geometrie

Pour en savoirplus

Pour en savoir plus

• Il existe une multitude d’autres fonctions utiles...

• Une excellente reference : Learning OpenCV : ComputerVision with the OpenCV Library (disponible en ligne a labibliotheque de l’Universite Laval)

• Fouillez dans la documentation !

• Inspirez-vous des exemples et tutoriels fournis :http://docs.opencv.org/trunk/doc/tutorials/

tutorials.html et http://github.com/Itseez/opencv/tree/master/samples

http://docs.opencv.org/

http://github.com/opencv/opencv/tree/master/samples