Détection de contours
Transcription
Détection de contours
GBM – Imagerie numérique – T.P. 3 Détection de contours I – Introduction Le présent TP a pour but d’implémenter la détection de contours par les deux techniques dérivatives GRADIENT et LAPLACIEN. On reprendra le source (préalablement sauvegardé) de lecture et affichage d’un image BMP, en travaillant, au niveau du traitement, sur l’image monochrome générée. II – Calcul du gradient d'une image Rédiger une fonction de calcul de gradient (selon la méthode choisie : Roberts, Prewitt, Sobel, …) de la forme suivante : void Gradient(int L, int C, char *ImageOrig, char *ImageGradient) Les entiers L et C représentent naturellement les dimensions de l'image. L'image résultat (ImageGradient) sera allouée à l'intérieur de cette fonction. Les bords non traités seront mis à 0. Rédiger un fonction SeuilImage (int L, int C, char *Image, int Seuil) qui binarisera l'image selon le seuil choisi, en ne conservant comme non nulles (255) les données supérieures à Seuil. III – Calcul du Laplacien Rédiger une fonction de calcul de Laplacien (selon le filtrage choisi) de la forme suivante : void Laplacien(int L, int C, char *ImageOrig, char *ImageLaplacien) ; Le fonctionnement général sera globalement identique à la question II. Rédiger ensuite la fonction de calcul de l'image de polarité : Void Polarite (int L, int C, char *ImageLaplacien, char *ImagePolarite) ; La fonction de détection des passages par zéro suit, sans surprise : Void PpZero (int L, int C, char *ImagePolarite, char *ImagePpZero) ; Utiliser ensuite l'image gradient de l'image originale pour seuiller les passages par zéro de faible norme. Le seuil choisi sera fixé de façon approximative….. 1 GBM – Imagerie numérique – T.P. 3 IV – Calcul du filtre de Variance Rédiger une fonction de calcul de filtrage de la variance : void Variance(int L, int C, char *ImageOrig, char *ImageVariance) ; IV – Mise en place globale Les principales variables à déclarer seront : int L,C ; int SeuilGradient ; char char char char char char *Image; *ImageGradient ; *ImageLapalcien ; *ImagePolarite ; *ImagePpZero ; *ImageVariance Dans une première approche, on fera une détection des contours par un gradient et on affichera l'image résultat. Ensuite, on fera de même avec le filtrage de variance. On terminera par l'implémentation du filtrage par le Laplacien et on analysera les résultats. 2