---
title: INFO911 (5c) Segmentation - approches contours
type: slide
slideOptions:
transition: slide
progress: true
slideNumber: true
---
# Segmentation d'image - approches contours
## (Traitement et Analyse d'Image 5c)
> [name=Jacques-Olivier Lachaud][time=Decembre 2020][color=#907bf7]
> (Les images peuvent être soumises à des droits d'auteur. Elles sont utilisées ici exclusivement dans un but pédagogique)
###### tags: `info911`
Retour à [INFO911 (Main) Traitement et analyse d'image](https://codimd.math.cnrs.fr/s/UE_B59gMy)
---
# Approches contours
| échographie | contours perceptuels |
| -------- | -------- |
|  | |
:::warning
Parfois, régions peu homogènes, limites entre régions plus visibles ou information de contour plus pertinente
:::
---
## Détecteur de contours de [Canny, 1980]
Détecteur de Canny sur image $I$ : paramètres $\sigma, s_1, s_2$.
1. Flou pour éliminer le bruits des capteurs => $I' := I \ast M_\sigma$
2. Filtres dérivatifs pour direction $\mathbf{v}^\perp$ des contours => $(I_x,I_y) := (I' \ast S_x, I' \ast S_y)$
3. Calcul de la force des contours => $G=\sqrt{I_x^2+I_y^2}$
4. $E$ = pixels $p$ tels que $G[p]$ est un maximum local dans la direction $\mathbf{v}^\perp$
5. $E'$ = pixels de $E$ tels que $G[p] \ge s_1$
6. On rassemble les pixels de $E'$ voisins dans des contours $C_1, C_2, \ldots$
7. On ne garde que les contours qui ont au moins un pixel $q$, tel que $G[q] \ge s_2$.
---
## Etapes de calcul de Canny
| | | |
| -------- | -------- | -------- |
| | | |
---
## Etape 4 : identification des maximas locaux du gradient

---
## Détecteur de contours de Canny
| input | $\sigma=1.4, s_1=24, s_2=96$ | $\sigma=1.9, s_1=12, s_2=25$ |
|:----------------------------------------------------------------------------------------------:| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
|  |  |  |
:::danger
En général, les contours ne ferment pas les régions
`video-contours`
:::
---
## Algorithme de ligne de partage des eaux (Watershed)
==Principe== Voir l'image gradient comme une carte topographique, et trouver les bassins où l'eau s'écoule.
| Image norme gradient | Vue topographique | Remplissage des bassins |
| -------- | -------- | -------- |
|  |  |  |
---
## Watershed: exemple de résultats
| Image | Résultat|
| -------- | -------- |
| |  |
---
## Watershed: sursegmentation, sensibilité au bruit
| Image | Résultat|
| -------- | -------- |
| | |
---
## Watershed: marqueurs donnant les bassins à garder
| Marqueurs | watershed |
| --------- | --------- |
|  |  |
`video-watershed`
---
## Watershed : algorithme [Vincent, Soille 1991]

1. Norme du gradient de l'image $G=\sqrt{I_x^2+I_y^2}$, avec $I_x = I \ast S_x$ et $I_y = I \ast S_y$
2. Tri des pixels dans l'ordre croissant de $G$
3. Par groupe de pixels de même altitude
a. Tri des pixels par distance à bassin existant
b. Assignation des labels suivant configuration locale

c. Si pixels non étiquetés, nouvelle étiquette
---
## Stochastic watershed [Angulo, Jeulin 2007]
==Idée== Faire tourner plusieurs le watershed avec des marqueurs tirés aléatoirement
puis **sommer** les contours obtenus

`video-stochastic-watershed`
---
## Conclusion
* algorithmes efficaces, plus simples à mettre en oeuvre que les algos région
* problèmes de fermeture des contours pour l'approche filtre (Canny)
* joliment résolu par watershed
* mais problèmes de sursegmentation
* utilisation de marqueurs en général
* manque de géométrie dans les contours