Kommunauty
Connexion
Inscription

Du morphing


OaladesSomatesTignon Messages : 178

Salut,

J'ai fait un programme de morphing « linéaire » entre deux images. En entrée on donne un ensemble de points placés sur une première image, les points semblables sur la deuxième image. Ensuite, on triangule ces points (en ajoutant les 4 coins de l'image) et pour chaque triangle on effectue une transformation progressive en le triangle correspondant sur l'autre image tout en effectuant un fondu entre les deux images.

J'avais voulu au départ faire une animation en morphing pour animer la dissection de mon chat (cf. un topic que je ne retrouve plus. Par contre, j'ai trouvé un autre topic et j'ai l'impression que c'est un doublon avec le mien, vers la fin : http://www.kommunauty.fr/forum/132-probleme-avec-mon-poisson/2/). Bref, ne trouvant pas de logiciel, j'avais juste voulu voir ce que cet algorithme donne (ça donne mieux que je croyais, j'imaginais que l'on voyait les brisures entre les triangles).

Sur les côtés de l'image, ça ne fonctionne pas bien car on est obligé de mettre les 4 côtés immobiles. Mais bon, c'était juste un test.

Voici un exemple avec Jekyll et Hyde (trouvé sur youtube). J'ai oublié de placer certains points sur le vêtement en bas à gauche et sur l'oreille à droite donc on voit juste un fondu sur ces deux parties (flemme de refaire, l'interface et nulle, pas possible de sauvegarder).

Voici les images avec les points.

Premièrement on place les points sur la première image.

Puis on déplace les points sur la deuxième.

Les points de la première image sont « triangulés » puis les triangles sont déformés conformément à la deuxième. Mon code affiche la triangulation sur la deuxième image (donc elle n'est pas « optimale », c'est celle sur la première qui l'est mais elle n'est pas affichée).

Ensuite, on fait des transformations linéaires et des fondus.

Si ça intéresse quelqu'un, je peux donner le code qui est en C, mais il faut que je le nettoie avant.

edit : Tiens, ça me dit « Owi ! Tu viens de créer une nouvelle discussion ! ».

edit bis : tiens, au fait, quelqu'un en a profité pour ajouter de la « pub » en éditant son message dans le sujet vers lequel j'ai donné un lien (http://www.kommunauty.fr/forum/132-probleme-avec-mon-poisson/2/), summer77.

dimanche 12 juillet 2015 (Dernière édition dimanche 12 juillet 2015)

Homer Messages : 1865

Pas mal !

Merci pour la pub, j'ai corrigé

dimanche 12 juillet 2015

OaladesSomatesTignon Messages : 178

Merci.

Comme amélioration, on pourrait peut-être faire un fondu léger entre les différents triangles sur leurs jointures, rectifier le problème de la bordure de l'image qui doit être fixe, modulariser le tout et faire une interface. Pour le moment j'ouvre une fenêtre avec un screen de la première image avec les points placés et je passe d'une fenêtre à l'autre pour déplacer les points de la deuxième image (je mets la souris sur un point de la première image, je change de fenêtre (c'est bien aligné comme j'ai tout en plein écran) et je déplace).

edit : d'ailleurs, comme mon programme exporte toutes les images de l'animation une par une en png, j'ai pu constater que la fonction qui au temps associe le poids des images est convexe (en général du moins, sans trop d’artéfact) : on part du poids de la première image, le poids croit jusqu'à un maximum au milieu puis décroit jusqu'au poids de la deuxième image. Ça s'explique probablement grossièrement par la « complexité » des images, mais ce serait peut-être intéressant d'étudier ça…

dimanche 12 juillet 2015 (Dernière édition dimanche 12 juillet 2015)

Ryu Messages : 1976

C'est quand même bizarre toutes ces pubs qui apportent de beaux backlinks. Ça a commencé à faire ça depuis le changement de proprio.

Sinon ça envoi du lourd ton prog! Tu envisages d'en faire une appli web, un peu comme ça ou ça?

dimanche 12 juillet 2015

Homer Messages : 1865

Non Ryu, ça a commencer avant, depuis que je suis modo je passe mon temps à faire du nettoyage !

lundi 13 juillet 2015

OaladesSomatesTignon Messages : 178

Si vous voulez tester, j'ai séparé le code en plusieurs fichiers et je l'ai mis en ligne : morphing linéaire. Ça utilise la SFML et c'est en C++ (without class, je me fiche du langage et de l'organisation modulaire etc. C'est de toute manière pourri, j'attends de trouver un langage bien.).

lundi 13 juillet 2015 (Dernière édition lundi 13 juillet 2015)

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !