TP2: On s'amuse en fréquences

Explications additionnelles

Toutes les images sont des hyperliens vers l'original.

Partie 0 : Réchauffement

Ma fonction de sharpening commence par filtrer l'image avec un filtre gaussien [ndimage.gaussian_filter()]. Je soustrait ce résultat à l'image de base pour obtenir les hautes fréquences. J'additionne ensuite ces hautes fréquences à l'image originale. Pour finir je clip les valeurs entre 0 et 1. Par défault j'utilise un sigma de 5 et un alpha de 0.9.
Voici les résultats pour les images que j'ai essayé. J'ai également essayer avec une image en couleur et le résultat était bien.




Partie 1: Images hybrides

Pour faire les images hybrides, on prends les basses fréquences d'une image avec un filtre gaussien et les hautes fréquences avec l'image originale moins l'image filtré par une gaussienne. Afin d'obtenir un bon résultat on ajuste le sigma des basses et des hautes fréquences séparément. La notation lorsque je mentionne les sigma dans ce rapport sera (Sigma Basse Fréquence, Sigma Haute Fréquence)

Selon moi le meilleur résultat pour l'hybride Albert - Monroe avec (10,16)

Par curiosité j'ai essayer d'inverser Albert et Marilyn en gardant les mêmes sigma et on obtient une image ou marilyn est très prononcé et on ne voit que très peu Albert.


Finalement j'ai obtenu mon meilleur résultat avec (5,5)

Ceci est d'ailleur mon résultat préféré donc je vais faire mon analyse fréquentielle maintenant. À gauche voici le résultat de l'analyse fréquentielle pour l'image demandé par le prof, et à droite l'analyse de mon résultat préféré. On peut voir que la première image, qui a un besoin des sigma (10,16) à une composition spectrale beaucoup plus déformé que le deuxième qui n'a eu besoin que de (5,5). Les filtres étant moins intense ils ont moins affectés les fréquences. Je crois que la raison pourquoi des sigma beaucoup plus petit on été nécessaire est que la photo de Marilyn possède naturellement plus de haute fréquences et celle de Albert possède plus de basse fréquence. L'image hybride demandé dans l'énoncé prend les basses de marilyn et les hautes de Albert, ce qui fait qu'on doit travailler beaucoup plus fort pour obtenir un résultat satisfaisant






La même chose s'est produite lorsque j'ai fait l'image hybride de Harrison Ford jeune et vieux. Lorsque j'ai prit les basses fréquences de vieux Harrison j'ai utiliser (4,6). Alors que pour les basses fréquences du jeune Harrison, j'ai utiliser (5,15).


En réfléchissant sur le genre d'image prendre pour faire mes hybrides, je n'ai pas pu m'empêcher de penser au tableau de Peach qui se transforme en Bowser dans Super Mario 64. J'ai été chercher les images originales. Mais résultat n'était pas excellent. Je pensais que c'était à cause de la taille des images originales (environ 214x219). Je n'ai pas pu centrer les yeux à cause de leur taille. FInalement je me suis rendu compte que c'est la couleur qui ne supportait pas bien le filtre gaussien. Pour mon meilleur résultat je n'ai même pas filtrer Peach.


Pour tester si c'était la taille le problème, j'ai décidé de faire une autre hybride Bowser-Peach, mais cette fois ci j'ai prit une image plus récente avec une meilleure résolution. J'ai obtenu les mêmes problèmes. J'en suis venu à la conclusion que le problème n'était pas la taille, mais le fait que les cartoons n'ont pas beaucoup de détails et se prête mal à 'l'hybridation'.

J'ai voulu faire un autre test en couleur. Pour ce faire j'ai utiliser un paysage Été - Hivers. En utilisant les basses fréquences de l'hivers, dès que je prennais un peu trop des hautes fréquences de l'été la neige apparaissait verte. J'ai donc essayer dans l'autre sens. J'avais beau augmenter le sigma des hautes fréquences sans grand changement. Dans les deux dernières photos au lieu d'augmenter le sigma, j'ai multiplier les hautes fréquences avant de les additionner. L'avant dernière photo j'ai multiplier les hautes fréquences par 2 et la dernière par 5.





