[PDF] Détection des contours dune image : le filtre de Canny


Détection des contours dune image : le filtre de Canny


Previous PDF Next PDF



Détection de contours Détection de contours

La seconde étape va permettre d'isoler les contours du reste de l'image à partir d'un seuillage judicieux. Plusieurs méthodes permettent de déterminer le 



Projet: “Traitement dimages détection de contours” Projet: “Traitement dimages détection de contours”

Détecter les contours d'une image constitue une étape préliminaire à de nombreuses applica- tions pratiques en traitement d'images : analyse d'images médicales 



Traitement dimage - Détection de contours Introduction : Quand une

Pour cela les photos réalisées par ses capteurs sont traitées par des algorithmes qui permettent de détecter les contours des objets qu'elle rencontre. L' 



Chapitre 2 - La détection des contours dans les images

cela exprime qu'une image de contours est obtenue par filtrage de l'image par la dérivée seconde d'un filtre passe- bas puis détection des zéros de la fonction 



Techniques visuelles pour la détection et le suivi dobjets 2D

13 juin 2016 Le LSD est utilisé pour détecter les contours formant des droites dans les images. L'algorithme commence par estimer l'angle du gradient à ...



Système de Reconnaissance Automatique des Plaques

Mots clés : détection de contour Canny



Ce document est le fruit dun long travail approuvé par le jury de

li est destiné à des images comportant quelques objets posés sur un fond. Cet algorithme peut être utilisé pour la détection de contours et pour l'extraction de 



Algorithmes pour le traitement dimages - 2

algorithme en Python et à ajuster les paramètres du filtre pour obte- nir tel ou tel résultat



detection de contours dimages couleur par hypergraphe de

Résumé. Dans ce papier nous introduisons un algorithme de détection de contours vectoriel. Ce dernier comporte deux étapes. Dans un premier temps





Ce document est le fruit dun long travail approuvé par le jury de

li est destiné à des images comportant quelques objets posés sur un fond. Cet algorithme peut être utilisé pour la détection de contours et pour l'extraction de 



detection de contours dimages couleur par hypergraphe de

cale sur hypergraphe de voisinage. Dans cet article nous présentons une extension de l'algorithme de détection de contour appliquée aux images couleur.



Détection des contours dune image : le filtre de Canny

8 mai 2016 L'exécution des algorithmes prend un temps non négligeable et il était important d'utiliser une petite image pour le début des opérations : pas ...



Projet: “Traitement dimages détection de contours”

Projet: “Traitement d'images détection de contours”. Février 2020. Détecter les contours d'une image constitue une étape préliminaire à de nombreuses 



Étude dun détecteur de contours basé sur la logique floue

6 oct. 2010 Passage en revue et comparaison des algorithmes existants . ... 5.2 : Graphe ROC de la détection des contours sur 5 images (Sobel).



Traitement dimage - Détection de contours Introduction : Quand une

fonctionnement d'un de ces algorithmes de détection de contours. Qu'est-ce qu'un contour ? Question 1 : Repérer et sélectionner les pixels appartenant au 



Application de la détection de contour en ondelettes au marquage d

l'image ce qui n'est pas le cas d'un ajout dans la texture. Dans la partie suivante



Détection de contours

Invariant aux rotations de l'image. Le laplacien est souvent utilisé en amélioration d'images pour accentuer l'effet de contour : ¡ ¢ ¤§ 



Contours et régions dans les images

La notion de bonne segmentation/bonne détection de contours dépend Algorithmes de croissance de région ou de croissance de bords.



Segmentation d'image par détection de contours et algorithme "ligne de

Une première idée pour trouver leur localisation consiste à seuiller la norme du gradient c’est à dire à considérer que les pixels qui font partie des contours de l’image sont ceux pour lesquelslanormedugradientestplusgrandequesoùs>0 estunseuil?xéarbitrairement Formellementonpeutécrire: (mn) estsuruncontourdel’image ??



La detection´ des contours dans les images - Telecom Paris

