Semaine 06 vA14 Modèle colorimétrique Détection de contours

Slides:



Advertisements
Présentations similaires
Courbes de fonctions avec Excel
Advertisements

Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
Introduction à limagerie numérique Acquisition, Caractéristiques, Espaces couleurs, Résolution.
12 novembre 2012 Grégory Petit
Traitements d'images et Vision par ordinateur
INF-1019 Programmation en temps réel
Microsoft Excel Avancé
Chapitre 5 : Image couleur
Traitements d'images et Vision par ordinateur
Les Images Couleur Cours 4
Détection de « tâches dobjets artificialisés » D.Réchal IRD, ESPACE Dev 18/02/2011 – Montpellier (France)
Tableau croisé dynamique sous Excel (TCD).
Algorithmes sur les images dans Excel
Chapitre 2 : Filtrage Professeur. Mohammed Talibi Alaoui
SUJETS SPÉCIAUX EN INFORMATIQUE I
Le codage des nombres en informatique
Algorithme d’addition #1
INTÉGRER DES TEXTURES © 2010 Frederic DAVID. Le but de ce traitement est dintégrer des textures afin de vieillir artificiellement une image Image traitée.
Chapitre 3 : Détection des contours
La russie en couleur Collection extraordinaire de photographies couleurs de la Russie méridionale et centrale prisent entre 1909 et En ces années,
Introduire la dérivée en 1re S comme réponse à une question
Représentation numérique de l’information
Nicolas Holzschuch iMAGIS-GRAVIR/IMAG
Projet Traitement d'images en C
Design dun système de vision embarqué. Application:
Appariement de deux images
LES REHAUSSEMENTS D'IMAGES
Interprétation automatique
L ’acquisition d ’images
SCHNEIDER Laurent NOYER Vincent TEISSIE Alexis
MAP-6014 Concepts avancés en mathématiques et informatique appliquées
Application d’algorithmes d’extraction de la couleur et des textures à partir d’images aériennes dans le contexte de l’extraction de bâtiments pour supporter.
Exporter – Graver - Présenter  C'est grâce aux collections que "Exporter graver présenter" prend tout son sens  On peut y exporter un ensemble d'images,
TRAITEMENTS SEPIA/COULEURS © 2010 Frederic DAVID.
Programmation créative – Les vecteurs
Les réseaux de neurones à réservoir en traitement d’images
Institut de sciences et technologies Département d’informatique
L’étude du mouvement.
Mouvement d'un point A à un point B
Les surcharges d'opérateurs
TRAITEMENT D’IMAGE SIF-1033 Segmentation des images par détection de contours et d’arêtes u Détection des contours et arêtes u Dérivée première (gradient)
INF-1019 Programmation en temps réel
Introduction au Traitement d’image
Les réseaux de neurones à réservoir en traitement d’images
La couleur! Références: Sonka et al: section 2.4
MAP-6014 Concepts avancés en mathématiques et informatique appliquées
INF-1019 Programmation en temps réel
En route vers le déploiement . . .
DESIGN GRAPHIQUE A. DAAIF ENSET Université Hassan II
Images. Une image est constituée de « pixels »: il y en a ici 600  500 = Ce sont des petits carrés colorés de manière uniforme. Codage de l’image.
Traitement d’images 420-D78-SW A15 Semaine 02.
Traitement d’images Semaine 03 A15 Seuillage.
Scratch Partie 03 Version A15.
Partie II : Segmentation
PIF-6003 Sujets spéciaux en informatique I
Programmation créative – Les vecteurs
Traitement d’images Semaine 09 v.A15.
A la découverte d’Excel Certificat Informatique et Internet.
Traitement d’images Semaine 13 – Modèle correspondant.
Photoshop 6.0 Aurélie KNOSP Ye LU.
Dreamweaver le retour Avec Les Formulaires Les Calques
Traitement d’images Semaine 09 vA15.
Scénario Quatre hipsters entrent en collision un dans l'autre dans un ascenseur plein de personnes. En conséquence ils laissent tomber leurs téléphones.
Filtrage des images.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Traitement d’images 420-D78-SW A17 Semaine 02.
Traitement d’images Semaine 04 et 05 Version 2017.
Transcription de la présentation:

Semaine 06 vA14 Modèle colorimétrique Détection de contours Traitement d’images Semaine 06 vA14 Modèle colorimétrique Détection de contours

Plan de leçon Modèle colorimétrique RGB et HSV Détection de contours Conversion d’échelle Addition pondérée

