TP2: On s'amuse en fréquences

0. Réchauffement

La technique utilisée est d'isoler les hautes fréquences pour les amplifiés sur l'image de base. Pour isoler les hautes fréquences, on peut soustraire l'image de base par la même image ou on applique un filtre gaussien. Par la suite, le résultat peut être additionné à l'image de base en appliquant un facteur pour ajuster l'accentuation.

Résultats
Code: python part0.py img/Albert_Einstein.png 80
Avant Après
Original
Après
Code: python part0.py img/Marilyn_Monroe.png 80
Original
Après

1. Images hybrides

Résultats
Original (basse fréquence) Original (haute fréquence) Grayscale (défault) RGB (-c) Haute fréquence RGB (-H)
python part1.py img/Albert_Einstein.png img/Marilyn_Monroe.png 2 3 -a
low
high
Grayscale
python part1.py img/shiba/a_shiba.jpg img/shiba/b_pug.jpg 1 2
low
high
Grayscale
RGB
RGBH
python part1.py img/apple/* 1 2
low
high
Grayscale
RGB
RGBH
python part1.py img/morse/* 1 0.6
low
high
Grayscale
RGB
RGBH
python part1.py img/trump/a_trump.jpg img/baby.jpg 3 35
low
high
Grayscale
RGB
RGBH

On remarque que la couleur appliquée seulement sur les autres fréquences augmente permet de mieux voir la silhouette en haut fréquence, mais la couleur disparaît quand on regarde l'image plus petite.

Analyse fréquentielle
Image FFT
python part1.py img/shiba/a_shiba.jpg img/shiba/b_pug.jpg -n
Image
Original a
FFT
Image
Original b
FFT
Image
haute fréquence
FFT
Image
Basse fréquence
FFT
Image
Résultat
FFT

2. Piles gaussienne et laplacienne

Pour les images suivantes, la première ligne est la pile gaussienne et la seconde est la pile laplacienne. Dans le cas de la pile laplacienne, la dernière image est la même que celle de la pile gaussienne. De plus, les images de la pile gaussienne sont visualisées sur un seul canal et la fonction skimage.exposure.equalize_hist est utilisée. Ceci s'applique seulement à l'affichage est permet de mieux visualiser.

Lincoln et Gala python part2.py img/lincoln.jpg 5

stack

Shipug Inu python part2.py img/shiba.jpg 5

stack

3. Mélange multirésolution

L'approche utilisée est de générer une pile laplacienne pour les deux images et une pile gaussienne pour le masque. Par la suite, la pile du masque est multipliée aux piles des images. Pour finir, les deux piles sont rapportées sur une seule image puis additionnées ensemble pour donner une seule image.

La figure suivante illustre cette approche où les piles laplaciennes ont été multipliées par la pile gaussienne du masque:

Explication

Original (Noir) Original (Blanc) Masque Résultat
Pommange python part3.py img/pommanche/*
black
white
mask
res
Image 1 python part3.py img/lena/*
black
white
mask
res
Image 2 python part3.py img/shiba/*
black
white
mask
res
Image 3 python part3.py img/face/*
black
white
mask
res
Personnel 1 python part3.py img/the_ring/*
black
white
mask
res
Personnel 2 python part3.py img/skidoo/*
black
white
mask
res

3.1 Transfert de style

Voici l'approche utilisée pour réaliser le transfert de style:

  1. Calculer une pile laplacienne pour les deux images (entrée et exemple)
  2. Sur chaque couche des deux piles calculées l'énergie locale, soit appliquer un filtre gaussien sur la couche au carrée
  3. Calculer le gain en à partir des couches d'énergie locale des deux images
  4. Multiplier le gain avec la pile laplacienne de l'image d'entrée et sommer le tous
  5. Ajouter le résidu (dernière couche de la pile laplacienne) de l'image d'exemple

ref
Source : SIGGRAPH 2014

Seulement le transfert de style a été implémenté et la partie pour aligner les visages et les différents masques a été ignorée.

Entrée Exemple Mon résultat SIGGRAPH 2014 (Code Matlab de référence)
python style_transfert.py img/style_transfert/flickr2_0.png img/style_transfert/kelco_13.png -g
Original
exemple
exemple
exemple
python style_transfert.py img/style_transfert/flickr2_0.png img/style_transfert/martin_0.png
Original
exemple
exemple
exemple
python style_transfert.py img/style_transfert/flickr2_1.png img/style_transfert/kelco_17.png -g
Original
exemple
exemple
exemple
python style_transfert.py img/trump/* -g
Original
exemple
exemple

Les résultats précédents montrent que l'alignement des visages et les masques donnent une meilleure apparence finale. Cependant, on obtient de bons résultats quand même.