TP2: On s'amuse en fréquences (Rosalie Kletzander)

Partie 0: L'accentuation des détails (sharpening)

Pour l'accentuation, une image laplacienne (obtenu par soustraction d'une gaussienne de l'image originale) est additionné à l'image de base.
originale accentuée originale accentuée

Partie 1: Images hybrides

L'algorithme

En général, l'algorithme prend deux images, calcule les basses fréquences de l'une (avec un filtre gaussien) et les hautes fréquences de l'autre (l'image - l'image filtrée avec un filtre gaussien) et les additionne. L'alignement des deux images est fait par une fonction qui a été mise à notre disposition. Pour obtenir des bons résultats, il faut ajuster les sigmas pour les filtres gaussiens et aussi l'intensité de l'image de hautes fréquences (par multiplication).

originale originale hybride
1
2
source source
3
source source
4
source source
5
source source

Images supplémentaires

La couleur

C'est inutile d'essayer de garder la couleur dans les images de hautes fréquences, car ils sont exclusivement composées d'arêtes. Donc ils n'ont pas de couleur. Cependant, garder la couleur pour les images de basses fréquences peut vraiment améliorer l'effet. Le fait important pour que cela fonctionne bien est de trouver des images où les couleurs marchent aussi pour l'image de hautes fréquences. Ṕar exemple, image 6 marche moins bien en couleur, parce que le cadre orange du vélo et les vêtements ne font pas de belles couleurs pour un loup. Mais il y a des exemples moins évidents aussi. Si on regarde image 8 et 9, on peut voir que j'ai laissé 8 en couleur mais pas 9. À cause de l'alignement presque parfait des lèvres dans 8, le résultat est excellent en couleur. En même temps, les lèvres ne sont pas aussi bien alignées dans 9 et les lèvres rouges de l'image en basses fréquences dérange l'effet.

Le prétraitement des images

Pour quelques images, j'ai prétraité l'image avant d'extraire les hautes fréquences, par exemple pour ne pas avoir des détails partout (p.e. 6). Pour l'image 5 j'ai aussi essayé plusieurs versions et là j'ai découvert qu'invertir les couleurs avant d'extraire les détails donne des bons effets.

originale originale hybride
6 Mufasa dans les nuages
source source
7 Morphage entre homme et femme (mon chum et moi)
privée privée
8 L'effet marche super bien ici
privée privée
9 Comme j'ai mentionné en haut, les lèvres sont aussi mal alignées que l'image en couleur ne marche pas bien.
privée privée
10 Ici, on voit encore un peu le vélo et la personne même quand on regarde l'image de près. Mais c'était voulu pour rendre l'image un peu artistique. Sinon il fallait augmenter le sigma pour enlever encore plus les hautes fréquences.
image privée source
11 Moi en 1996 vs moi en 2016
privée privée

Fails (juste pour rire)

Quand les variables ne sont pas bonnes, on atteint des résultats bizarres, drôles et inquiétants. Je me suis autant amusée que je ne voulais pas vous en priver ;)
1.
On commence doucement avec le chaton démon. Le tigre de l'image de base était évidemment un peu trop aggressif et parce qu'il manquait d'oreilles, on mélange trop les images. J'ai finalement décidé d'utiliser un autre tigre
2.
Il y a vraiment des effets bizarres quand on mélange deux images d'une personne à deux ages différents. Ici, l'intensité des détails est trop haut par rapport à l'image des basses fréquences. Et parce que les charactéristiques vont aussi bien ensemble, cela me donne la tête d'enfant.
3.
J'ai aussi essayé de changer les images par rapport aux fréquences. Le résultat était encore pire.
4.
Mais rien est aussi affreux que ce monstre-là. J'ai tout de suite décidé de pas utiliser un image où on voit les dents. Il y a quelque chose inquiétante avec des dents superposées sur quelque chose d'autre.

Analyse fréquentielle

originale
transformée de Fourier
passe bas et passe haut Ici on voit que les basses fréquences ont été enlevées à droite (la ligne claire au centre n'est plus là) et les hautes fréquences ont été enlevées à gauche (les rayons aux côtés ne sont plus là, seulement le centre reste)
image finale avec fréquences Le résultat est clairement l'addition des deux images précédentes.

Partie 3: Piles gaussiennes et laplaciennes

Les piles laplaciennes contiennent des bandes de fréquences d'une image. On les crée en faisant une pile gaussienne (une suite d'images filtrées par un filtre gaussien avec un sigma de plus en plus grand). Pour obtenir les bandes différentes, on subtrahit toujours les deux images filtrées successives. Finalement, on stocke les bandes différentes et la dernière image filtrée pour pouvoir reconstruire l'image de base

