AccueilđŸ‡«đŸ‡·Chercher

Filtre de Sobel

Le filtre de Sobel est un opérateur utilisé en traitement d'image pour la détection de contours. Il s'agit d'un des opérateurs les plus simples qui donne toutefois des résultats corrects.

Exemple de détection de contours avec opérateurs Sobel, ici : G=abs(Gx)+abs(Gy).

Description simplifiée

Pour faire simple, l'opérateur calcule le gradient de l'intensité de chaque pixel. Ceci indique la direction de la plus forte variation du clair au sombre, ainsi que le taux de changement dans cette direction. On connaßt alors les points de changement soudain de luminosité, correspondant probablement à des bords, ainsi que l'orientation de ces bords.

En termes mathématiques, le gradient d'une fonction de deux variables (ici l'intensité en fonction des coordonnées de l'image) est un vecteur de dimension 2 dont les coordonnées sont les dérivées selon les directions horizontale et verticale. En chaque point, le gradient pointe dans la direction du plus fort changement d'intensité, et sa longueur représente le taux de variation dans cette direction. Le gradient dans une zone d'intensité constante est donc nul. Au niveau d'un contour, le gradient traverse le contour, des intensités les plus sombres aux intensités les plus claires.

Formulation

L'opĂ©rateur utilise des matrices de convolution. La matrice de taille 3×3 subit une convolution avec l'image pour calculer des approximations des dĂ©rivĂ©es horizontale et verticale. Soit l'image source, et deux images qui en chaque point contiennent des approximations respectivement de la dĂ©rivĂ©e horizontale et verticale de chaque point. Ces images sont calculĂ©es comme suit:

En chaque point, les approximations des gradients horizontaux et verticaux peuvent ĂȘtre combinĂ©es comme suit pour obtenir une approximation de la norme du gradient :

On peut Ă©galement calculer la direction du gradient comme suit :

oĂč, par exemple, vaut 0 pour un contour vertical plus foncĂ© Ă  gauche (voir atan2).

Précisions

Puisque l'intensitĂ© d'une image numĂ©rique est discrĂšte, les dĂ©rivĂ©es de cette fonction ne peuvent pas ĂȘtre dĂ©finies si ce n'est sous une hypothĂšse de continuitĂ© de la fonction intensitĂ© continue qui a Ă©tĂ© Ă©chantillonnĂ©e. En pratique on peut calculer des approximations plus ou moins fidĂšles du gradient en chaque point.

Le filtre de Sobel calcule une approximation assez inexacte du gradient d'intensitĂ©, mais cela suffit en pratique dans beaucoup de cas. En effet, il n'utilise qu'un voisinage (gĂ©nĂ©ralement de taille 3×3) autour de chaque point pour calculer le gradient, et les poids utilisĂ©s pour le calcul du gradient sont entiers.

Détails d'implémentation

Du fait de sa simplicitĂ©, le filtre de Sobel peut ĂȘtre aisĂ©ment implĂ©mentĂ© de maniĂšre logicielle ou mĂȘme matĂ©rielle : seulement huit points autour du point considĂ©rĂ© sont nĂ©cessaires pour calculer le gradient. Ce calcul utilise simplement des calculs sur les entiers. De plus, les filtres horizontaux et verticaux sont sĂ©parables :

et les deux dĂ©rivĂ©es et peuvent ĂȘtre calculĂ©es comme suit :

La sĂ©parabilitĂ© peut ĂȘtre mise Ă  profit dans certains types d'implĂ©mentation pour permettre moins d'opĂ©rations lors du calcul.

Plus fondamentalement, en divisant par quatre, ces formules montrent que la dĂ©rivation dans une direction est associĂ©e Ă  un lissage triangulaire dans l'autre direction destinĂ© Ă  Ă©liminer les « faux contours », la mĂȘme technique Ă©tant utilisĂ©e dans le filtre de Prewitt avec un lissage rectangulaire qui introduit des changements de phase (voir lissage de l'image).

Voir aussi

Références

    Lien externe

    Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.