2. Détection des maxima locaux de la norme d'un gradient

<< Seuillage de la norme d'un gradient | Liste des exercices | Seuillage des maxima locaux par hystérésis >>

Introduction

Le but de cet exercice est d'aboutir à la représentation des maxima locaux de la norme du gradient calculée dans l'exercice précédent. Il nous faut pour cela déterminer, en chaque pixel P, les deux voisins de P qui se trouvent dans la direction du gradient. Cette direction doit donc être connue en chaque pixel.

L'image de travail est la même que celle de l'exercice précédent (Phare).

Calcul de la direction du gradient

  1. Ajouter à votre macro le calcul, dans une nouvelle image, de la direction du gradient estimé par les masques de Sobel. Pour calculer l'angle du gradient, on utilisera la fonction atan2, qui calcule une arc-tangente entre -π et π, et que l'on pourra convertir en degrés.
  2. Examiner l'image représentant la direction du gradient de Sobel et l'interpréter en quelques pixels judicieusement choisis. Pour examiner les valeurs des pixels, on peut utiliser l'outil Pixel Inspector (à installer éventuellement par le bouton >>, puis disponible par le bouton Px).

Détection des maxima locaux

  1. Compléter votre macro pour créer une nouvelle image de la norme du gradient, dans laquelle les non-maxima locaux sont éliminés (mis à 0). Les deux voisins à prendre en compte dans la direction du gradient seront déterminés par discrétisation de cette direction.
Attention : dans le langage macro d'imageJ, les priorités classiques des opérateurs ne sont pas toutes respectées (cf. http://rsbweb.nih.gov/ij/developer/macro/macros.html#operators).

Maxima locaux de la norme du gradient

  1. Comparer cette nouvelle image de la norme du gradient et celle obtenue initialement, dans laquelle les non-maxima locaux n'étaient pas encore supprimés.