Assemblage de photos

Création et assemblage de panoramas

Algorithme de morphage

Lors de ce travail, il sera question d'implémenter différents algorithmes comme Ransac et ANMS ainsi que des opérations sur des matrics d'homographie afin de créer des panoramas.

Description du projet

Le but du projet est de créer des panoramas assemblées à partir de plusieurs images différentes

Afin d'y parvenir, il sera nécessaire de générer des matrices d'homographies à partir de points, appliquer le résultat de cette homographie à une image et à placer cette image dans une image générale du panorama.


Partie 0

Dans le cadre de la partie 0 , il est demandé d'appliquer la transformation à l'image de Jean-Francois Lalonde à partir d'une homographie donnée. Le résultat est le suivant:

Image de Jean-Francois Lalonde transformée

Partie 1

Tout d'abord, dans cette partie, il est demandé d'implenter la fonction calculerHomographie permettant de trouver une matrice d'homographie à partir de différents points correspondants dans deux images différentes

Une fois les matrices d'homographies calculées pour les images 1 et 3 avec l'image 2, il suffit d'appliquer les transformations homographiques à ces deux images. Grâce au offset retourné par la fonction, on peut ensuite calculer la taille de l'image totale résultante et aller placer les différentes images à leurs offsets respectifs

Panorama 1
Panorama 1 obtenus avec points illustrés
Panorama 2
Panorama 2 obtenus avec points illustrés
Panorama 3
Panorama 3 obtenus avec points illustrés

Les résultats obtenus ne sont pas excellent à la jonction entre les images car aucune technique n'a été utilisé pour adoucir le résultat là où les images se chevauchent. Il aurait été nécessaire de faire une moyenne des images superposées à ces endroits.

Partie 2

Tout d'abord, dans cette partie, il est nécessaire d'implémenter le détecteur Harris afin de trouver des caractéristiques de coin dans l'image. Une fois ces caractéristiques trouvées, on extrait un descripteur sur chacunes des caractéristiques trouvées précèdemment. Par la suite, il faut apparier ces descripteurs entre les deux images en effectuant un calcul de distance. Finalement, on implémente RANSAC pour effectuer une homographie sur 4 points comme dans la partie précèdante.

Encore une fois, la technique utilisée pour déplacer les images dans l'image résultante était d'utiliser une image centrale comme image de référence (celle-ci n'étant jamais transformée) puis de transformer les autres images tours à tours par rapport à celle-ci. Lorsque certaines images ne touchait pas directement à l'image centrale comme dans le cas du pont de San francisco, j'ai effectué des transformations en cascade avec d'obtenir la bonne image résultante.

Appariement automatique

Panorama 1
Panorama 1 obtenus avec points illustrés
Panorama 2
Panorama 2 obtenus avec points illustrés
Panorama 3
Panorama 3 obtenus avec points illustrés

Encore une fois, comme au numéro précèdant, aucune technique n'a été utilisée afin de gérer les intersections entre les images. Ainsi des coupures noires apparaissent à certains endroits dans les images. Il aurait été intéressant d'utiliser un masque binaire afin de masque ces régions avant d'assemble le panorama.

De plus, l'algorithme permettant de calculer la taille d'image finale résultante semble parfois causé problème comme on peut observer dans l'image du pont de San Francisco, le nombre de colonnes calculées pour l'image résultante est trop grand.

Partie 3

Mes photos

Image gauche
Image centrale
Image droite
Panorama 1 personnel
Panorama1 personnel avec points illustrés
Image gauche
Image centrale
Image droite
Panorama 2 personnel
Panorama 2 personnel avec points illustrés