Problème entièrement résolu
-
Norme du gradient au pixel (31, 3) de l'image test en damier 9 étapes
L'image de test en damier — noir et blanc pur, carrés de 32 pixels de large — à σ = 1,0 avec le noyau de flou 3×3, Tlo = 30 et Thi = 80. Calculez la magnitude du gradient au pixel (31, 3), la dernière colonne blanche avant la première frontière verticale, puis déterminez combien de pixels de large fait le contour auquel il appartient.
-
Passons d'abord en niveaux de gris, ce qui n'a aucun effet sur cette image : les trois poids s'additionnent pour donner exactement 1, de sorte qu'un pixel ayant des valeurs égales pour le rouge, le vert et le bleu conserve sa valeur. Le blanc reste à 255, le noir reste à 0, donc chaque nombre ci-dessous provient de ces deux seules valeurs.
-
Les poids gaussiens décroissent avec le carré de la distance. À σ = 1, le centre reçoit 1, les 4 pixels partageant un côté reçoivent e-0,5 = 0,6065 et les 4 coins reçoivent e-1 = 0,3679 ; en divisant par le total de 4,8976, on en fait une moyenne pondérée.
-
La ligne 3 se situe bien à l'intérieur d'une bande horizontale, de sorte que les 3 lignes de n'importe quelle fenêtre s'y trouvant sont identiques et la structure verticale du noyau s'annule. Seuls ses totaux par colonne comptent, et il n'y en a que 2.
-
Flou de part et d'autre de la frontière. À x = 31, la fenêtre couvre 2 colonnes blanches et 1 noire ; à x = 32, elle couvre 1 blanche et 2 noires. Le saut net de 255 à 0 est devenu la rampe 255, 185, 70, 0 — ces 2 valeurs centrales, arrondies, sont celles qu'affiche l'inspecteur.
-
Sobel pondère la colonne de gauche par -1, -2, -1, celle de droite par +1, +2, +1, et la colonne centrale par rien du tout. Avec 3 lignes égales, ces poids se réduisent à un facteur unique de 4, si bien que la convolution complète vaut 4 fois la différence entre les colonnes de chaque côté.
-
Le gradient vertical s'annule pour la raison symétrique inverse : la ligne au-dessus du pixel et la ligne au-dessous sont constituées des 3 mêmes nombres, de sorte que la somme +1, +2, +1 annule terme à terme la somme -1, -2, -1. Ce contour présente un gradient purement horizontal, ce qui simplifie l'étape suivante.
-
En combinant les deux, la magnitude est simplement la magnitude horizontale.
-
Comparez avec ce que donnerait le même contour sans flou : un saut brut de 255 à travers le même noyau. Le lissage a coûté 280 unités, soit un peu plus de 27 % de la réponse disponible, et c'est le prix de l'immunité au bruit — non pas une perte par arrondi, mais un compromis délibéré.
-
Répétez à présent une colonne plus à droite. À x = 32, la fenêtre lit 185, 70, 0, donc la différence vaut à nouveau -185 et la magnitude vaut à nouveau 740. Une colonne plus loin de chaque côté, la différence s'effondre à environ -70 et la magnitude à 280.
Réponse
740 — et le contour s'avère large de 2 pixels. La suppression des non-maxima conserve un pixel lorsque sa magnitude est ≥ à celle de ses deux voisins le long du gradient. Ici, le gradient est orienté selon x, le pixel 31 est donc comparé à 280 sur sa gauche et 740 sur sa droite, et le pixel 32 à 740 et 280. Chacun est à égalité avec l'autre, et une égalité satisfait ≥, les deux survivent donc ; à 740, tous deux dépassent de plus de 9 fois Thi = 80, ils ressortent donc tous deux en blanc. Aucun couple de seuils ne peut les séparer, car les seuils n'en sont pas la cause. La véritable frontière se situe à x = 31,5, exactement à mi-chemin entre le dernier pixel blanc et le premier pixel noir, et un flou symétrique laisse le gradient symétrique par rapport à ce demi-entier — il n'y a pas de maximum unique à trouver. C'est bon à savoir avant de régler quoi que ce soit : une ligne doublée dans une carte de contours est parfois un défaut de seuillage, parfois de l'arithmétique, et ici il s'agit de 740 = 740 sur une image dont les carrés se trouvent avoir une largeur entière en pixels.
-
Références (1)
- Insight block 3 — the three criteria, and the trade-off between two of them: J. Canny, "A Computational Approach to Edge Detection." IEEE Transactions on Pattern Analysis and Machine Intelligence PAMI-8(6), 679–698, 1986.