Ce TP a pour objectif de changer, uniformément ou non, les dimensions d'une image en en altérant le moins possible le contenu.
La solution, de manière générale, se déroule en 3 étapes:
Cependant, l'algorithme peut fonctionner plus ou moins bien selon le contenu de l'image
image initiale 640 x 434 | 350 x 434 | 640 x 234 |
image initiale |
image initiale 512 x 384 | 212 x 384 | 512 x 134 |
image initiale 648 x 432 | 448 x 432 | 348 x 432 |
image initiale 360 x 768 | 210 x 768 | 360 x 468 |
L'algorithme ne donne pas d'excellents résultats avec un visage centré car il ne considère pas le visage comme une zone importante en terme d'énergie.
image initiale 450 x 387 | 300 x 387 | 450 x 237 |
image initiale 535 x 673 | 335 x 673 | 535 x 373 |
image initiale 638 x 476 | 488 x 476 | 638 x 326 |
image initiale 433 x 307 | 293 x 307 | 433 x 207 |
image initiale 360 x 480 | 210 x 480 | 360 x 330 |
image initiale 480 x 480 | 330 x 480 | 480 x 330 |
image initiale 540 x 330 | 390 x 480 | 540 x 330 |
image initiale 480 x 432 | 480 x 282 | 330 x 432 |
image initiale 638 x 476 | 638 x 626 |
Mon ajout de colonne ne fonctionne visiblement pas comme il faut. Apparemment l'insertion crée une colonne vraisembablement de faible coût énergétique, ce qui fait qu'elle est à nouveau sélectionnée, d'où les artefacts observés sur l'image résultante. J'ai essayé de modifier les coûts à chaque itération pour que la colonne sélectionnée ne soit plus la même. Ce qui m'a donné la troisième image, et m'a permis de comprendre que ça ne fonctionnait pas.
On constate que les images contenant beaucoup d'informations sont facilement altérées dans la mesure ou les colonnes à supprimer passent nécessairement par ces données importantes. Pour certaines images, d'autres types de gradients pourraient mieux fonctionner. Par exemple, en ne conservant que les gradients sur un axe (en x ou en y), on pourrait être en mesure de mieux conserver l'information désirée en éliminant les parties plus aléatoires de l'image.
Ce style de découpage permet essentiellement de conserver ce qui semble visuellement important.Cependant il peut ne pas y parvenir si l'image contient trop d'information, ou que des zones estimées importantes par l'oeil, ne le soient pas en termes d'énergie (Visages). Pour les conserver, il faudrait, dépendamment de limage, sélectionner la zone à conserver ou à effacer en modifiant les valeurs énergétiques dans le domaine des gradients; 0 pour ce qu'il faut supprimer et de très hautes valeurs pour conserver.