Léo Coquio
Le but de cette partie est de pouvoir appliquer une homographie à une image et de récupérer l'image transformée.
On cherche tout d'abord à déterminer la taille de la nouvelle image en calculant l'image des quatres coins. On peut ensuite déterminer la position et couleur de chaque point en utilisant la matrice inverse de la transformation.
Après avoir vu comment transformer une image suivant une matrice e transformation, on cherche à créer des panoramas en déterminant manuellement certains points caractéristiques entre deux images pour déterminer l'homographie qui lie les deux. Comme la transformation est une homographie, il nous faut au moins 4 paires de points pour trouver celle-ci.
La première étape est donc de définir les couples de points entre chaque paire d'images
Il faut ensuite déterminer la matrice homographique H entre les images.
Pour cela on utilise la fonction "calculerHomographie" qui prend en entrée les deux nuages de points. On remarque que la précision des
coordonnées entre les points est très dure à avoir et une petite erreur peut causer une erreur importante sur le calcul de la matrice
de transformation.
Une fois la transformée trouvée on utilise la fonction développée dans la partie précédente pour trouver l'image transformée.
Enfin on projette les images dans un même plan pour obtenir le panorama.
Je n'ai pas réussi à fusionner les images de manière convaincante d'où l'abs
Bien évidemment il n'est pas envisageable de sélectionner les points manuellement pour créer des panoramiques. Il faut donc créer une méthode automatique pour pallier à cela. On va donc utiliser le détecteur de coins Harris pour trouver des points caractéristiques dans chaque image. Ensuite il a fallu déterminer un descripteur pour chaque point caractéristique. On utilise la méthode décrite dans l'article "Multi-Image Matching using Multi-Scale Oriented Patches" par Brown et coll.
Pour extraire un descripteur, on échantillonne une fenêtre de 8*8 pixels autour du point caractéristique pour ensuite la redimensionner en 40*40 pour qu'elle soit légèrement floue. Voici quelques exemples:
Il faut ensuite normaliser chacun des descripteurs en appliquant à tous la même moyenne et le même écart-type pour éviter les changements dû à un éclairage différent par exemple. La moyenne de chaque descripteur est donc déplacée à 0 et l'écat-type à 1.
Il faut par la suite appareiller les coins entre deux images. Pour cela on calcule pour chaque couple possible de descripteurs la somme des moindres
carrés. Plus le résultat est faible, plus la possibilité d'être sur un inlier est élevée.
On fixe ensuite un seuil à la SSD pour définir la limite entre inliers et outliers.
Malheureusement lors de l'implantation de RANSAC la présence de beaucoup trop de faux-positifs ne faisait pas converger le problème vers les bonnes transformations. Je n'ai donc pas pu continuer.