Filtre de CannyLe filtre de Canny (ou détecteur de Canny) est utilisé en traitement d'images pour la détection des contours. L'algorithme a été conçu par John Canny en 1986 pour être optimal suivant trois critères clairement explicités :
Développement du filtre de CannyMise en œuvreRéduction du bruitLa 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 l'article Lissage d'images), dont voici l'opérateur de convolution : et un exemple de masque 5 × 5 discret avec σ = 1,4 : 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 renvoie l'intensité des contours. L'opérateur utilisé permet de calculer le gradient suivant les directions X et Y, il est composé de deux masques de convolution, un de dimension 3 × 1 et l'autre 1 × 3 : La valeur du gradient en un point est approchée par la formule : et la valeur exacte est : Direction des contoursLes orientations des contours sont déterminées par la formule : Nous obtenons finalement une carte des gradients d'intensité en chaque point de l'image accompagnée des directions des contours. Suppression des non-maximaLa 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 selon les lignes de champs du gradient s'annule. Seuillage des contoursLa différenciation des contours sur la carte générée se fait par seuillage à hystérésis. 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 :
Une fois ceci réalisé, l'image obtenue est binaire avec d'un côté les pixels appartenant aux contours et les autres. ParamètresLes 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.
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. Toutefois, il existe des méthodes statistiques permettant d'obtenir automatiquement une valeur du seuil haut convenable (Ch Ho) , la valeur du seuil bas étant un pourcentage du seuil haut. Bibliographie
Références
Voir aussiArticles connexesLiens externes
|
Portal di Ensiklopedia Dunia