Algorithme de haut niveau :
- En commençant par une triangulation qui reste cohérente dans toutes les images
- Cependant, assurez-vous que les sommets des triangles sont ajustés pour s'adapter aux caractéristiques uniques de chaque face.
- L'effet de morphing est créé en passant de la triangulation d'une image à celle de la suivante tout en effaçant simultanément les images de chaque triangle.
Triangulation de Delaunay :
- Il utilise une bibliothèque professionnelle pour la triangulation incrémentale de Delaunay, que j'ai traduite en Java à partir d'une implémentation C ++ que j'ai trouvée en ligne sur la base d'un algorithme développé par des chercheurs dans le domaine.
- Fonctionnalité ajoutée: option pour annuler la dernière insertion de sommet, permettant aux utilisateurs d'avoir un sommet provisoire à la volée jusqu'à ce qu'ils le formalisent dans la triangulation (démo).
- Fonction bonus ajoutée : définissez le domaine initial comme un rectangle au lieu d'un triangle, ce qui n'est pas trivial, surtout compte tenu de mon arrière-plan!
- Fonction ajoutée qui permet de traverser les triangles dans une triangulation en utilisant le motif de conception Visiteur.
Fonctions qui valent la peine d'être notées :
- Algèbre de base: Transformation des coordonnées d'un point à l'intérieur d'un triangle en coordonnées à l'intérieur d'un autre triangle, connaissant les sommets des deux triangles.
- Mathématiques de base : Utilisez le motif de conception Visiteur pour traverser les pixels dans un triangle.
- Option pour créer la séquence vidéo en utilisant le multi-threading.
Avec la sortie de la version v1.1, la création de triangulation est devenue beaucoup plus facile pour les utilisateurs en intégrant une bibliothèque de détection de visage alimentée par l'IA. Les utilisateurs peuvent accéder à la bibliothèque via une API REST sur un serveur cloud.
Avec cette bibliothèque, les utilisateurs peuvent commencer par trianguler les 68 sommets détectés pour chaque visage et continuer à ajouter des sommets si nécessaire.