samedi 22 septembre 2012

retouche astrophoto avec ImageMagick

Cette semaine j'ai profité d'une petite nuit sans nuages ni Lune pour pointer mes objectifs vers la Nébuleuse NGC7000  (dite "Nébuleuse America " en raison de sa forme)  :


Derrière cette photo se cache en fait un important travail de post-traitement pour lequel j'ai utilisé la bibliothèque de traitement d'image ImageMagick


Un des gros défaut des APN de la gamme Canon EOS en astrophotographie est le manque de sensibilité dans le rouge profond. Ce manque de sensibilté affecte en particulier la raie d'émission H-alpha caractéristique des nébuleuses à émission qui sont  riches en hydrogène (comme NGC7000).   Ce défaut ne vient pas du capteur en lui même mais du filtre "IR-cut" utilisé pour réduire le bruit thermique : ce filtre censé couper le rayonnement infra-rouge "déborde" sur la partie visible du spectre jusqu'à la fameuse  raie H-alpha. Ce problème a été longuement discuté dans la communauté des astrophotographes à tel point que Canon a fini par sortir un nouveau modèle EOS destiné spécialement aux astrophotographes, le Canon EOS 60Da , plus sensible dans le rouge grâce à un nouveau filtre.

Pour contourner ce problème, sans acheter un 60Da,  il y avait jusqu'ici deux possibilité :
  • remplacer le filtre IR-cut par un filtre laissant passer la raie H-alpha, ce qui n'est pasfacile à faire soit même (cf l'excellent site de Ch. Buil ) ou peut couter assez cher (voir boutique la Clef des étoiles)
  • modifier les niveaux  d'intensité des différentes couches Rouge-Bleu-Vert de l'image pour rehausser artificiellement le rouge des nébuleuses tout en gardant le fond de ciel noir
la première solution est un choix obligé pour tous ceux qui recherchent un résultat "scientifiquement" correct mais la deuxième solution  est souvent employée pour rendre le résultat d'une photo plus esthétique. L'outils le plus couramment utilisé pour le faire est certainement photoshop, auquel je préfère l'alternative libre GIMP  , mais je trouve que pour ce genre de manipulations travailler en lignes de commandes avec une bibliothèque comme ImageMagick se révèle beaucoup plus efficace!  En effet, pour obtenir mon image de NGC7000 les quelques lignes suivantes ont suffit : 
convert NGC7000b.bmp \
        -fx 'exp(-((i-2200)^2+(j-1000)^2)/350^2)\
        +0.4*exp(-((i-2650)^2+(j-1100)^2)/150^2)' masque.bmp
convert NGC7000r.bmp masque.bmp -fx 'u*v' essai1.bmp
convert NGC7000b.bmp masque.bmp -fx 'u*(1-v)' essai2.bmp
convert essai1.bmp essai2.bmp -fx 'u+v' NGC7000.bmp


 explications  sur ce script :
  • à partir des images brutes créer deux images une NGC7000b.bmp avec un fond de ciel bien noir (en rehaussant le bleu)  une autre NGC7000r.bmp où la nébuleuse  à été mise en valeur (en rehaussant le rouge)
  • créer un "masque"  centrée sur les parties des nébuleuses qu'on veut rehausser  (ici deux zones de 350 et 150 pixel de rayon centrées autour des pixels de coordonnées (2200,1000) et (2650,1100) )
  • avec ce masque "extraire" la nébuleuse de l'image rouge (en multipliant par le masque) et "enlever" la nébuleuse de l'image bleu (en multipliant par le négatif du masque)
  • on obtient l'image finale NGC7000.bmp en additionnant les deux images précédentes

Voilà ce que donne les différentes étapes avec (dans l'ordre) masque.bmp, NGC7000r.bmp, NGC7000b.bmp, essai1.bmp,essai2.bmp, NGC7000.bmp :


la transition entre les zones correspondants aux deux images "bleu" et "rouge" n'est pas visible sur la photo finale car on a utilisé pour le profil du masque  des fonctions  Gaussiennes qui passe de 1 à 0 de manière rapide mais régulière donc sans créer d'effet de seuil.  J'ai retraité une ancienne image de la nébuleuse de la Lagune (M8)  prise il y a près de 5 ans avec la même technique  et le résultat est pas mal non plus :



Je sais que les puristes ont déjà dégainé leur lance-flamme pour bruler l'auteur d'une telle hérésie :-) Mais à bien y réfléchir y a-t-il plus de "triche" dans cette méthode que dans la modification d'une image à l'aide d'ondelettes, de filtres fréquentiels ou de masque flou  ( du temps de la photographie argentique) ...?

Aucun commentaire:

Enregistrer un commentaire

Pour écrire des formules mathématiques vous pouvez utiliser la syntaxe latex en mettant vos formules entre des "dollars" $ \$....\$ $ par exemple :
- $\sum_{n=1}^\infty {1\over n^2}={\pi^2\over 6}$ s'obtient avec \sum_{n=1}^\infty {1\over n^2}={\pi^2\over 6}
- $\mathbb R$ s'obtient avec {\mathbb R} et $\mathcal D$ s'obtient avec {\mathcal D}
- pour les crochets $\langle .,. \rangle$ dans les commentaires utilisez \langle .,. \rangle
vous pouvez écrire du html dans les commentaires :
- italique <i> ... </i> gras <b> ... </b>
- lien <a href="http://adresse "> .... </a>