La fonction stacks cree une pile laplacienne (en utilisant une pile gaussienne). On peut voir les bandes de fréquences distinctes dans les exemples. Pour reconstruire une image à partir d'une telle pile, on peut utiliser la foncion rebuild_stacks.

Dali
le "tigron"

Pyramide gaussienne et laplacienne

Pour sauver de l'espace dans la mémoire (ce qui est vraiment pertinant surtout quand on traite des images de grande taille), on peut implanter une pyramide en lieu d'une pile. Cela veut dire que à chaque couche de la pyramide, l'image filtrée est échantillonnée pour réduire la taille (p.e. dans mon code par un facteur de 2). Sinon le processus est pareil à la pile.

Pour reconstruire l'image, il faut "dééchantillonner" (upsample) l'image avant de l'additionner. Pour eviter des effets aliasing, j'utilise un filtre gaussien après chaque dééchantillonage. Naturellement l'image reconstruite n'est pas exactement la même car des informations ont été perdues en faisant l'échantillonnage.

Les "couches" de la pyramide affichées ont été redimensionnées pour l'affichage, comme ça on voit bien le changement de résolution. Le ratio de l'image change aussi un petit peu à cause de l'échantillonnage.

Dali en pyramide
le "tigron"
reconstruction
à partir de la pyramide
originale reconstruction
à partir de la pyramide
originale

Partie 4: Mélange multirésolution

Approche

Pour mélanger deux images sur les fréquences différentes, il faut utiliser les piles gaussiennes/laplaciennes de l'exercise précédent. Pour chaque image, on crée d'abord les piles (qui consitituent des bandes de fréquences différentes). Puis on crée une "pile" de la masque qui contient la masque avec des fréquences de moins au moins hautes (par exemple en utilisant un filtre gaussien de plus en plus fort). Après on multiplie la masque avec la première image et l'inverse de la masque avec la deuxième image. Cela donne des images avec une bordure de moins en moins dure (avec moins de fréquences hautes) pour les fréquences les plus en plus bas. Ces images sont affichées en bas: Le premier rang contient les bandes de fréquences de la première image, multiplié par la masque et le deuxième rang contient ceux de la deuxième image. Puis on additionne les images, chaque bande de fréquence pour soi (première image du premier rang + première image du deuxième etc). Cela donne le troisième rang, la pile du résultat, avec duquel on peut (re)construire une image en utilisant la fonction rebuild_stacks.

bande de fréquence masquée (sigma: 1) bande de fréquence masquée (sigma: 2) bande de fréquence masquée (sigma: 4) bande de fréquence masquée (sigma: 8) bande de fréquence masquée (sigma: 16) bande de fréquence masquée (sigma: 32)
lion
dent-de-lion
addition des deux

Utilisation de couleur

Pour pouvoir utiliser de la couleur d'une façon réaliste, il faut souvent ajuster les images de base à la main car l'algorithme implanté ignore complètement la couleur. Une exemple est en bas, où j'ai changé la couleur du lion pour lui rendre aussi jaune que la dent-de-lion.

Images mélangées

originale originale masque mélange
De loin, le résultat est assez bon, si on regarde de près, on voit un peu la bordure. Ici, j'ai enlevé la couleur parce que c'était trop difficile à mélanger la neige avec l'eau.
source source
Comme j'ai mentionné en haut, j'ai changé la couleur du lion avant de mélanger les images. Le résultat est assez bon.
source source
Ici il y a des régions où la bordure est presque invisible, mais aussi des régions où on la voit bien (p.e. entre 8h et 9h). Cependant, c'est difficile à dire quelles structures marchent bien.
source source
Pour cette image, je n'ai pas changé les couleurs, et cela apparaît un peu sur le résultat.
privée source
Ici on voit bien que ce n'est pas seulement la couleur que a un effet sur la bordure mais aussi la luminosité. C'était très difficile de bien ajuster les luminosités et le résultat n'est pas parfait.
privée privée
Cependant, cet mélange a vraiment bien fonctionné. Le fait que les deux images ont été fait au même endroit avec la même lumière simplifie extrêmement le mélange.
privée privée

Dernière remarque

Ce qui est vraiment remarquable est que j'ai fait un traitement du dernier image à la main il y a quelques ans pour un autre tp (et oui c'était voulu que c'est affreux). Quand on compare les résultats, ils sont très semblables, mais j'ai pris beaucoup moins de temps cette fois-ci.

traitement à la main traitement automatique