Fondements et algorithmes de l`imagerie numérique TD2

publicité
Université de Strasbourg
Master mention informatique, spécialité ISI
1e année, semestre 1
Année 2009-2010
Fondements et algorithmes de l’imagerie numérique
TD2 Remplissage
Exercice 1
Ecrire en pseudo-C un algorithme traçant un disque (donc constitué par les pixels à
l’intérieur d’un cercle). On supposera que l’on dispose d’une fonction SegHori(x1,x2,y)
traçant un segment horizontal. L’algorithme ne devra utiliser que des opérations sur les
entiers.
Exercice 2
Soit un polygone P sans aucune propriété particulière. Il n’est ni régulier, ni convexe,
ni simple etc. On se propose de le remplir avec l’algorithme par balayage (scan-line).
1. Proposer des structures de données minimales initiales pour le sommet, pour l’arête
et pour le polygone. Ces structures pourront être modifiées au fur et à mesure des
besoins des algorithmes.
2. On suppose qu’une ligne horizontale d’équation y = Y0 coupe les arêtes du polygone
en n points d’abscisse xj . Proposez une structure de données pour contenir ces intersections. Puis donner un algorithme pour colorier les points de la droite horizontale
qui appartiennent à l’intérieur du polygone.
3. Soit un intervalle ]Yi , Yi+1[ dans lequel il n’y a aucun sommet de P . L’intersection
du polygone avec une ligne horizontale (scan-line) (appartenant à cet intervalle)
appartient toujours à un même sous-ensemble d’arêtes appelé ensemble des arêtes
actives. On suppose que pour l’intervalle ]Yi , Yi+1[ cet ensemble des arêtes actives est
connu, ainsi que les abscisses xj des intersections de la ligne horizontale d’équation
y = Yi avec les arêtes actives. (cf figure ??).
– Dans un premier temps, l’objectif est de calculer la valeur des xj sur une ligne à
partir des valeurs des xj sur les lignes précédentes.
– Dans un deuxième temps on tentera de faire cela sans recourir à des calculs entre
nombres flottants.
A chaque fois, donner la structure de données utilisée pour les arêtes actives et donner
les algorithmes de remplissage de la partie du polygone appartenant à l’intervalle
[Yi Yi+1 ].
4. A présent on cherche à colorier tout le polygone. Proposer une structure de données
pour le polygone qui soit adaptée à cette tâche, et en déduire l’algorithme complet
pour le coloriage de tout le polygone.
1
Ymax
Yi+1
Yi
Ymin
Xmin
x0
x1
x2 = x3
Xmax
Fig. 1 – Un intervalle [Yi , Yi+1 ] sur lequel les scan-lines intersectent le même ensemble
d’arêtes. Cet ensemble d’arêtes sera appelé l’ensemble des arêtes actives. Dans le cas de
cette figure il y a quatre arêtes actives représentés par des traits épais. Au départ du calcul
on dispose donc des valeurs de x0 , x1 , x2 et x3 (avec x2 = x3 ).
Dans tout cet exercice, vous avez droit à tous les outils de manipulation des listes, (Insertion, Elimination, Parcours Triage, PremierElement, DernierElement, ProchainElement
etc.) ainsi que la fonction SegHori(x1,x2,y).
2
Téléchargement