TP2 - Synthèse de textures
GIF-7105 - Photographie algorithmique - Maxime Leclerc - 22 février 2015
Le premier objectif de ce travail est de créer une grande image de texture à partir d'un plus petit échantillon. Le second objectif est d'appliquer cette texture synthétisée sur une image existante. Ces objectifs seront remplis en utilisant diverses stratégies. Une de ces stratégies consiste à échantillonner des blocs de pixels et de les aligner afin qu'ils se chevauchent tout en minimisant les erreurs de chevauchement.
Algorithme général
L'algorithme utilisé pour synthétiser des textures comporte les étapes suivantes:
- Diviser la texture d'entrée en échantillons.
- Calculer la somme des différences au carrées (SDC) entre les échantillons déjà placés sur l'image en sortie et le prochain échantillon à être ajouté à l"image en sortie. Le premier échantillon peut être placé au hasard. Les échantillons suivants sont choisis pour minimiser la SDC.
- Rechercher le chemin contigu au coût minimumafin de choisir quel pixels de chaque bloc seront conservés.
- Permettre l'algorithme de transferer une textureen minimisant la SDC avec une image existante.
- Combiner le transfert de texture à une image existante à l'aide de contour progressif (feathering).
Création de texture
La carrousel suivant présente les exemples obligatoires des trois algorithmes de création de texture. Les dimensions des échantillons, des chevauchements ainsi que la tolérance choisie sont incluses pour chaque image.
On constate que l'algorithme 2 donne de meilleurs résultats que l'algorithme 3. On voit aussi qu'une tolérance faible semble préférable. Enfin, pour certaines textures, il semble préférable de varier la taille des échantillons et des chevauchements.
Textures additionnelles
La carrousel suivant présente des exemples additionnels des trois algorithmes de création de texture. Les dimensions des échantillons, des chevauchements ainsi que la tolérance choisie sont incluses pour chaque image.
Sources:
mit.edu -
tamu.edu -
wikimedia.org
Transfert de textures et visages
Voici les résultats des transferts de textures. J'ai utilisé trois visages: celui fourni, le mien et celui du professeur. J'ai utilisé la texture fournie et les textures additionnelles. On voit que les résultats vaient selon les textures. Par exemple, la texture de "rue" n'est pas très variée et donne donc des résultats avec peu de variations pour les visages qui n'ont pas beaucoup d'ombre.
Crédits supplémentaires
Pour terminer ce travail, j'ai combiné le transfert de textures avec un mélange d'image à l'aide de contour progressif (feathering). J'ai donc créé trois "portraits de famille" dans une toast, dans de l'eau et sur l'asphalte. ;)