Home
Sommaire
Contents
1. z ro et d cide de compl tement changer de structure de donn e Je passe donc le dimanche avant la derni re s ance tout recoder en utilisant la nouvelle structure de donn e des listes quadruplement cha n es d crite plus loin C est pas si compliqu vu qu il s agit en substance de r crire les fonctions d j impl ment es sur cette nouvelle structure Du coup lundi j arrive avec un programme de seam carving qui marche et qui bizarrement sans les optmisations est d j plus rapide que l algo fonctionnant sur les matrices Bref la fonction de mise jour de l nergie assez simple a aussi t impl ment e facilement Pour la fonction de mise jour du chemin de plus petite nergie a a t une autre paire de manche j y ai pass plusieurs heures On expliquera plus loin comment elle fonctionne En tout cas il y a plein de rebondissement toujours de jolis bugs qui lorsqu on les corrige c dent la place de nouveaux Mais globalement on s en sort plut t bien mieux m me oserai je dire qu avec nos vieilles matrices des familles Et l grande surprise mardi soir apr s le TD de prog je me mets en t te d ajouter notre bagage la fonction d agrandissement On expliquera aussi plus loin comment elle marche Mais grosso modo comme elle utilise la fonction de suppression pr c dente elle aura aussi permis d en r v ler quelques bugs substantiels Finalement on arrive la faire fonctionner correctement Avec notre s
2. nergie nx int La nouvelle largeur de l image Par d faut inchang e N est pas n cessaire si on utilise l interface graphique ny int La nouvelle hauteur de l image Par d faut inchang e N est pas n cessaire si on utilise l interface graphique g Active l interface graphique interactive propos de l interface graphique Affiche l image redimensionner dans une fen tre graphique Lorsque l utilisateur charge une image une fen tre graphique s ouvre et affiche l image initiale L utilisateur peut cliquer sur le bord droit de l image pour r duire sa largeur le bord haut pour r duire sa hauteur ou l angle en haut droite pour redimensionner l image selon les deux coordonn es Quand l utilisateur clique sur une des parties actives de l image et d place la souris une phrase au bas de l cran indique quelles seraient les dimensions de l image si il rel chait le bouton gauche de la souris cette endroit Un cadre repr sente galement la futur taille de l image Lorsque l utilisateur a choisi la future taille de l image la fonction principale la modifie puis dessine la nouvelle image ainsi obtenue en attendant un nouveau choix de l utilisateur tout moment l utilisateur peut appuyer sur le bouton Q de son clavier pour enregistrer l image redimensionn e ll Historique du d veloppement Le seam carving c est une grand histoire d amour Outre le fait que c tait le seul projet qui avait l air un peu int re
3. Projet 1 Compte Rendu Seam Carving Par J r mie Dumas et Julien Herrmann Sommaire Manuel d utilisations Bee ee es ne ES a RE Re EN A EME Nan rt e aa 1 LE SOA que M d veloppement se ans ne Et nt a E une 1 M Str ct re de do n aleorithimesrioss intestins insenslin rm ltinbitues 2 IV Bilanssess rt sr era A ere te ren Le ne Mann NS can 3 L Manuel d utilisation On utilise le programme en le lan ant en ligne de commande avec les param tres n cessaires On peut utiliser des images en couleur PPM v6 ou en noir et blanc PPM v5 On peut vouloir une interface graphique PPM v6 uniquement visualiser la fonction d nergie dans le fichier de sortie etc La liste des options disponible est la suivante prog out opt fichier optl opt2 fichier Le nom du fichier source utiliser Donner le chemin absolu du fichier o str optionnel Permet de sp cifier le nom du fichier de sortie Le fichier source est utilis comme fichier de sortie sinon m str optionnel Permet de sp cifier la fonction d nergie utiliser L op rateur de Sobel est utilis par d faut Les fonctions disponibles sont naive sobel et scharr t Permet d afficher le temps d ex cution du redimensionnement Ne fonctionne pas avec l interface graphique e Permet d enregistrer dans le fichier de sortie la fonction d nergie plut t que la couleur de l image Pratique pour avoir une id e des diff rences existantes entre les fonctions d
4. dite du double buffer permet entre deux lignes de r cup rer un tableau de false pr t tre utilis pour d terminer les cellules mettre jour sur la ligne suivante Bref le code est un peu comment et de toutes fa ons vous pouvez toujours poser des questions Agrandissement Apparemment un des grands d fis du seam carving pour certains surtout si on travaille avec des matrices Avec notre structure de donn e a va plut t bien La m thode utilis e est la suivante on veut augmenter notre image de n pixels on regarde donc quels sont les n prochains chemins que l on est cens supprimer puis on duplique ces chemins ce sont ceux qui sont de moindre importance donc a tombe bien Pour viter de se sentir b te si on double la taille de notre image i e dupliquer du contenu important on proc de en plusieurs tapes pour l agrandissement on it re le processus en agrandissement l image d au plus 50 de sa largeur courante chaque fois De cette fa on seul le fond de moindre importance est dupliqu Aussi lorsqu on duplique un chemin on pourrait chercher introduire un pixel dont la couleur est la moyenne des couleurs des voisins En pratique a a tendance cr er des parties floues sur l image donc on pr f re viter IV Bilan Finalement cette structure de donn e semble plus performante que celle utilisant des matrices Afin de s en convaincre j ai effectu quelques mesures sur l image donn e en exemp
5. le jointe dans l archive o l on obtient les temps d ex cution suivants Temps n cessaire pour enlever 50 colonnes en secondes Version avec tableaux Sans optimisations 49 899118 Mise jour de l nergie optimis e 11 356710 Version avec listes Sans optimisations 8 592537 Mise jour de l nergie optimis e 3 104194 Mise jour de l nergie amp de la recherche de chemin optimis s 2 152134 e Agrandissement x2 2 passes r cursives terminal 18 041128 1 passe non r cursive terminal 17 885118 PS Attention en lisant les commentaires du code source le fichier Seamv ml est une simple copie du fichier Seamh ml en inversant droite bas et gauche haut en faisant attention la fonction de duplication de chemin galement Ainsi je n ai pas pris la peine de modifier les commentaires et les noms des variables muettes
6. ssant dans le lot du post script damned et qu on manque d cid ment toujours un peu d imagination pour avoir un projet original on se rend vite compte qu il y a de quoi faire avec le seam carving Au d but on part donc sur une repr sentation de l image par une matrice des pixels a a un p tit c t pratique nous dira t on On se met peu pr s d accord y en a un qui s occupe de charger les fichiers ppm et de faire l interface graphique l autre qui programmera les algo de redimensionnement Les premi res semaines on s excite donc comme on peut sur nos images matricielles Le calcul de l nergie impeccable La prog dyn pour le chemin de plus faible nergie no problem L o les choses se compliquent c est lorsqu on veut optimiser un peu tout a La suppression d un chemin dans notre matrice ne se fait pas trop en temps lin aire et a c est mal Partant de l quand il faut mettre jour l nergie des voisins du chemin supprim consid rant tous les cas particuliers et autres neries dans l genre a devient vraiment prise de t te On en discute un peu avec le prof quand il est l puis on repars la fin du cours en se disant que finalement a doit pas tre si compliqu que a ces fonctions de mise jour Mais rentr chez soi on trouve que non on avait pas pens tout y a des cas o les chemins se croisent etc qui font que a semble pas trop trop optimis comme truc Bref je reprends le probl me
7. uper structure de donn e a se fait m me tr s facilement C est toujours assez rapide on va dire Peut tre pas encore assez rapide mais moins de r essayer la m thode matricielle je ne vois pas trop comment faire Finalement il manque peut tre encore le choix des zones prot ger supprimer impl menter Je gage qu on peut rajouter assez facilement une m thode de protection suppression assez na ve mais comme a risque de ralentir les calculs dans le cas g n ral et qu il se fait tard je pense qu on va s en passer Ill Structure de donn e algorithmes Listes cha n es La structure utilis e est celle d une liste cha n e mais en plus compliqu e Chaque pixel de l image est repr sent e par une cellule Chaque cellule va avoir droit un pointeur vers la cellule de gauche celle de droite ainsi que les voisins du dessus et du dessous Une cellule sur le bord de l image pointera vers elle m me Avec un test d galit physique on v rifie donc si on est au bord de l image ou pas Et c est assez pratique pour la fonction de calcul de l nergie on consid re que le voisin de gauche d une cellule sur le rebord gauche est elle m me a vite un gradient trop d s quilibr Les autres champs utilis s sont la donn e sur la couleur de l image la valeur qu on lui attribue luminosit dans le cas d une image rvb par exemple le poids cf partie sur l algo de prog dyn et un pointeur vers le pr d cesse
8. ur Prog Dyn L algorithme utilis pour la recherche du chemin d nergie minimum c est un algo de prog dyn a tombe bien c est le titre du paragraphe Comment a marche On parcours les lignes de notre image en stockant dans le champ poids de nos pixel l nergie du chemin minimal qui part d un pixel du haut de l image vers le pixel courant en utilisant le fait que le pr d cesseur sur ce chemin enregistr dans le champ prev est toujours soit le voisin du dessus soit celui du dessus droite ou gauche Lorsqu on a finit de parcourir la derni re ligne il suffit de faire une recherche de minimum sur celle ci pour trouver le pixel d arriv e du chemin d nergie minimale de notre image Mise jour du chemin minimal Il s agit de parcourir les lignes de notre image en ne mettant jour que les poids n cessaires Concr tement on remonte le long du chemin supprim puis on redescend en effectuant un certain nombre d op ration Il y a des pixels dont il faut forc ment mettre jour le poids ce sont ceux dont un parent haut haut gauche ou haut droite a t supprim Il y a les pixels dont un parent a vu son poids changer galement Pour ne les mettre jour qu une seule fois on stock les cellules mettre jour dans une liste Pour v rifier l appartenance la liste en question on utilise un tableau buffer qu on n oublie de remettre z ro apr s avoir parcouru toute la ligne La magnifique technique
Download Pdf Manuals
Related Search
Related Contents
Panasonic UG-3313 ATM User Manual - Oracle Documentation Installation Manual for Power Supply Modules L61P, L63P Series L,LM & LB OM. rev Copyright © All rights reserved.
Failed to retrieve file