année 2010-2011

publicité
N° anonymat :
Examen de Traitement d'images – 1ère session
M1 informatique et ESI
Partie 1 - Responsables : C. Roudet et J-B. Thomas
Documents de cours autorisés
Mai 2011. Durée : 1h
Exercice 1 : Codage de Freeman d’un contour – 3,5 points
(a)
(b)
1) Donnez le code de Freeman du contour de l’image (a), en utilisant les directions
indiquées en (b). Vous préciserez les coordonnées 2D du pixel de départ P0 choisi, sachant
que les coordonnées du pixel situé en haut à gauche de l'image sont (0,0) et que l’on
commence par les lignes pour définir la position d’un pixel (illustré pour le pixel grisé).
2) Quelle est la longueur de la chaîne créée (nombre d’éléments) ?
3) Proposez un code comprimé et calculer le gain obtenu par rapport à la longueur de la
chaîne initiale (calculée précédemment).
Gain (en %) = (longueur initiale - longueur finale) / longueur initiale.
4) Donnez un algorithme (en pseudo-code) qui prenne en entrée le code de Freeman d’une
forme donnée et un entier k ϵ Z. L’algorithme doit retourner en sortie le code de la même
figure ayant subit une rotation de k.π/2 et de centre le point de départ choisi.
5) Donnez le code de Freeman du contour présent dans l’image (a) ci-dessus, en utilisant
toujours les directions indiquées en (b), mais en commençant par le pixel P’0 de
coordonnées (3,5). Expliquez comment se traduit la symétrie d’axe verticale de la figure
dans ce nouveau code.
1/6
Exercice 2 : Etiquetage en composantes connexes – 3 points
Rappel : une composante 4-connexe (resp. 8-connexe) est telle qu’entre tout couple de
pixels de la composante, il existe un chemin 4-connexe (resp. 8-connexe).
Image binaire
Composantes 4-connexes
Composantes 8-connexes
L’étiquetage en composantes connexes d’une image attribue à tous les pixels d’une
composante connexe une même étiquette (valeur entière). Chaque composante connexe est
alors identifiée par son étiquette (tel que l’illustre la figure ci-dessous, pour les composantes 4connexes de l’image précédente).
Les algorithmes d’étiquetage en composantes connexes détectent les adjacences entre
pixels et définissent l’étiquette du point courant en fonction de celles des points voisins.
1) En vous inspirant de l’algorithme d'agrégation de pixels (méthode de segmentation appelée
également croissance de régions) vu en cours et en TP, écrivez une fonction (en pseudo-code,
C/C++ ou matlab) réalisant l’étiquetage en composantes 4-connexes d’une image binaire B
donnée en entrée. La fonction doit retourner l’image des étiquettes L (de même taille que B).
2) L’approche par double parcours est une autre façon de réaliser l’étiquetage en
composantes 4-connexes. L’algorithme correspondant est le suivant :
Paramètre d'entrée : image binaire B - Résultat de sortie : image d'étiquettes L
Algorithme :
1. Premier parcours de l'image, dans le sens classique (balayage ligne par ligne en commençant
en haut à gauche) :
Pour chaque pixel à 1 dans B, on affecte :
- la plus petite étiquette parmi celles de ses voisins haut (H) et gauche (G)
- ou une nouvelle étiquette si aucun de ces 2 voisins n'est encore étiqueté
2. Second parcours de l'image, dans le sens inverse (en commençant en bas à droite) :
À chaque pixel précédemment étiqueté, on affecte la plus petite étiquette parmi la sienne et celles
de ses voisins bas (B) et droite (D) possédant une étiquette non nulle.
2/6
N° anonymat :
1. L’illustration du premier parcours est présentée sur l’image B ci-dessous :
B
L
1) Initialisation
3) Le voisin G du pixel courant P est à 1 P à 1
6) Nouvelle étiquette
8) Affecter au pixel l'étiquette de son voisin H
11) Affecter au pixel l'étiquette de son voisin G
B
L
2) Les voisins H et G du 1er pixel à 1 ne sont
pas encore étiquetés : nouvelle étiquette
4) Nouvelle étiquette
7) Affecter au pixel courant l'étiquette min.
10) Nouvelle étiquette
12) Fin du premier parcours
2. Illustrez maintenant le second parcours, en repartant des étiquettes obtenues à la fin
du premier parcours. Utilisez pour cela les figures de la page suivante que vous
commenterez :
3/6
B
L
B
L
3) L’étiquetage obtenu en fin de second parcours est-il correct ? Si non, proposez une
solution pour résoudre le problème rencontré ?
4/6
N° anonymat :
Exercice 3 : Algorithme division / fusion (Split & Merge) – 3,5 points
1) Rappelez le principe général de cet algorithme de segmentation basé région.
A quel moment se sert-on d’un arbre et quel est sa particularité ?
Pourquoi cet algorithme utilise-t-il un graphe d’adjacence de régions (RAG) et comment
est-il construit (vous pourrez vous aider d’un exemple) ?
2) Sachant que toutes les divisions ont lieu avant toutes les fusions.
Quel est le RAG limite (maximal) que l’on peut obtenir à la fin de la phase de division ?
Quel est le RAG limite (minimal) que l’on peut obtenir à la fin de la phase de fusion et à
quel type d’image correspond-il ?
3) Sur l’image ci-dessous, appliquer l’algorithme Split & Merge en utilisant :
1. Le prédicat de division : une région Ri est divisée si pour tout pixel pi ϵ Ri :
maxRi (I (pi)) − minRi (I (pi)) > 5
2. Le prédicat de fusion : 2 régions Ri et Rj sont fusionnées si moy (Ri) – moy (Rj) < 4
où pour tout pixel p de l’image : I(p) correspond à son intensité lumineuse (niveau de gris)
pour tout pixel pi appartenant à une région Ri :
• maxRi (I (pi)) représente l’intensité maximale dans la région Ri
• minRi (I (pi)) représente l’intensité minimale dans la région Ri
• moy (Ri) = 1/card(Ri) Σ I(pi), représente la moyenne des intensités dans la région Ri
1. Phase de division :
Max :
Min :
Max :
Min :
Max :
Min :
Max :
Min :
Max :
Min :
5/6
2. Phase de fusion :
Rappels : 2 régions sont adjacentes si elles sont voisines au sens de la 4-connexité.
Le RAG est non orienté. Les coûts associés à ses arêtes correspondent au critère de
fusion donné précédemment. A chaque étape de la fusion, les nœuds reliant l’arête de
plus petit poids sont fusionnés.
RAG :
RAG :
RAG :
4) Trouver les nouveaux critères (de division et de fusion) permettant d’obtenir des régions
rigoureusement homogènes (de même niveau de gris).
6/6
Téléchargement