pour morpher deux images il faut faire plusieures morphes avec la fonction def morph(img1, img2, img1_pts, img2_pts, warp_frac, dissolve_frac):. warp-frac decrit a quoi la forme semble plutot et dissolve quelle couleur de deux images est dominant. ensuite il faut calculer un triangle de Delaunay et calculer la transformation de chaque image vers le triangle pour savoir la couleur qu'on dois mettre dans l'image morphé. on fait ca avec les deux images et aditionne les images obtenu avec la fonctionne: morphedImg = img2_transforme * dissolve_frac + img1_transforme * (1 - dissolve_frac). on fait ca pour plusieurs valeurs de dissolve et warp et ensuite on peut creer un video avec les images recus.
image original 1 |
image original 2 |
gif morphé |
---|---|---|
source | source | |
source | source | |
source | source | |
Pour créer un visage moyenne de plusieurs images, il faut d'abbord calculer le points de réference moyenne (soit le points qu'on a choisi nous même, soit les landmarks). Après on calcule la Transformation de tous les images vers les points moyennes avec une fonctionne qui semble a l'algorithme de morphage du TP3 A et aditionne ces images. comme ca on a calcule le visage moyenne.
Nom |
visage moyenne |
forme moyenne |
---|---|---|
class obtenu par les points |
||
class obtenu par landmarks | ||
utrecht moyenne |
Pour feminisé/masculinisé un image, j'ai calculé avec l'algorithme de Partie 1 le visage moyenne des femmes/hommes. Après on cree un morphage de son image et l'image moyenne. dependant des paramètres de distorsion et de niveau de fondu l'image est plus ou moi bon.
Gender |
visage moyenne |
visage transformé avec warp: 0.5 et dissolve: 0.5 |
visage transformé avec warp: 0.5 et dissolve: 0.3 |
visage transformé avec warp: 0.7 et dissolve: 0.3 |
---|---|---|---|---|
masculinisation |
||||
feminisation |
les parametres warp et dissolve changent quelles contoures on voit plus et quelles couleurs. Je pense une de meilleure parametres qu'on peut choisir sont 0,5 pour les deux.