La detection´ des contours dans les images Chapitre r´edig e´ par Henri MAˆITRE La detection´ de contours dans les images a deb´ ute´ de fac¸on extrˆemement empirique par des op´erateurs lo-caux qui soit estimaient un gradient soit convoluaient l’image par des masques caract´eristiques des contours [Haralick et Shapiro 1985]



ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC PROJET D

7 1 1 Formulation Puisque les contours actifs appartiennent à la famille des courbes continues et dérivables on peut toujours les modéliser par une forme paramétrique normalisée comme: [ ] s v(s) [x(s)y(s)]T 01 2 = ? = ? a a ( 1 1 ) où [ ]T indique le transposé du vecteur



Searches related to algorithme de detection de contour d+une image PDF

Exercice 1 : Détection de contour (30 minutes) On veut approximer le contour d’un objet dans une image par un contour actif Nous savons que la forme de l’objet à détecter est proche d’un triangle Aussi nous proposons de détecter le contour de cet objet par un contour actif de type « snake » défini par trois points x1 x2 et x3

Comment faire la segmentation d'une image par détection de contour ?

D'un point de vue mathématique on peut considérer que l'image est une fonction de R*R vers R : on prend un couple de réels (les coordonnées) auquel un autre réel est associé (un niveau de gris). Pour réaliser la segmentation d'une image par détection de contour, la première étape est de représenter les variations de valeur dans l'image.

Comment représenter les contours d'une image ?

La première est de représenter l'image en fonction de l'intensité de ses variations, on met ainsi en valeur les fortes variations de valeur dans l'image, donc les potentiels contours. La deuxième est de regrouper les zones dans cette nouvelle image par homogénéité, on détecte ainsi des régions dans l'image.

Comment définir l'algorithme d'une image ?

Deux étapes principales constituent donc l'algorithme. La première est de représenter l'image en fonction de l'intensité de ses variations, on met ainsi en valeur les fortes variations de valeur dans l'image, donc les potentiels contours.

Comment prolonger une image ?

Prolonger l'image. Il existe de nouveaux plusieurs méthodes, comme se référer à la valeur du pixel dans l'image le plus proche lorsque le pixel voulu est en dehors de l'image, ou répéter l'image lorsque la valeur voulue est hors de l'image. La manière de prolonger l'image dépend de la manière dont on va utiliser le résultat.

Projet noté

Détection des contours d"une image : le

filtre de Cannycolinleverger [at] gmail [dot] com ColinLeverger- ENSSAT Informatique, Multimédia et Réseaux

Promotion 2017Destinataire :Benoit V OZEL

8 mai 2016

Analyse & Traitement d"Images Projet noté

1

Intr oduction

Dans le cadre de la formation Informatique, Multimédia et Réseaux dispensé à l"ENSSAT de

Lannion, nous avons étudié le traitement d"image en seconde année. Cette matière, qui s"inscrit

dans la composante "multimédia» de notre cursus, nous a permis de comprendre les concepts clés

de la manipulation d"images par programmation. Nous avons notamment travaillé à la création de

?ltres gaussiens, à la création de matrices de gradient, etc.

Pour pratiquer et appréhender au mieux les sujets évoqués en CM, nous avons e?ectué un TP

noté. Il s"agissait d"écrire avec Scilab un programme permettant de trouver et d"isoler les contours

des objets présents sur une image, de manière automatique. J"ai choisi d"utiliser un grand classique

du traitement d"image, à savoir Lena, qui n"est autre qu"une pinup des années 70 qui se trouvait au

