Interpolation et recalage#

Comparaison de plusieurs types d’interpolation#

  • Comparez le résultat produit par une interpolation d’ordre 0 (plus proche voisin), d’ordre 1 (bilinéaire) et d’ordre 3 (bicubique) sur l’image echiquier.png. Pour cela, effectuer 9 rotations successives de 10° chacune avec skimage.transform.rotate en prenant soin de transformer l’image en float avec skimage.util.img_as_float.

Comparaison de plusieurs transformations géométriques#

  • Sur l’image schtroumpf.jpg, appliquez les transformations suivantes avec skimage.transform.warp :

    • une translation de 100 pixels vers la droite et 50 pixels vers le bas,

    • une rotation de \(\pi/4\) radians,

    • la combinaison des deux transformations précédentes,

    • une réduction de la taille de l’image d’un facteur 0,7,

    • un cisaillement d’angle \(\pi/6\),

    • une homographie dont vous choisirez les paramètres.

La matrice de transformation peut être définie simplement avec les fonctions suivantes :

  • skimage.transform.EuclideanTransform : transformation rigide ou euclidienne (3 paramètres),

  • skimage.transform.AffineTransform : transformation affine (6 paramètres),

  • skimage.transform.ProjectiveTransform : homographie (9 paramètres).

Recalage#

L’objectif est d’effectuer le recalage de l’image irm2.png sur l’image irm1.png. On sait que l’image a subi une rotation autour du centre de l’image, en plus d’autre dégradations. Le critère de similarité est l’erreur quadratique moyenne (EQM) entre les images \(f_1\) et \(f_2\), toutes deux de taille \(M \times N\) :

\[ \mathrm{EQM} = \frac{1}{MN} \sum_{m,n} \left( f_1(m,n)-f_2(m,n) \right)^2. \]
  • Implémentez l’optimisation de l’EQM, avec une simple recherche exhaustive, pour déterminer le meilleur angle de rotation pour effectuer le recalage.