traitement d’images semaine 07 va13 morphologie. plan de leçon source vidéo morphologie ...

21
Traitement d’images Semaine 07 vA13 Morphologie

Upload: capucine-dubourg

Post on 04-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Traitement d’imagesSemaine 07 vA13Morphologie

Page 2: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Plan de leçon Source vidéo Morphologie

Érosion Dilatation Ouverture Fermeture

Région d’intérêt Canal d’intérêt Opérateurs arithmétiques et binaires

Page 3: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Source vidéo Il est possible de lire les fichiers vidéo

ou les flux caméras avec OpenCV Le principe est d’utiliser la classe VideoCapture pour initier la caméra Cette classe accepte les flux URL* Le URL dépendra de marque de la caméra

Ensuite, il faudra valider si la caméra a bel et bien été chargée

Page 4: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Source vidéo Dans le code, il faudra utiliser une

boucle qui s’arrête une fois que la vidéo prend fin ou encore selon l’action de l’utilisateur avec la fonction waitKey

La méthode read de la classe VideoCapture permet de lire une image du flux de transmission

Page 5: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Source vidéo : Exempleint main (){ char * adr = "http://10.10.3.80/videostream.cgi?user=admin&pw=&resolution=32"; char * winMain = "Main";

Mat frame; VideoCapture cap(1); if (!cap.isOpened()){ string k; cout << "Unable to load source!\r\n"; getchar(); //cin >> k; return -1; }

int c = 0;

namedWindow(winMain); while (c != 27) { if (!cap.read(frame)) { cout << "No image!\r\n"; c = waitKey(); } imshow(winMain, frame); c = waitKey(33); }}

Page 6: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Morphologie

Page 7: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Morphologie L’idée de base est de convoluer un

élément structurant (opérateur) sur une image binaire pour mettre en évidence des éléments visuels ou encore d’éliminer des structures qui ne respectent pas certains critères

Exemple d’opérateur

Page 8: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Érosion L’érosion consiste à passer un opérateur

qui « érode » l’image Tout ce qui touche au point d’ancrage

de l’opérateur est converti à la valeur la plus basse

Élément structurantcarré de 3x3

Exemple : centre

Page 9: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Dilatation La dilatation consiste à passer un

opérateur qui « dilate » les valeurs intenses

Tout ce qui touche au point d’ancrage de l’opérateur est converti à la valeur la plus haute

Élément structurantcarré de 3x3

Page 10: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Morphologie Voici un exemple de l’effet de la

dilatation et l’érosion avec un carré de 3x3

Original Dilatation Érosion

Page 11: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Ouverture L’ouverture constitue d’une érosion

suivit d’une dilatation Cela permet de faire disparaître des

petits artéfacts Il faut que ceux-ci soit clair sur un fond

foncé

𝑑𝑠𝑡=𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 )=𝑑𝑖𝑙𝑎𝑡𝑎𝑡𝑖𝑜𝑛(𝑒𝑟𝑜𝑠𝑖𝑜𝑛 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 ))

Page 12: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Fermeture Elle consiste d’une dilatation suivi d’une

érosion Elle permet de fermer les petits trous

dans une image

𝑑𝑠𝑡= 𝑓𝑒𝑟𝑚𝑒𝑡𝑢𝑟𝑒 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 )=𝑒𝑟𝑜𝑠𝑖𝑜𝑛(𝑑𝑖𝑙𝑎𝑡𝑎𝑡𝑖𝑜𝑛 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 ))

Page 13: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Gradient morphologique C’est la différence entre une dilatation

et une érosion Cela permet de tracer le contour des

objets

𝑑𝑠𝑡=𝑚𝑜𝑟𝑝h𝑔𝑟𝑎𝑑 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 )=𝑑𝑖𝑙𝑎𝑡𝑎𝑡𝑖𝑜𝑛 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 )−𝑒𝑟𝑜𝑠𝑖𝑜𝑛 (𝑠𝑟𝑐 ,𝑒𝑙𝑒𝑚𝑒𝑛𝑡 )

Page 14: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Traitement d’imagesRégion d’intérêtCanal d’intérêtOpérateurs arithmétiques et binaires

Page 15: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Plan de leçon Région d’intérêt Canal d’intérêt Opérations arithmétiques Opérateurs logiques

Page 16: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Région et canal d’intérêt La ROI sert à cadrer une région pour accélérer

les algorithmes de traitement Ainsi au lieu d’exécuter un algorithme sur une

image entière, celui-ci est appliquée que sur la région d’intérêt

Une région d’intérêt n’est qu’une sous-image dans une image

Pour définir une ROI, il suffit d’avoir une image source et un rectangle qui définit la zone

Mis à part le rectangle, le même principe peut s’appliquer aux canaux

Page 17: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

ROI et COI// Lire l’imageMat img = imread(monFichier);// Régler le roiMat roi (img, monRectangle);// Rempli le roi de vert qui affecte l’image originaleroi = Scalar (0, 255, 0);

Page 18: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Opérations arithmétiques Telles les équations mathématiques, il y a

l’équivalent au niveau des images cv::add, cv::sub, cv::multiply, cv::sum, etc.

Certains opérateurs tels que « + », « - » et « * » fonctionnent

Exemple faire le tracer du mouvement en faisant une somme pondérée de la différence des contours Projet : ocv_difference

Page 19: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Opérateurs logiques cv::bitwise_operateur

bitwise_and bitwise_or bitwise_xor bitwise_not

Ces opérateurs agissent de la même façon que sur les valeurs numériques sauf qu’ils s’appliquent aux valeurs des pixels

Page 20: Traitement d’images Semaine 07 vA13 Morphologie. Plan de leçon  Source vidéo  Morphologie  Érosion  Dilatation  Ouverture  Fermeture  Région d’intérêt

Exercices À l’aide d’une caméra vidéo Afficher plusieurs fenêtres avec chacun des filtres

suivants Vidéo originale Vidéo avec une détection de contour avec gradient

morphologique Possibilité de désactiver ce filtre en appuyant sur

espace La touche d’échappement doit servir à quitter la

boucle du flux de vidéo Vidéo avec filtre de détection de contour Sobel

Optionnel