Methode de morphing pour le recalage des images planetaires


 


Image prise au pic du Midi, T1M, Copyright F.Colas, J.Lecacheux

Quand on s'amuse a prendre des images de planetes, on ne se limite pas en general a prendre une seule image. On se retrouve souvent avec des tonnes d'images. Apres avoir selectionne les meilleures, on essaye de les additionner pour en augmenter le rapport signal sur bruit, et faire ressortir les plus fins details avec un masque flou par exemple.
Voila pour le cote basic.

Parlons maintenant des algorithmes. L'addition ne pose pas de problemes, il s'agit plutot d'etre capable de superposer les images les unes sur les autres.
Parmi les algorithmes les plus connus ont trouve tout d'abord le blink, qui consiste a recaler les images a l'oeil et au doigté en faisant clignoter celles-ci les unes sur les autres et en jouant du clavier, et puis il existe la methode par intercorrelation dans le domaine spatial ou avec Fourier(dans Prism, il existe les 2 methodes). Il y a aussi d'autres methodes plus compliquees
Pour encore plus d'infos, je ne saurais vous conseiller l'excellente documentation de Prism, ecrite par Stephane Charbonnel.

Or toutes ces methodes ont un defaut majeur, elles ne prennent pas en compte les deformations/distorsions des images qui sont dues a la turbulence : c'est l'angle isoplanetique . Ce angle defini une region de coherence ou le front d'onde est invariant : il est de quelques secondes d'arc dans le visible comparé a une planete de plusieurs dizaines de secondes d'arc de diametre. La planete est completement distordue.

Habituellement, une translation sur les images est appliqué, on dit qu'il s'agit d'une transformation du premier ordre : elle ne compense en rien les distorsions de la planete.
Sur la "video" de Saturne (celle qui clignote, juste en dessous), on essaye de superposer 2 images de saturne, prises avec le meme telescope et a quelques secondes d'intervalle. Or, il n'est pas possible superposer l'ensemble de la planete car l'echelle est differente. Quand on veut recadrer le haut, on perd le bas, et inversement.


Cet effet est du a l'atmosphere, lorsqu'on utilise un temps de pose tres court pour figer la turbulence. Malgré la resolution elevee sur de petits details, on a des effets de zoom et des deformations a des echelles plus grandes.
Si on ne possede pas de telescope spatial dans son jardin, histoire de s'affranchir de la turbulence, on peut toujours essayer de trouver une solution logicielle. Apres tout en France on a pas de HST, mais on a des idees (on le rabache assez souvent).
Il suffit alors de redeformer les images afin d'ajuster le haut avec le bas, et les morceaux les uns avec les autres. On appelle cette transformation du morphing.


Parlons maintenant de choses serieuses, de maths.... si vous avez deja la nausee, reportez vous directement au chapitre des resultats, un peu plus bas.
En gros, on veut trouver une fonction mathematique qui tranforme une image vers sa version redeformee, et qui va se superposer le mieux possible avec l'image qu'on veut additionner. On peut utiliser pour cela un polynome (p(x,y)=a+b.x+c.y+d.x^2.....).
On se donne ensuite un critere mathematique, base sur les moindres carres qui va nous permettre de determiner la solution optimale :
Min((I1-I2)^2)......
Si vous voulez toujours en savoir plus, cliquez ici.

 

Les resultats

Apres quelques secondes de calcul, le logiciel superpose au mieux les 2 images. On peut maintenant les additionner en toute quietude, ou presque.

Avant

et apres...

 

 

Le cote pratique

On peut trouver cet algorithme dans PrismV5 (pour bientot quelques piastres seulement...).

L'interface dans Prism se trouve sous la forme suivante:

- Le parametre "Degre du polynome" indique la complexite avec laquelle on va deformer l'image. Un degre 0 correspond a une translation toute bete. Un degre 1 est plus complique (modification de l'echelle, ...), un degre 2 est encore plus complique, et ainsi de suite, avec des temps de calcul d'autant plus longs.
Il ne faut pas abuser de ce parametre, ce qui veut dire ne pas mettre 100... ou meme 10.

- Le parametre "Nombre d'iteration" permet de donner le nombre de boucle de calcul qu'on accorde a l'agorithme pour se rapprocher de la solution. Plus on utilise un polynome de degre eleve, et plus ce parametre a tendance a etre eleve, avec des temps de calcul toujours plus longs. Une moyenne de 15 pour un polynome de degre 2 semble etre largement suffisante.

-Le logiciel vous demande ensuite de selectionner les 2 images que vous voulez superposer.

 

Tips and tricks (astuces et deboires):

Les images doivent satisfaire a une minimum de critere.

- Tout d'abord, avant de lancer l'algo, la planete doit obligatoirement se recouper entre les 2 images. Un morceau de la planete doit manger un autre morceau de la planete lorqu'on superpose les images. Dans le cas contraire, l'algo ne peut pas converger.

- Il est conseillé aussi d'avoir une moyenne nulle sur le fond de l'image, meme si ce n'est pas indispensable. Pour les matheux, ca rend le critere sur les moindres carres un peu plus convexe et donc plus facile a resoudre.

- Il ne faut pas non plus avoir de pixels parasites dans l'image.
Exemple: Dans l'image suivante, les contours ont des valeurs aberrantes (pixels brillants).


Il faut eliminer ces pixels aberrants qui ne correspondent a aucune realite physique. On peut remplacer ces valeurs par la moyenne du fond de ciel.
Dans le cas contraire, on s'expose a avoir des images plutot originales, pas toujours moches :

 

- Dernier conseil, il est possible que l'algo echoue (ce n'est pas toujours le cas) si l'ensemble de l'objet n'est pas visible, comme pour les images suivantes:

Pour la Lune, dont seulement un morceau est generalement visible, ca peut etre delicat mais ca doit bien marcher aussi.

 

 

Vos commentaires et remarques sont les bienvenus a bgaillar@eso.org.
Boris Gaillard