Modèle colorimétrique Modèle mathématique abstrait de permettant de représenter les couleurs en tant que n-uplet de nombres RGB et HSV sont deux modèles de triplet utilisés en informatique CMYK est un quadruplet utilisés principalement en impression

RGB Représente trois canaux soient le rouge, le vert et le bleu Photographe : Sergei Mikhailovich Prokudin-Gorskii Année : 1911 RGB Représente trois canaux soient le rouge, le vert et le bleu Espace de couleurs additif, i.e. on additionne les canaux pour obtenir la couleur désirée Chaque canal a une valeur entre 0 et 255 00 à FF pour l’équivalent hexadécimal

HSV et HSL Hue, Saturation and Value or Lightness Teinte, saturation et valeur ou brillance Représentation cylindrique de l’espace RGB Son utilisation permet de mieux définir certains aspects des images Par exemple la peau humaine tend à avoir la même teinte

HSV et HSL La teinte est représentée sous une valeur de 0° et 360° Elle représente l’axe autour de l’axe central R  0°, G  120°, B  240° La valeur est représentée par la distance à partir de la base du cylindre 0 étant noir La saturation est représentée par la distance par rapport à l’axe central

HSV et HSL On observe souvent cette représentation dans les sélectionneurs de couleurs

Perle de culture On appelle cela une fonction affine en morceaux Conversion RGB  HSV Perle de culture On appelle cela une fonction affine en morceaux Étape 1 : Trouver le H M = max (R, G, B) Valeur maximum entre les trois canaux m = min (R, G, B) Les valeurs ont une valeur entre 0 et 1 (ex : 200/255) C = M – m C qui tient pour chroma (saturation) 𝐻 ′ = 𝑖𝑛𝑑é𝑓𝑖𝑛𝑖, 𝐶=0 𝐺 −𝐵 𝐶 𝑚𝑜𝑑 6, 𝑀=𝑅 𝐵 −𝑅 𝐶 +2, 𝑀=𝐺 𝑅 − 𝐺 𝐶 +4, 𝑀=𝐵 H = 60° × H’ Lorsque l’on indique une valeur entre 0 et 1 pour les canaux RGB, ce sont la proportion par exemple R = 0,5 pour 127/255

RGB  HSV Étape 2 : La valeur Étape 3 : La saturation V = M Étape 3 : La saturation 𝑆 𝐻𝑆𝑉 = 0, 𝐶=0 & 𝐶 𝑉 , 𝐶 ≠0 Source : Wikipédia

HSV  RGB 𝐶=𝑉 × 𝑆 𝐻𝑆𝑉 𝐻′= 𝐻 60° 𝑋=𝐶 1 − 𝐻 ′ 𝑚𝑜𝑑 2 −1 𝑋=𝐶 1 − 𝐻 ′ 𝑚𝑜𝑑 2 −1 𝑅 1 , 𝐺 1 , 𝐵 1 = 0, 0, 0 , 𝐻 𝑛𝑜𝑛 𝑑é𝑓𝑖𝑛𝑖 𝐶, 𝑋, 0 , 0 ≤ 𝐻 ′ <1 𝑋, 𝐶, 0 , 1 ≤ 𝐻 ′ <2 0, 𝐶, 𝑋 , 2 ≤ 𝐻 ′ <3 0, 𝑋, 𝐶 , 3 ≤ 𝐻 ′ <4 𝑋, 0, 𝐶 , 4 ≤ 𝐻 ′ <5 𝐶, 0, 𝑋 , 5 ≤ 𝐻 ′ <6 𝑚=𝑉 −𝐶 𝑅, 𝐺, 𝐵 =( 𝑅 1 + 𝑚, 𝐺 1 + 𝑚, 𝐵 1 + 𝑚)

Utilité et motivation du HSV À sa création, la motivation principale était que le RGB n’est pas intuitif lorsqu’il s’agit de modifier les teintes d’une couleur Un problème du RGB est l’effet de la luminescence. Par exemple, un éclairage intense sur un objet peut changer de façon radicale les valeurs RGB. Cet effet est diminué en HSV.

Utilité et motivation du HSV Utilisé en traitement d’images pour faire de la détection de caractéristiques ou encore de la segmentation Exemple : Détection de la peau La couleur de la peau varie d’une personne à une autre, mais elle est similaire dans les teintes

OpenCV : cvtColor La librairie offre plusieurs fonctionnalités pour manipuler les canaux La procédure cvtColor permet de convertir une image d’un espace vers un autre Plusieurs fonctions doivent utiliser des images en niveau de gris pour fonctionner Syntaxe cvtColor (imgSrc, imgDst, int code); Exemple cvtColor (frame, imgBW, CV_BGR2GRAY);

