Simplification et abstraction de dessins au trait
Pascal Barla – Joëlle Thollot – François Sillion
GRAVIR-IMAG-INRIA
2Simplification et abstraction de dessins au trait
Enoncé du problème
• Lignes : différentes sources– Dessin scanné et numérisé– Dessin numérique– Extraction de contours– Rendu non-photoréaliste (NPR)
• Simplification– Moins de lignes– Conserve la structure du dessin
Dessin d’une main
Rendu NPR [Grabli]
3Simplification et abstraction de dessins au trait
Enoncé du problème
• Différents contextes– Tracé progressif– Réduction de densité– Niveaux de détail pour le NPR
• Cadre commun– Indépendant du contexte– : échelle de simplification
Pegasus [Ikagashi],outil de tracé progressif
Rendu 3D hachuré, avec niveaux de détail [Praun]
4Simplification et abstraction de dessins au trait
Plan
• Travaux précédents• Méthodologie
– Structure d’-ligne
• Simplification• Abstraction• Résultats• Conclusion
5Simplification et abstraction de dessins au trait
Travaux précédents
• Dessin progressif– libre [Baudel]– contraint [Takashi]
• Traitements de densité– végétaux en 3D [Deussen]– espace image [Wilson][Grabli]
• Indication– dessin partiel de textures
complexes [Winkenbach]
Outil de tracé progressif [Baudel]
Gestion de la densité [Grabli]
Indication de textures [Winkenbach]
6Simplification et abstraction de dessins au trait
Travaux précédents
• NPR : niveaux de détail– espace image
• peinture : Art Maps [Klein]• hachures :TAMs [Praun]
– espace objet : • WYSIWYG NPR [Kalnins]
• Impression– hachures [Salisbury]
Rendu NPR sous deux points de vuedifférents avec utilisation de niveaux de détail pour les hachures [Kalnins]
7Simplification et abstraction de dessins au trait
Plan
• Travaux précédents
• Méthodologie– Structure d’-ligne
• Simplification• Abstraction• Résultats• Conclusion
8Simplification et abstraction de dessins au trait
• = échelle de simplification• Cadre commun en 2 étapes
– Simplification• Regroupement des lignes initiales
– Abstraction• Génération des nouvelles lignes
Méthodologie
Les deux étapes de notre approche : simplification et abstraction
9Simplification et abstraction de dessins au trait
Méthodologie
• Simplification– Représente le dessin à l’échelle – Conserve la structure
• Groupe = -ligne
• Abstraction– Nouvelle ligne (l’)
à l’intérieur d’un groupe (g)– dHausdoff(l’,g) < – Nombreux ddl
Deux lignes “espacées” de moins de sont considérées comme une seule
ligne
10Simplification et abstraction de dessins au trait
Structure d‘-ligne• Groupe = ligne dilatée par • Intuition :
×A gauche :• Repliement• KO
A droite :• OK
• Définition– 2 -extrémités– 1 unique -chemin
Un exemple de groupe ne respectant pas la structure d’-ligne(à gauche), et un autre qui la respecte (à droite)
11Simplification et abstraction de dessins au trait
• -extrémité– 1 seul -voisin– -voisin = intersection avec B
• -chemin– pas de trou– épaisseur groupe <
Structure d‘-ligne
Une -extremité a un unique -voisin.
Un -chemin valide Pas d’-chemin possible car le groupe contient un trou
Pas d’-chemin possible car le groupe est trop épais
12Simplification et abstraction de dessins au trait
Plan
• Travaux précédents• Méthodologie
– Structure d’-ligne
• Simplification• Abstraction• Détails d’implémentation• Résultats• Conclusion
13Simplification et abstraction de dessins au trait
Simplification
• Lignes quelconques– échantillonnage
• Création d’une partition– algorithme glouton
• Itératif sur paires de ligne
– erreur d’un groupe = épaisseur
L’erreur d’un groupe correspond a son epaisseur
14Simplification et abstraction de dessins au trait
Simplification
• Proxy– Ligne représentant un groupe de lignes– Séquence de points + épaisseur– Ligne initiale = proxy d’épaisseur 0– Erreur = épaisseur max
Un proxy stocke une épaisseur en chaque point
qui représente localement un groupe de lignes
15Simplification et abstraction de dessins au trait
Simplification
• Structure d’une paire de proxies– Zone de recouvrement (ZR)– Détection d’un -chemin
• paires de pts à dist < • 1 pt sur chaque proxy
– OK si #-extrémités = 2
• Erreur d’une paire de proxies– erreur = dHausdorff sur ZR– extensible
Une zone de recouvrement entre deux lignes
16Simplification et abstraction de dessins au trait
Simplification
• Graphe d’agglomération– nœud = proxy– arête = ZR
• Algo de contraction d’arêtes– Contraction de l’arête d’erreur min
• Nouveau noeud Nagg
– Mise à jour des arêtes incidentes à Nagg
– Jusqu’à plus d’arête
Un ensemble de lignes et son graphe associé
17Simplification et abstraction de dessins au trait
Plan
• Travaux précédents• Organisation• Méthodologie• Simplification
• Abstraction• Résultats• Conclusion
18Simplification et abstraction de dessins au trait
Abstraction• Pas de perte d’information après simplification• Stratégies
– progressive / post-traitement– interpolation / priorité– Lissage
• Exemples :
Une stratégie en post-traitement : on crée deslignes rectilignes à l’interieur du groupe
Une stratégie progressive par priorité : c’est la dernière ligne dessinée qui prime
19Simplification et abstraction de dessins au trait
Abstraction
• Applications– tracé progressif :
• priorité• appliqué itérativement
– réduction de densité• interpolation
20Simplification et abstraction de dessins au trait
Plan
• Travaux précédents• Organisation• Méthodologie• Simplification• Abstraction
• Résultats• Conclusion
21Simplification et abstraction de dessins au trait
Résultats
• Comportements attendus– pile de lignes
– chaine de lignes
22Simplification et abstraction de dessins au trait
Résultats
• Applications– mise à l’échelle
– tracé progressif
23Simplification et abstraction de dessins au trait
Conclusion
• Cadre de travail
• Algorithme modulaire– adaptable à différents contextes
• 2 applications simples– tracé progressif– mise à l’échelle
24Simplification et abstraction de dessins au trait
Conclusion
• Travaux futurs– enrichir les applications
• nouvelles fonctionnalités• erreur incorporant d’autres données
– nouvelle application : niveaux de détail NPR
– Analyse de l’algorithme• optimalité• choix d’une partition
25Simplification et abstraction de dessins au trait
Merci. Des questions ?