Rapport travail 2

Par Maxime Guillemette, le 2/2/2019.
Pour le cours GIF-4105 - Photographie algorithmique

Description du projet

Dans ce travail, on cherche à implanter différents algorithmes. Ces algorithmes ont tous comme thème la manipulation d’images dans le domaine des fréquences. Dans la partie Échauffement, on applique la technique d’accentuation (de sharpening) sur 2 images. Ensuite, dans la partie Images hybrides, on crée des images hybrides selon la méthode décrite par cet article de SIGGRAPH 2006 écrit par Oliva, Torralba et Schyns. Dans la partie Piles gaussienne et laplacienne, consiste à créer des piles (comme des pyramides, mais sans sous-échantillonnage) et d’utiliser ces piles pour analyser des images. Finalement, dans la partie Mélanges multirésolution, on cherche à mélanger 2 images en utilisant la technique de mélange multirésolution, telle que décrite dans cet article de 1983 par Burt et Adelson.

Partie 0: Échauffement

Point d’entrée pour l’échauffement: code/rechauffement.py, appellé avec: python rechauffement.py [image].

Voici les images avec la technique du sharpening:

Alice original Pink Floyd

Sources des images:
Alice au pays des merveilles
Pink Floyd

Partie 1: Images hybrides

Point d’entrée pour les images hybrides: code/hybrid/hybrid_image_starter.py, appellé avec: python hybrid_image_starter.py [image 1] [image 2]

Enstein et Monroe:
Albert Enstein Marilyn Monroe Enstein et Monroe

John McAfee et Tony Stark:
John McAfee Maison et ambulance

Benedict Cumberbatch et Butthead:
Benedict Butthead

Pierce Brosnan et Daniel Craig (résultat préféré):

Vladimir Putin et un ours:
Ours Putin Putin et ours

Analyse du résultat préféré

Voici l’analyse fréquentielle pour le résultat préféré (Pierce Brosnan et Daniel Craig):

Images originales:
Pierce og fourier Craig og fourier

Images filtrées:
Pierce fourrier Craig fourier

Résultat final:
Resultat fourier

Sources des images:

John McAfee
Tony Stark
Benedict Cumberbatch
Butthead
Pierce Brosnan
Daniel Craig
Ours
Vladimir Putin

Partie 2: Piles gaussienne et laplacienne

Point d’entrée: code/hybrid/stacks.py, appellé avec: python stacks.py [profondeur de la pile] [image].

Piles gaussiennes et laplacienne pour Lincoln et Gala:
Stack gaussienne Lincoln et Gala Stack laplacienne Lincoln et Gala
Piles gaussiennes et laplacienne pour le résultat du numéro précédent:
Stack gaussienne Bond Stack laplace Bond

Partie 3: Mélange multirésolution

Point d’entrée pour le mélange multirésolution: code/melange_multiresolution.py, appellé avec: python melange_multiresolution.py [image 1] [image 2] [mask], où l’argument mask peut être vertial pour un mask vertical (comme pour la pommange), ou le path vers l’image du masque.

Pommange

Pomme Orange Pommange

L’approche utilisée est celle décrite dans les diapositives du cours, on construit 3 piles gaussienne: \(A\) pour l’image 1, \(B\) pour l’image 2 et \(M\) pour le masque. Ensuite, on construit 2 piles laplaciennes \(\alpha\) et \(\beta\) à partir des piles gaussiennes A et B. À partir de ces piles, on construit les piles X et Y telles que:

\[\begin{equation} X = \{ A_i * M_i + B_i * (1 - M_i) \vert i \in \{ 1, 2, ..., N \} \} \end{equation}\]

\[\begin{equation} Y = \{ \alpha_i * M_i + \beta_i * (1 - M_i) \vert i \in \{ 1, 2, ..., N-1 \} \} \end{equation}\]

\(N\) est le nombre d’images dans les piles gaussiennes. On construit le résultat final tel que:

Image = X[N]
for i in reversed(range(N - 1)):
    Image += Y[i]

Images avec masques irréguliers

Gordon Ramsay sur un bébé:
Gordon Baby Gordon mask Gordon babyface

Kim Jong Un, fan de e-sports:
Kim Apex 2014 kim mask Kim watching Apex

Ville dans l’espace:
roof space roof mask roof in space

Pour l’image de Gordon Ramsay sur le bébé, on voit que la différence de teinte de peau réduit un peu l’effet. On obtiendrait probablement un meilleur résultat en utilisant la technique de mélange par gradients. Pour l’image de Kim Jong Un, l’effet est presque parfait, sauf pour la réflexion de l’écran au plafond, qui est difficile à remarquer sans connaître l’image originale. Finalement, pour l’image de la ville dans l’espace, le résultat est bien, sauf que la lumière sur la ville est très clairement une lumière de jour, ce qui réduit l’effet.

Sources des images:

Gordon Ramsay
Bébé
Kim Jong Un
Apex 2014 Grand Finals (video)
Toit
Espace

Images avec propres photos

Triple sec et Demon’s Souls:
triple sec demon's souls triple soul mask triple souls

Moi regardant moi sur l’ordinateur:
me me crop me mask me me

Le résultat pour l’étiquette de la bouteille est assez satisfaisant, quoi que le préalignement dans Gimp aurait pu être mieux fait. Le résultat pour l’image dans l’image est un peu moins bien, l’écran d’ordinateur ayant un halo blanc autour qui réduit la qualité de l’effet.

Procédé pour le résultat préféré

Mon image préféré est celle de la ville dans l’espace, voici les piles utilisées dans le procédé:

Pile gaussienne du masque:
gs mask

Pile gaussienne de la ville:
gs roof

Pile gaussienne de l’espace:
gs space

Pile laplacienne de la ville:
ls roof

Pile laplacienne de l’espace:
ls space

Pile gaussienne du mélange (pile X telle que définie dans le procédé):
gs X

Pile laplacienne du mélange (pile Y telle que définie dans le procédé):
gs Y