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

Traitement d’images Semaine 03 A15 Seuillage.

Présentations similaires


Présentation au sujet: "Traitement d’images Semaine 03 A15 Seuillage."— Transcription de la présentation:

1 Traitement d’images Semaine 03 A15 Seuillage

2 Plan de leçon Parcourir une image pixel par pixel Seuillage

3 Pixel par pixel Parcourir une image un pixel à la fois pourrait être utile dans certains cas Les données des pixels se retrouvent dans la propriété data de la classe Mat Par défaut, les données sont de type uchar Ainsi, il est important de convertir (cast) nos données pour ne pas avoir d’erreur

4 Pixel par pixel int main (int argc, char* argv[]) { Mat img; string winMain = "Main"; img = imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE); uchar current; for (int j = 0; j < img.rows; j++) for (int i = 0; i < img.cols; i++) current = img.data[j * img.cols + i]; if (current < 127) img.data[j * img.cols + i] = 0; } namedWindow(winMain); imshow(winMain, img); waitKey(); return 1; Pour une image à canal unique il suffit d’accéder directement à l’index du pixel pour le manipuler Que peut-on faire pour optimiser la boucle? Sortir les invariants de la boucle et minimiser les calculs

5 Pixel par pixel int main (int argc, char* argv[]) { Mat img; string winMain = "Main"; long int idx; img = imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE); uchar current; int step; for (int j = 0; j < img.rows; j++) step = j * img.cols; for (int i = 0; i < img.cols; i++) idx = step + i; current = img.data[idx]; if (current < 127) img.data[idx] = 0; } namedWindow(winMain); imshow(winMain, img); waitKey(); return 1; Pour une image à canal unique il suffit d’accéder directement à l’index du pixel pour le manipuler Que peut-on faire pour optimiser la boucle? Sortir les invariants de la boucle et minimiser les calculs waitKey(int d) retourne un char qui est la valeur du caractère tapé

6 Pixel par pixel RGB Pour utiliser le même principe, il suffit de multiplier l’offset de rangées par le nombre de canaux ainsi que le offset de colonne Exemple : Un pixel rouge img.data[j * img.cols * nbChan + i * nbChan] = (uchar)0; //B img.data[j * img.cols * nbChan + i * nbChan + 1] = (uchar)0; //G img.data[j * img.cols * nbChan + i * nbChan + 2] = (uchar)255; //R Que ferait ce code?

7 Seuillage Le seuillage permet de segmenter les pixels dans une image
Par exemple, on peut indiquer dans une image que tous les pixels qui ont une valeur inférieure au seuil établi soient à 0 et ceux qui ont une valeur supérieure soit à 255 La segmentation permet de classifier les pixels en les étiquetant

8 Seuillage Exemple

9 Seuillage : segmentation
On va segmenter une image pour faciliter l’analyse de celle-ci Son application est variée Imagerie médicale : Trouver une tumeur Reconnaissance de visage : Identification Reconnaissance d’iris : Identification Système de contrôle de trafic Etc.

10 Seuillage Dans les représentations ci-contre, l’axe y représente le niveau de gris source et l’axe x représente la position d’un pixel dans le graphique supérieur Exemple : Si on prend le seuillage binaire, une valeur supérieure au seuil établi aura une valeur de 255 et tout ce qui est inférieur aura une valeur de 0

11 Seuillage : openCV OpenCV offre la fonction threshold qui permet de seuiller une image Syntaxe threshold (src, dst, seuil, valMax, type) seuil : Valeur du seuil valMax : Dépendant du type, valeur maximum donnée type : La méthode Otsu permet de trouver le seuil optimal entre deux pics dans l’histogramme.

12 Exercices Faire une application nommée « seuillage » qui seuille une image selon les arguments entrés par l’utilisateur Usage : seuillage image seuil valeurMax typeSeuillage TypeSeuillage : binaire, binaireinv, tronque, zero et zeroinv Ajouter une méthode « usage » qui affiche les instructions s’il y a une erreur d’utilisation Exemple seuillage monimg.jpg binaire

13 Aide pour exercice Rechercher « Command line argument tutorial »


Télécharger ppt "Traitement d’images Semaine 03 A15 Seuillage."

Présentations similaires


Annonces Google