Dans une image, les contours des objets sont très souvent caractérisés par une brusque variation de l'intenisté lumineuse. Une manière simple de mettre en évidence ces discontinuités est d'utiliser l'opérateur de dérivation sur l'image représentée sous forme d'une matrice des niveaux de gris (0 : noir, 255 : blanc).
La transformation sur une plage de l'image où l'intensité lumineuse est constante donnera la valeur nulle (la zone après transformation sera noire); celles comportant de nombreuses variations seront d'autant plus claires que l'amplitude de la variation est grande.
Bien entendu, il faut effectuer la dérivation selon les axes horizontaux et verticaux de l'image : on calcule donc le gradient et on choisira de représenter sa norme.
Une approximation de la dérivée est donnée par f'(n) = f(n+1)-f(n). On l'utilsera afin d'accélérer les calculs des composantes du gradient, ce qui nous donne les matrices suivantes :
Gx
| -1 | 1 |
| 0 | 0 |
Gy
| -1 | 0 |
| 1 | 0 |
G = sqrt(sqr(Gx)+sqr(Gy)) avec la norme Euclidienne. On peut également utiliser G=abs(Gx)+abs(Gy) pour obtenir un algorithme plus rapide.
Pour obtenir les contours dans l'image avec le gradient, il faut donc appliquer sur l'image deux filtres matriciels et calculer une norme.
L'inconvénient majeur de cette méthode est que l'opérateur gradient est sensible au bruit. Le bruit fait apparaitre des discontinuités qui seront accentuées par la transformation.
L'opérateur de Roberts est comparable au gradient mais sa réponse est maximale aux transitions à 45° des axes de l'image.
Gx
| 1 | 0 |
| 0 | -1 |
Gy
| 0 | 1 |
| -1 | 0 |
Cet opérateur est comme le gradient rapide à calculer mais sensible au bruit.
L'idée permettant d'améliorer ces opérateurs pour la détection des contours, est de les associer à un lissage préalable de l'image avant la dérivation, pour atténuer les variations d'intensité lumineuse dues au bruit.
Gx
| -1 | 0 | 1 |
| -2 | 0 | 2 |
| -1 | 0 | 1 |
Gy
| -1 | -2 | -1 |
| 0 | 0 | 0 |
| 1 | 2 | 1 |
L'opérateur de Sobel peut être vu comme la succession d'un moyenneur (c'est un filtre passe-bas) suivi d'une différentiation.
Gx
| -1 | 0 | 1 |
| -1 | 0 | 1 |
| -1 | 0 | 1 |
Gy
| -1 | -1 | -1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |