Seam Carving Thibaud COGNAT
SEAM CARVING
Projet de Traitement d’Image
4AI08
Thibaud COGNAT
Janvier-Mars 2016
Thibaud COGNAT
TABLE DES MATIÈRES
Problématique
Motivations et limites du projet
Introduction
Fonctions Matlab créées
Principe
Méthode
Matrice énergie
Chemins de pixels
Suppression ou duplication d’un chemin
Suppression
Duplication
Affichage
Présentation des résultats
Conclusion
Bibliographie
1
Thibaud COGNAT
Problématique
Comment interagir avec une image pour modifier ses dimensions et ses proportions
sans en affecter son visuel ?
Motivations et limites du projet
J’ai choisi de travailler sur la modification d’images car j’ai toujours été intéressé par
la manipulation et la retouche de photos, tout en ayant un rendu aussi naturel que possible.
Il me semblait pertinent d’observer ce type de modifications apportées de manière
automatique à l’aide de modifications sur les pixels de l’images, et ainsi sur sa matrice
représentative. L’étude de la relativité d’utilité des zones importantes d’une image à ce
traitement ayant piqué ma curiosité, je me suis vite penché sur ce sujet et j’ai alors choisi de
me lancer dans l’implémentation d’un traitement de Seam Carving.
Au cour de mes recherches sur le sujet, et plus tard tout au long de mon travail
dessus, je me suis aperçu qu’il existait certaines limites à cette méthode. Par exemple, le
principe même repose sur le fait que dans une image, certaines zones sont plus ou moins
représentatives d’une information utile, et, si l’on désirait diminuer la largeur d’une image, le
Seam Carving supprimerait les zones moins pertinentes afin de conserver les zones
importantes et ne pas déformer l’information. Or, il arrive un moment où le programme n’a
d’autre moyen que de supprimer des informations utiles. En effet, l’efficacité de ce type
d’algorithme sera ainsi soumise au type d’image prise en entrée.
De plus, cette méthode nécessitant une analyse matricielle poussée, son temps
d’exécution est relativement long, par rapport à un redimensionnement classique. J’ai eu, au
long de mon travail sur ce sujet, à modifier mon algorithme afin d’en accélérer la vitesse de
calcul, mais je me suis, au bout d’un moment, retrouvé face aux limites des fonctions
utilisées.
2
Thibaud COGNAT
Introduction
Bon nombre de personnes se sont un jour retrouvées confrontées au problème posé
ici : comment diminuer seulement la largeur ou la hauteur d’une image sans la déformer ?
Il existe plusieurs méthodes techniques pour y parvenir. L’une d’elles, automatisée,
qui s’applique par un traitement matriciel sur l’image originale est appelé Seam Carving. Il
s’agit d’une technique inventée en 2007 par Shai Avidan et Ariel Shamir. Le principe est
d’analyser l’image pixel par pixel par un traitement automatique et de définir les pixels qui
changeraient le moins l’information de l’image s’ils venaient à être supprimés, pour ensuite
les modifier.
Un recadrage standard d’une image selon l’axe x par exemple, effectue une
approximation sur les pixels de chaque ligne sur l’intégralité de l’image. A l’échelle d’une
image, cette modification représente une “écrasement” de l’image en largeur.