Voici les images additionnelles que j'ai fait. Les sigmas sont dans le nom du fichier.






Crédits supplémentaires

Partie 2: Piles gaussienne et laplacienne

La pile gaussienne est obtenu en filtrant l'image original avec un filtre gaussien dont le sigma augmente de la façon suivante : sigma_base ^ (niveau + 1). Pour ce numéro j'ai utiliser 2 comme sigma_base.
La pile laplacienne est obtenu en soustrayant le niveau actuelle de la pile gaussienne avec son précédent. Ceci nous donnne des tranches de fréquence. Voici les piles gaussienne et laplacienne des 3 images fournis pour le TP :




Ci-dessous se trouve les piles pour l'image hybride Albert - Marilyn et Marilyn - Albert. Pour la première puisqu'on a utiliser des sigma plus élevé pour faire l'image hybride, on voit beaucoup moins de chevauchement entre les deux images dans la pile laplacienne. Dans la deuxième image puisque les sigmas étaient plus bas, on voit au 3ème niveau du laplacien que les deux images sont présentes dans cette tranche de fréquence.



Partie 3: Mélange multirésolution

Pour cette partie on prend la pile laplacienne des deux images et la pile gaussienne du masque et on les combines avec la formule laplacienne_img1 * masque + laplacienne_img2 * (1 - masque). Pour obtenir des bons résultats j'ai du modifier le comportement de ma fonction qui fait les piles. Au lieu d'utiliser sigma ^ (niveau de la pile) J'ai fait sigma * (niveau de la pile). Autrement les tranches de fréquences étaient trop large pour faire un joint lisse.


J'ai voulu commencer avec quelque chose de relativement simple. L'arrière plan de la tortue était du sable ce qui n'a pas beaucoup de détail et j'ai décidé de la mélanger à une autre photo qui contenait du sable. Le joint est lisse, mais la palette de couleur ne correspond pas. J'aurais probablement obtenu un meilleur résultat avec la technique des gradients.


Le masque n'est pas irrégulier, mais je voulait réessayer la photo du paysage à cause des résultats décevant lors de 'l'hybridation'. Les couleurs entre les deux images sont beaucoup trop différentes pour les jumeler de façon indistinctive, mais si on regarde le joint lui-même il n'y a pas d'incontinuité flagrante. Pour obtenir un meilleur résultat j'aurais probablement du mettre un gradient à même le masque pour aider. J'ai mit un gros sigma pour le masque mais cela a des limites.

Pour ma première photo personnalisée, j'ai décidé de mettre mon visage sur le couvert de Dragon Ball. Le résultat n'est pas très bon à cause du contrastre en une photo réelle et un dessin, ainsi que le fait que mon visage n'a pas les bonnes dimensions.


Puisque je n'ai pas réussis à devenir Sangoku, j'ai décidé de devenir Tien Shinhan à la place. (C'est un objectif plus modeste et plus facilement atteignable) Je suis honnêtement très satisfait du résultat.
Pour ma deuxième image je n'ai pas prit la peine d'effacer le reste de l'image. En mettant le nouvelle oeil directement sur l'ancienne image cela ma permit de choisir précisément où il allait arriver.


Voici comme demandé l'illustration du procédé. J'ai rajouter un offset de 0.5 à toute les images car sinon la plus part de l'information était clippé puisque les hautes fréquences varient autour de 0.

J'ai aussi été chercher l'illustration pour les images chargées en ton de gris Ça donne un résultat un peu plus visible.


p.s. J'ai considérer que mes 2 images personnalisées avec un masque irrégulier comptait à la fois pour le nombre d'image à masque irrégulier et pour les image avec nos propres photos. Faites moi signe si c'est pas le cas.


Sources des images

Tel que demander voici les sources des images que je prit sur les internets :