ASI – Traitements d’images Extraction de contour Le but de ce TP est de pratiquer et comparer différentes méthodes d’extraction de contours.
Un cas concret sera étudié en dernière partie de ce Tp.
1- Cas mono-dimensionnel
Créez deux fonctions mono-dimensionnelles représentant un contour type « saut d’amplitude » et un contour « en toit ». Pour chacune de ces fonctions vous calculerez les dérivées premières et secondes. Par analogie, vous en déduirez une méthode pour calculer et situer un contour dans un signal bi-dimensionnel.
2- Les opérateurs dérivatifs du premier ordre.
a- Calculez la norme du gradient sur vos images. Affichez et interprétez vos résultats.
b- Même question avec l’opérateur de Sobel.
c- Même questions avec l’opérateur de Prewitt.
d- Vous remarquerez que les masques de convolution des ces opérateurs sont séparables. Pour un de ces opérateurs, vous décomposerez son masque et commenterez les effets des deux filtrages 1D successifs.
3- Les opérateurs dérivatifs du second ordre.
a- Appliquez l’opérateur laplacien sur vos images
b- Appliquez l’opérateur de Marr et Hildreth : différence de deux gaussiennes (DOG).
4- Extraction de contours par seuillage.
a- Réaliser un seuillage pour les opérateurs dérivatifs du premier ordre.
b- Réaliser un seuillage pour les opérateurs dérivatifs du second ordre.
5- Mise en situation.
a- Créez votre fonction C = EdgeExtraction(I, ‘methode’, seuil) retournant les contours de votre image selon la méthode précisée. Si le seuil n’est pas précisé, il sera calculé automatiquement.
b- Création des données : prenez une image de test et bruitez la avec un bruit poivre et sel.
c- Pré-traitements : appliquez les pré-traitements que vous jugerez nécessaire afin d’améliorer la détection.
d- Traitements : appliquez une des méthodes vues précédemment afin d’extraire les contours.
e- Post-traitements : à partir de votre image initiale, créez une image résultats en RGB et mettez en rouge les contours détectés.
f- Conclure sur la chaîne de traitement.