--- settings: enabled_extensions: - default - extra - tables - tasklist - codehilite(linenums=true) --- # TP 2 ImageJ : Filtrage, Contours, Morphologie Mathématique __Thomas ABOT__ __Thibaut CHARLES__ [TOC] Partie I : Filtrage spatial, Contours =============================================================================== Exercice 1 : Filtrage linéaire bidimensionnel non récursif dans le domaine spatial ------------------------------------------------------------------------------- ### Filtres #### Smooth ![](moly_orig.PNG)![](moly_smooth.PNG) ![](freq_moly_orig.PNG)![](freq_moly_smooth.PNG) #### Sharpen ![](moly_orig.PNG)![](moly_sharpen.PNG) ![](freq_moly_orig.PNG)![](freq_moly_sharpen.PNG) #### Shadows ![](moly_orig.PNG)![](moly_shadow.PNG) ![](freq_moly_orig.PNG)![](freq_moly_shadow.PNG) #### Convolution ##### Tests ![](TestConvolve_orig.PNG)![](TestConvolve_customkernel.PNG) > La convolution est correcte ##### Flou Gaussien ![](moly_orig.PNG)![](moly_gaussien.PNG) ![](freq_moly_orig.PNG)![](freq_moly_gaussien.PNG) ##### Gradient N ![](moly_orig.PNG)![](moly_gradientN.PNG) ![](freq_moly_orig.PNG)![](freq_moly_gradientN.PNG) ##### Laplacien ![](moly_orig.PNG)![](moly_laplacien.PNG) ![](freq_moly_orig.PNG)![](freq_moly_laplacien.PNG) ### Commentaires - Exercice 2 : Filtres non-linéaires bidimensionnels, les filtres médians ------------------------------------------------------------------------------- ### Médian ![](cornee_orig.PNG)![](cornee_median.PNG) ### Moyenne ![](cornee_orig.PNG)![](cornee_mean.PNG) ### Bateau, Salt and Pepper ![](bateau_orig.PNG)![](bateau_saltandpepper.PNG) #### Médian, taille 3 ![](bateau_saltandpepper.PNG)![](bateau_saltandpepper_median3.PNG) #### Moyenne, taille 3 ![](bateau_saltandpepper.PNG)![](bateau_saltandpepper_mean3.PNG) Exercice 3 : Introduction à la détection de contours ------------------------------------------------------------------------------- Partie II : Morphologie Mathématique =============================================================================== Traitement d'images binaires ------------------------------------------------------------------------------- ### Importance du choix de l'élément structurant (voisinage) #### Érosion de taille 3 sur l'image partB ##### Érosion carrée ![](partb_orig.PNG)![](partb_carre.PNG) ##### Érosion héxagonale ![](partb_orig.PNG)![](partb_hexagonal.PNG) ##### Érosion Circulaire ![](partb_orig.PNG)![](partb_cercle.PNG) #### Cercle1 ![](cercle_orig.PNG) ##### Érosion carrée/hexagonale/circulaire ![](cercle_erode_carre.PNG)![](cercle_erode_hexa.PNG)![](cercle_erode_cercle.PNG) ##### Dilatation carrée/hexagonale/circulaire ![](cercle_dilate_carre.PNG)![](cercle_dilate_hexa.PNG)![](cercle_dilate_cercle.PNG) #### Cercle2 - Idem que pour Cercle1 - Disparition du cercle quand l'érosion est trop forte #### Rectangles ![](rectangle_orig.PNG) ##### Érosion carrée/hexagonale/circulaire ![](rectangle_erode_carre.PNG)![](rectangle_erode_hexa.PNG)![](rectangle_erode_cercle.PNG) ##### Dilatation carrée/hexagonale/circulaire ![](rectangle_dilate_carre.PNG)![](rectangle_dilate_hexa.PNG)![](rectangle_dilate_cercle.PNG) #### Deviner le type de voisinage On prend une forme de base, puis on le dilate beaucoup. > Dilatation circulaire / rectangulaire ![](binary_dilate_cercle.PNG)![](binary_dilate_rectangle.PNG) #### Choix du voisinage Il dépend de l'image source: - On préférera un voisinage carré pour conserver les angles de l'image - Le voisinage circulaire est plus adapté pour les images avec des formes courbes ### Utilisation des transformations élémentaires #### Circuit Obtention des frontières par différence entre l'image érodée/dilatée et l'image originale > Image originale/érodée/différence entre les deux ![](circuit_orig.PNG)![](circuit_erode.PNG)![](circuit_diff.PNG) #### Grains de café On érode les grains de café pour faire disparaître les plus petits, puis on dilate puis compte les grains restants. > Image originale/érodée/dilatée/comptage ![](cafe_orig.PNG)![](cafe_erodeCercle3.PNG)![](cafe_dilateCercle2.PNG)![](cafe_count.PNG) #### Circuit (bis) On érode le circuit afin de faire disparaître les pistes puis dilate autant qu'on a érodé afin de retrouver la taille originale des pastilles. Une fois qu'on a les pastilles, on fait la différence entre l'originale et les pastilles. > Image originale/érodée/re-dilatée/différence ![](circuit_orig.PNG)![](circuit_pastilles_erodeCercle4.PNG)![](circuit_pastilles_erodeCercle4_dilateCercle4.PNG)![](circuit_pistes.PNG) Pour isoler les pistes obliques, il faut éroder l'image suivant une ligne oblique. ### Transformations utiles #### Remplissage des trous On peut boucher les trous en dilatant puis érodant l'image. > Image originale/binarisée/érodée/re-dilatée ![](circuit_2_color.PNG)![](circuit_2_binary.PNG)![](circuit_2_erode.PNG)![](circuit_2_dilate.PNG) #### Étiquetage > Image originale/étiquetée ![](partb_orig.PNG)![](partb_etiquetteRGB.PNG) ### Exercice > Image originale/binarisée/érodée/re-dilatée/Comptage ![](riz_orig.PNG)![](riz_binary.PNG)![](riz_erodeHorizontal4.PNG)![](riz_dilateHorizontal4.PNG)![](riz_count.PNG) Morphologie décimale ------------------------------------------------------------------------------- ### Cornée > Originale / érosion / soustraction & binarisation ![](cornee_orig.PNG)![](cornee_erosion8hexa.PNG)![](cornee_substractbinary.PNG) > Approximation des contours via érosion ![](Cornee_erodeCercle1_approxContour.PNG) ### Gradient morphologique > Originale / Gradient de Sobel ![](babouin_orig.PNG)![](babouin_sobel.PNG) > Originale / Dilatée / Érodée / Gradient morphologique ![](babouin_orig.PNG)![](babouin_dilate2cercle.PNG)![](babouin_erosion2cercle.PNG)![](babouin_sobel.PNG) ### Filtrage morphologique #### Fermeture > Originale / ... / Fermeture ![](babouin_orig.PNG)![](babouin_fermeture1.PNG)![](babouin_diffFermeture.PNG) #### Ouverture > Originale / ... / Ouverture ![](babouin_orig.PNG)![](babouin_ouverture1.PNG)![](babouin_diffOuverture.PNG) Exercices d'application ------------------------------------------------------------------------------- ### Image partB ### Image meb > Originale / Binarisation / Érosion / Dilatation / Comptage ![](meb_orig.PNG)![](meb_binary.PNG)![](meb_erodeCercle2.PNG)![](meb_dilate4.PNG)![](meb_countIs407.PNG) ### Image circuit "binarisée"