bon endroit au bon moment (à savoir, dans les mains d"un chercheur dans le domaine de l"imagerie numérique lorsqu"il cherchait une image pour ses traitements).

Ce compte rendu présente la démarche suivie lors de la réalisation et du codage de ce TP. La

structure du sujet sera suivie, car nous allons expliquer les méthodes et fonctions dans l"ordre chro-

nologique de codage. Les fonctions et méthodes codées seront en e?et très souvent réutilisées pour

la suite du TP.

Le code associé à ce compte rendu pourra être trouvé dans l"archive jointe à ce rapport. Très

peu de code sera directement exposé dans le rapport, mais les structures complexes et les choix d"implémentation des algorithmes y seront clairement explicités. 2

Préliminair es

A?n de travailler avec Scilab, quelques étapes préliminaires ont étés e?ectuées. Tout d"abord, le choix de l"image était important pour pouvoir développer rapidement les pre-

mières fonctions. L"exécution des algorithmes prend un temps non négligeable, et il était important

d"utiliser une petite image pour le début des opérations : pas plus de 64x64 pixels. Une image de

64x64 pixels représente par exemple une matrice de 64 par 64. Évidemment, plus l"image est grande

(plus le nombre de pixels est important), plus la taille de la matrice à traiter est grande, et plus le

traitement prend du temps.

La seconde chose à faire avant de se lancer dans le codage était l"installation du module Scilab

nécessaire pour utiliser les fonctions basiques de chargement d"image. Il s"agit en e?et de pouvoir

transformer une image en matrice de valeurs, situées entre 0 et 255 (niveaux de gris). L"installation

du module dans Scilab sur Mac OS est loin d"être triviale... L"utilisation du logiciel sous Windows

est préférée. 3

Pr emièreétap e: le r ehaussementde Canny

La première étape de l"algorithme peut se décomposer en deux sous parties. Il s"agit tout d"abord

de lisser l"image, a?n d"en retirer les impuretés, et de calculer dans un second temps la norme du

gradient et l"angle de la normale au gradient pour chaque pixel de l"image lissée. 1

Analyse & Traitement d"Images Projet noté

3.1

Le ?ltrage de l"image

La présence d"impuretés sur une image est courante, et même très probable. Un exemple d"impu-

retés pourra être vu en ?gure 1 en page 2 Phi ]. Dans ce cas précis, il d"agit du bruit blanc gaussien, qui provoque une altération nettement visible de l"image.

On sent bien que la détection de contours demandée pourrait potentiellement être faussée par

le bruit présent sur l"image : il est donc important de ?ltrer l"image, a?n de supprimer le bruit et de

pouvoir e?ectuer les traitements en limitant le biais.Figure1 - Le bruit blanc gaussien sur l"image Lena

Nous allons donc "lisser» l"image, en lui appliquant un ?ltre gaussien. Le ?ltre est lui même

une matrice, et il faut l"appliquer en e?ectuant des produits de convolution entre l"image et le ?ltre.

Typiquement, une boucle va parcourir toutes les valeurs de la matrice image de base et e?ectuer un traitement pour chacune de ces valeurs. Concernant l"application du ?ltre, le principe est le suivant : 1.

Il faut d"ab ordsup erposerle ?ltr eet l"image ,

2. Multiplier par les facteurs présents dans la matrice de ?ltrage chaque pixel de l"image par superposition, 3.

Sommer les résultats de chaque multiplication,

4.

Normaliser le résultat,

5. A?e ctercette somme normalisé eau pixel considéré .

Une nouvelle matrice de taille égale à l"image sera initialisée et remplie au ?l du traitement.

Le traitement des valeurs au bord de l"image (les pixels qui délimitent l"image) est une problé-

matique qui se pose : en e?et, positionner le masque et faire un produit de convolution sur des

valeurs non existantes est impossible! Pour pallier ce problème, plusieurs méthodes plus ou moins

complexes existent, par exemple : A ugmenterla taille de l"image en créant des b ordsarti?ciels à valeur égale à 0. Fair eune ré?e xionet utiliser les b ordsopp osésquand né cessaires.

Le choix s"est porté sur la première solution évoquée ci-dessus lors de ce TP. Il s"est alors agi

d"augmenter la taille l"image d"une demi-taille de ?ltre de chaque côté. Si le ?ltre fait une taille

de 3x3, augmenter la taille de l"image de 1 à gauche et à droite, s"il fait 6x6 de 2 de chaque côté,

etc. Notez que cette méthode peut ajouter un e?et de bord, les valeurs ajoutées "0» étant en e?et

potentiellement fausses... Pour un exemple d"agrandissement de la matrice, voir ?gure 2 en page 3 2

Analyse & Traitement d"Images Projet noté

