Traitement d’images Semaine 03 A15 Seuillage.

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Premier programme en C :
Les fonctions A quoi ça sert ?
Portée des variables VBA & Excel
Interactivé: L'Action Script.
Calculs de complexité d'algorithmes
(Classes prédéfinies – API Java)
C.
Traitement d’images : briques de base S. Le Hégarat
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
8. Les tableaux P. Costamagna – ISEN N1.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
1 Statistiques Séance 5 – 9 Nov Résumé séance précédente Lécart-type σ ou s. Comment le calculer? Les propriétés numériques de la courbe normale.
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
Common Gateway Interface
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
ALGORITHMES RECURSIFS
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Le codage des nombres en informatique
PROGRAMMATION SCIENTIFIQUE EN C PRO Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Modèles d’implantation
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Une nouvelle structure de données : les tableaux
IFT 6800 Atelier en Technologies d’information
SIF-1033 Traitement d’image
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
Procédures et fonctions
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Une introduction à Java
La librairie assert.h.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Semaine 07 vA13 Morphologie
La notion de type revisitée en POO
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Notions avancées du C++
Argc et argv Utilisation des paramètres de la ligne de commande.
Autres éléments du langage
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
Strings et Tableaux en Java
Les surcharges d'opérateurs
Semaine 06 vA14 Modèle colorimétrique Détection de contours
Cours LCS N°4 Présenté par Mr: LALLALI
Application directe du code binaire et hexadécimal
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Visualisation des flots optiques en 3D
Chapitre 4 La représentation des nombres.
Traitement d’images 420-D78-SW A15 Semaine 02.
TRAITEMENT D’IMAGES Semaine 05. AGENDA DE LEÇON Documentation officielle d’OpenCV Écrire du texte Source vidéo TP1.
Programmation créative Semaine 03. Agenda de leçon  Rotation d’un sprite  Modifier la couleur d’un sprite.
Exception Handling "Unfortunately, it's almost accepted practice to ignore error conditions, as if we're in a state of denial about errors." Bruce Eckel.
Programmation créative – Les vecteurs
Traitement d’images Semaine 09 v.A15.
Traitement d’images Semaine 13 – Modèle correspondant.
ALGORITHME DE VOLÉES Programmation créatives Les volées, le spawning et les collisions.
Télécharger :
Traitement d’images Semaine 09 vA15.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Traitement d’images 420-D78-SW A17 Semaine 02.
Traitement d’images Semaine 05.
Arguments de la ligne de commande
Transcription de la présentation:

Traitement d’images Semaine 03 A15 Seuillage

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

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

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

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é

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?

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

Seuillage Exemple

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.

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

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.

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 127 255 binaire

Aide pour exercice Rechercher « Command line argument tutorial »