OpenCV : cvtColor L’argument code représente un type de conversion Il y a plusieurs constantes prédéfinies CV_BGR2GRAY : BGR  Niveau de gris CV_BGR2HSV CV_GRAY2BGR Si l’image destination n’est pas instanciée, la méthode va le faire automatiquement

OpenCV : Mat.create La méthode create de la classe Mat permet d’instancier une image avec des caractéristiques données Syntaxe monImg.create(rangées, colonnes, type) Type  CV_nbBitnbCan nbBit  8U, 16S, 16U, 32U, … nbCan  Nombre de canaux, C1, C2, C3, etc. Constantes déjà définies. Ex : CV_8UC3

OpenCV : mixChannels La méthode SyntaxemixChannels (p.142) permet de manipuler les canaux d’une image source vers une/des image destination mixChannels (&imgSrc, int nbMatSrc, *imgDst, int nbMatDst, int *deA, int nbPairDeA) &imgSrc : Adresse de l’image ou du tableau d’images nbMatSrc : nombre d’images source *imgDst : Tableau d’images nbMatDst : nombre d’images destination *deA : Tableau de pairs d’entier indiquant les canaux de destination des canaux source. Ex : 1 vers 3, 2 vers 0… nbPairDeA : Entier indiquant le nombre de pairs

OpenCV : mixChannels Exemple de conversion d’une image RGBA vers une image BGR

Traitement d’images Détection de contours

Détection de contour La détection de contour (edge detection) est un outil fondamental en traitement d’images Elle sert entre autre en extraction et détection de caractéristiques La détection de contour consiste, généralement, à mettre de l’emphase sur le contraste Le contraste est la différence d’intensité entre les pixels

Détection de contour Mathématiquement, on fait la dérivée de la valeur des pixels pour détecter les pentes La dérivée permet de mesurer le taux de variation

Détection de contour

Détection de contour

Détection de contour

Détection de contour

Détection de contour

Détection de contour

Résultat

Détection de contour En traitement d’images ont simule la dérivée On nommera cette dérivée le gradient Le gradient représente le différentiel vers le point où il y a le plus de différence entre deux valeurs Dans ce cas, l’algorithme utilisé sera celui de Sobel

Détection de contour : OpenCV Les valeurs entre deux pixels varient dans la plage suivante [-255, 255] Lorsque la pente est négative des valeurs négatives peuvent apparaître Pour représenter les valeurs, il faut appliquer la fonction absolue sur l’image De plus, les valeurs sont emmagasinées en 16S ainsi il faudra ramener les valeurs à l’échelle 8U

Détection de contour : OpenCV Le filtre de Sobel s’utilise comme suit Sobel(src, dst, profondeur, ordreX, ordreY, dimNoyau) Src : Image source en 8U1C dst : Image de destination Profondeur : Profondeur de l’image de destination. Exemple : CV_16S OrdreX : Nombre de fois que l’on dérive en X OrdreY : Idem, mais en Y dimNoyau : Dimension du filtre de convolution

Détection de contour : OpenCV Pour visualiser le résultat après avoir passé le filtre de Sobel, il faudra ramener l’image en valeur absolue et à la bonne échelle (16S  8U) OpenCV offre la méthode convertScaleAbs qui convertit l’image source vers une image visualisable convertScaleAbs (imgSrc, imgDst);

Détection de contour : OpenCV Nous allons exécuter le gradient en X et ensuite en Y vers deux images séparées Après cette étape, nous additionnerons de façon pondérée ces deux images à 50% chaque

Détection de contour : OpenCV La méthode addWeighted permet d’effectuer l’addition pondérée addWeighted (img1, poids1, img2, poids2, valeurAdd, imgDst) Img1 et 2 : Image à additionner poids1 et poids2 : Poids de chaque image valeurAdd : valeur scalaire que l’on peut additionner au résultat imgDst : Somme des deux images et valeurAdd

Espace colorométrique Exercices Faites une application qui charge une image prise en argument et qui affiche celle-ci dans deux fenêtres soit une affichant l’original et la seconde une version en niveau de gris Faites une application qui charge une image prise en argument et qui affiche celle-ci dans 5 fenêtres soit l’image originale, une version HSV et trois versions pour chacun des canaux HSV.

Exercices

Détection de contours Exercice Voici l’algo générique que vous devez coder Lissage Conversion de l’image vers gris Sobel X ordre 1, Y ordre 0 Conversion d’échelle Sobel Y ordre 1, X ordre 0 Addition pondérée (50/50)

Arguments dans VS2010