Canny

Canny

Algorithme de Canny

L'algorithme de Canny (1986) est utilisé en traitement ou en analyse d'image pour la détection des contours. L'auteur l'a conçu pour être optimal suivant trois critères clairement explicités :

  1. bonne détection : faible taux d'erreur dans la signalisation des contours,
  2. bonne localisation : minimisation des distances entre les contours détectés et les contours réels,
  3. clarté de la réponse : une seule réponse par contour et pas de faux positifs

Sommaire

Mise en œuvre

Réduction du bruit

La première étape est de réduire le bruit de l'image originale avant d'en détecter les contours. Ceci permet d'éliminer les pixels isolés qui pourraient induire de fortes réponses lors du calcul du gradient, conduisant ainsi à de faux positifs.

Un filtrage gaussien 2D est utilisé (voir Lissage de l'image), dont voici l'opérateur de convolution :

G(x,y)=\frac{1}{2\pi\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}}

et un exemple de masque 5×5 discret avec σ=1,4 :

h=\frac{1}{159}\begin{bmatrix}
2 & 4 & 5 & 4 & 2\\
4 & 9 & 12 & 9 & 4\\
5 & 12 & 15 & 12 & 5\\
4 & 9 & 12 & 9 & 4\\
2 & 4 & 5 & 4 & 2
\end{bmatrix}

Usuellement, un filtre est de taille plus réduite que l'image filtrée. Plus le masque est grand, moins le détecteur est sensible au bruit et plus l'erreur de localisation grandit.

Gradient d'intensité

Après le filtrage, l'étape suivante est d'appliquer un gradient qui retourne l'intensité des contours. L'opérateur utilisé permet de calculer le gradient suivant les direction X et Y, il est composé d'une paire de deux masques de convolution, un de dimmension 3×1 et l'autre 1×3:

G_x =
\begin{bmatrix}
-1 & 0 & 1
\end{bmatrix}\qquad;\qquad
G_y =
\begin{bmatrix}
1 \\
0 \\
-1
\end{bmatrix}

La valeur du gradient en un point est approximée par la formule :

| G | = | Gx | + | Gy |

Direction des contours

Les orientations des contours sont déterminés par la formule :

\theta = arctan(\frac{G_x}{G_y})

Nous obtenons finalement une carte des gradients d'intensité en chaque point de l'image accompagnée des directions des contours.

Suppression des non-maxima

La carte des gradients obtenue précédemment fournit une intensité en chaque point de l'image. Une forte intensité indique une forte probabilité de présence d'un contour. Toutefois, cette intensité ne suffit pas à décider si un point correspond à un contour ou non. Seuls les points correspondant à des maxima locaux sont considérés comme correspondant à des contours, et sont conservés pour la prochaine étape de la détection.

Un maximum local est présent sur les extrema du gradient, c'est-à-dire là où sa dérivée s'annule.

Seuillage des contours

La différenciation des contours sur la carte générée se fait par seuillage à hysteresis.

Cela nécessite deux seuils, un haut et un bas; qui seront comparés à l'intensité du gradient de chaque point. Le critère de décision est le suivant. Pour chaque point, si l'intensité de son gradient est:

  • Inférieur au seuil bas, le point est rejeté;
  • Supérieur au seuil haut, le point est accepté comme formant un contour;
  • Entre le seuil bas et le seuil haut, le point est accepté s'il est connecté à un point déjà accepté.

Une fois ceci réalisé, l'image obtenue est binaire avec d'un côté les pixels appartenant aux contours et les autres.

Paramètres

Les deux paramètres principaux déterminant le temps de calcul et l'acuité de l'algorithme sont la taille du filtre gaussien et les deux seuils.

  • Taille du filtre: le filtre utilisé lors de la réduction du bruit a une influence directe sur le comportement de l'algorithme. Un filtre de petite taille produit un effet de flou moins prononcé, ce qui permet la détection de petites lignes bien marquées. Un filtre de taille plus grande produit un effet de flou plus important, ce qui permet de détecter des contours moins nets, par exemple celui d'un arc-en-ciel.
  • Seuils: l'utilisation de deux seuils au lieu d'un améliore la flexibilité mais certains problèmes propres au seuillage demeurent. Ainsi, un seuil trop bas peut conduire à la détection de faux positifs. Inversement, un seuil trop haut peut empêcher la détection de contours peu marqués mais représentant de l'information utile.

Il n'existe pas actuellement de méthode générique pour déterminer des seuils produisant des résultats satisfaisants sur tous les types d'images.

Une démonstration en ligne (anglais) peut être utilisée pour étudier l'influence des paramètres: http://matlabserver.cs.rug.nl

Références

  • Canny, J., A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8:679-714 (1986).

Liens externes

  • Portail de la photographie Portail de la photographie


  • (en) Cet article est partiellement ou en totalité issu d’une traduction de l’article de Wikipédia en anglais intitulé « Canny ».
Ce document provient de « Algorithme de Canny ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Canny de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Canny — may refer to:* Canny (attribute), a pleasant attribute * Canny edge detector, an operator which uses a multi stage algorithm to detect a wide range of edges in images * Paddy Canny (1919 2008), Irish fiddlercanny systems [http://www.canny.in] …   Wikipedia

  • canny — [kan′ē] adj. cannier, canniest [< CAN1 + Y3] 1. careful and shrewd in one s actions and dealings; clever and cautious 2. careful with money; thrifty 3. Scot. careful in action; gentle; easy; quiet …   English World dictionary

  • Canny — bezeichnet: den Canny Algorithmus zur Kantendetektion Canny sur Matz, eine Gemeinde im französischen Département Oise Canny sur Thérain, eine Gemeinde im französischen Département Oise Diese Seite ist eine Begriffsklärung …   Deutsch Wikipedia

  • Canny — Can ny, Cannei Can nei, a. [Cf. Icel. kenn skilled, learned, or E. canny. Cf. {Kenn}.] [North of Eng. & Scot.] 1. Artful; cunning; shrewd; wary. [1913 Webster] 2. Skillful; knowing; capable. Sir W. Scott. [1913 Webster] 3. Cautious; prudent; safe …   The Collaborative International Dictionary of English

  • canny — index artful, deft, machiavellian, perspicacious, politic, practiced, prudent, subtle (insidious) …   Law dictionary

  • canny — 1630s, Scottish and northern England formation from CAN (Cf. can) (v.) in its sense of know how to; lit. knowing, hence, careful. Often used superciliously of Scots by their southern neighbors, implying thrift and an eye to the main chance …   Etymology dictionary

  • canny — [adj] clever, artful able, acute, adroit, astute, cagey, careful, cautious, circumspect, cunning, dexterous, discreet, foxy*, frugal, having fancy footwork*, hep*, ingenious, intelligent, judicious, knowing, nimble witted, perspicacious, prudent …   New thesaurus

  • canny — ► ADJECTIVE (cannier, canniest) 1) shrewd, especially in financial or business matters. 2) N. English & Scottish pleasant; nice. DERIVATIVES cannily adverb canniness noun. ORIGIN from …   English terms dictionary

  • canny — I Scottish Vernacular Dictionary Shrewd cautious or crafty II Cleveland Dialect List knowing, skilful, clever; prudent, cautious, handy; well suited, possessing evident or admitted advantages, excellent: a canny chap wi horses , a canny… …   English dialects glossary

  • canny — [[t]kæ̱ni[/t]] cannier, canniest ADJ GRADED: usu ADJ n A canny person is clever and able to think quickly. You can also describe a person s behaviour as canny. He was far too canny to risk giving himself away... A canny investor would need to… …   English dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”