Figure2 - Agrandissement de l"image pour un ?ltre de taille 3x3. Première matrice : matrice de

base, deuxième matrice : matrice temporaire faite de 0, 3e matrice : inclusion de la matrice de base

dans la matrice temporaire. Pour appliquer le ?ltre, il faudra donc commencer le traitement à l"indice(XtailleDuDemiFiltre ,

YtailleDuDemiFiltre)de la matrice image.

Un schéma de l"application de ce ?ltre pourra être trouvé en ?gure 3 en page 3 VOZ16 ].Figure3 - Application du ?ltre par produit de convolution

Les étapes suivies si on suit la ?gure

3 ser ontdonc ( applicationpratique de l"algorithme) : 1. P lacerle pixel r ougeau début de notr eimage pré cédemmentagrandie . 3

Analyse & Traitement d"Images Projet noté

2. Fair eles conv olutionsen faisant la somme de la multiplication par sup erpositionles valeurs des deux matrices (ici, on va avoir 0 * 1 + 0 * 2 + ... + 4 * 4 + 1 * 2 + ... + 3 * 1) 3. Normaliser le résultat en le multipliant par l"inv ersede la somme de toutes ses valeurs (ici, 1 / [1 + 2 + 1 + ... + 1] = 1 / 16) 4. A?e cterla nouv ellevaleur au pixel r ougedans un nouv eautableau. 5.

Déplacer le pixel r ougesur l"image

1en suivant les axes x et y pour traiter chacun des pixels.

La taille du ?ltre que nous appliquons sur notre image peut être plus ou moins grande. Évidem-

ment, plus elle est grande plus le traitement est coûteux et plus il prend du temps. On note aussi

que plus la taille du ?ltre gaussien est importante, plus l"image est ?outée par le traitement. Deux

?ltres ont étés utilisés pendant les manipulations (voir ?gure 4 en page 4 ). Le premier ?ltre va lisser l"image convenablement, mais moins e?cacement que le second.

On note la présence de coe?cients devant les ?ltres : ceux-ci représentent la normalisation des

valeurs. On va en e?et diviser chaque pixel par la somme totale des éléments présents dans le ?ltre.Figure4 - Les ?ltres utilisés pour expérimenter

La fonction d"application du ?ltre sera utilisée plusieurs fois le long de ce TP : c"est pour ça

qu"elle a été codée de la façon la plus générique possible. Un exemple d"image lissée pourra être trouvé en ?gure 5 en page 5 3.2

Calcul de gradients et de normes

A?n d"e?ectuer des comparaisons entre pixels voisins, il faut désormais e?ectuer des calculs

mathématiques, concernant la norme et la normale au gradient de chaque pixel de l"image ?ltrée.

Les formules à appliquer pour chaque pixel sont les suivantes : e s(i;j) =qJ

2x(i;j) +J2y(i;j)

e o(i;j) =arctan(JxJ y) Avec iciJxqui représente les gradients en x etJyles gradients en y. Pour calculerJxetJy, il

s"agit simplement de réutiliser la fonction d"application d"un masque codée précédemment, avec les

matrices du gradient (voir ?gure 6 en page 5 ).1. L"image considérée sera toujours l"image de départ. 4

Analyse & Traitement d"Images Projet noté

Figure5 - Lena avant et après lissage gaussien

Une fois les masques appliqués et les matricesJxetJyprête à être exploitées, il su?t d"appli-

quer les formules mathématiques pour obtenir les valeurs pour chaque pixel (en utilisant comme d"habitude une double boucle pour parcourir toutes les valeurs de la matrice image). La fonction qui

e?ectue ce traitement ("gradientNorm» dans le code) retourne donc deux valeurs,eseteo.Figure6 - Masques à appliquer pour obtenir les gradients

Une subtilité pourra être soulignée : les valeurs deeoont en fait étés normalisées. Le but est de

renvoyer un angle indiquant la direction approximée du gradient, a?n de pouvoir trouver plus tard les voisins des pixels du contour (s"ils existent). Pour approximer, nous avons suivi le schéma 7 en page 6 . Typiquement, si une valeur est située dans la zone dessinée en rouge (une valeur telle que

12 degrés par exemple) on pourra l"approximer à 0 degré pour simpli?er.

Si une valeur est plus grande que 135 + 22,5 = 157,5 degrés, nous avons choisi de lui enlever

180 degrés a?n de recommencer le traitement dans cette même fonction de normalisation (appel

récursif). Même principe, si un angle est inférieur à -22,5, on lui ajoute 180 degrés et on recommence

le traitement. 4 Deuxième étap e: Suppr essiondes non-maximums La suppression des non-maximums est une étape assez rapide. Il s"agit de supprimer de la norme de leur gradient. Les étapes de cette suppression pour chaque pixel sont les suivantes : 5

Analyse & Traitement d"Images Projet noté

Figure7 - Méthode de normalisation de l"angle du gradient 1. T rouverles v oisinsdu pixel en suivant l"angle du gradient. Exemple : si l"angle est de 90 degrés, les pixels voisins seront le pixel juste au-dessus et juste en dessous du pixel courant. Ces pixels auront les coordonnées(x,y-1)et(x,y+1). 2. V éri?erla valeur des v oisins: si la valeur de l"un des v oisinsest plus grande que la valeur du pixel courant, supprimer le pixel courant (lui a?ecter la valeur 0), sinon le garder à sa valeur d"origine.

On note que la problématique du traitement des bords est aussi à considérer lors de cette étape.

Ici, le choix a été fait de développer une fonction générique pour récupérer les valeurs d"un tableau

à partir d"indices donnés, si elles existent. Si elles n"existent pas, la fonction retourne simplement

une valeur égale à 0. La fonction codée pour ce faire s"appellera "getMatValueIfExists».

A?n de rendre générique la récupération des voisins d"un pixel, une fonction a également été

codée; cette fonction sera par ailleurs réutilisée plusieurs fois le long du TP. Cette fonction a pour

en paramètre. 5 T roisièmeétap e: seuillage par hystérésis

Il s"agit ici d"a?ner le ?ltrage des contours faibles et de garder uniquement les contours signi?catifs,

en utilisant deux seuils. Les seuils que nous allons considérer sont le seuil haut (Th) et le seuil bas

(Tl). Typiquement, si la valeur d"un contour est supérieure au seuil haut, nous allons naturellement le même principe supprimer le pixel correspondant. La partie complexe de l"algorithme est lorsqu"un

pixel à une valeur située entreTletTh. Dans ce cas, il s"agit de véri?er si le pixel considéré est

6

Analyse & Traitement d"Images Projet noté

connecté à un pixel de contour en regardant les voisins perpendiculaires à son gradient.

Statistiquement, il est prouvé que les contours se trouvent généralement orientés à 90 degrés de

l"angle de gradient du pixel considéré. Voir ?gure 8 en page 7 ( env ert,les v oisinsp otentiels).Figure8 - Détection des contours par hystérésis

à une valeur de 40. Le seuil bas est quant à lui calculé à partir du seuil haut(Tl= 1=2Th). Lors

de cette étape, un pixel faible sera mis à 0 et un pixel fort à 255; 255 représente en e?et la couleur

blanche en niveaux de gris.

L"algorithme de l"hystérésis, qui s"appellera "hysteresisThreshold» dans le code, s"e?ectuera en

deux passes : 1.quotesdbs_dbs4.pdfusesText_8
[PDF] détecteur de harris matlab

[PDF] detection des contours d'une image

[PDF] détecteur sift

[PDF] mise en correspondance de points d intérêt

[PDF] poi garmin camping car

[PDF] garmin poi loader

[PDF] telecharger poi garmin gratuit

[PDF] mise jour radar gps mappy

[PDF] poi loader garmin radar gratuit

[PDF] telecharger aire camping car gps mappy

[PDF] poi garmin radar gratuit

[PDF] livre interpretation des reves en islam gratuit pdf

[PDF] poi kml

[PDF] l attitude de l homme face aux progrès scientifiques et techniques

[PDF] poésie sur la ponctuation