PixInsight – Exemple 1 – Traitement
Nous avons décrit dans cet article, le prétraitement d’images brutes (Light) issues d’une session photographique pour aboutir à une image qui doit subir un traitement avant de fournir l’image finale que nous désirons afficher pour le régal de nos yeux
Cet article va décrire ce traitement à l’aide du logiciel PixInsight
Alors que l’on peut définir un ensemble d’étapes à réaliser pour le prétraitement, cela est moins vrai pour le traitement, qui lui est fortement lié à deux facteurs :
- Le type d’image : ce qui peut fonctionner sur une image ne peut pas fonctionner sur une autre, le traitement est fortement dépendant du contenu de l’image
- L’auteur du traitement : un traitement est très personnel, c’est comme une vision d’artiste, il n’y a pas une seule manière de voir l’image finale, les goûts de celui qui réalise le traitement influent sur le résultat final
Malgré tout on peut dégager quelques grands principes généraux qu’on retrouvera dans le traitement, c’est les variations sur ces principes qui donneront la touche personnelle sur l’image finale
Le traitement va s’effectuer en trois étapes
- Traitement sur l’image linéaire
- Transformation de l’image linéaire en image non linéaire
- Traitement sur l’image non linéaire
Traitement sur l’image linéaire
L’image « Master_Light_M8_M20.fit » issue du prétraitement est une image linéaire, c’est-à-dire que la valeur de chaque pixel est proportionnelle à l’intensité lumineuse reçue par le photosite correspondant du capteur de l’APN, à l’affichage elle est très sombre, pour la visualiser on utilise la fonction
du process icône <Voir_Image_Lineaire>
que l’on a défini lors du prétraitement
En désolidarisant les couches couleurs avec la fonction
on affiche l’image avec des couleurs réaliste
On va d’abord corriger le fond du ciel pour le rendre uniforme
Onglet Process Explorer -> BackgroundModelization -> DynamiqucBackgroundExtraction : on déplace l’icône sur l’espace de travail, je l’ai renommé « Correction_Manuelle_Fond_Du_Ciel »
On double-clic le process icône, la fenêtre <DynamicBackgroundExtraction> s’affiche : on précise les paramètres suivant
puis on clique sur le bouton [Generate]
On obtient alors l’image suivante
Des croix s’affichent sur l’image, certaines n’en comportent pas, on augmente le paramètre « Tolerance », puis on clique sur le bouton [Generate] jusqu’à ce que l’image contienne des croix sur son ensemble, pour cette image j’ai mis le paramètre « Tolerance » à la valeur 1.1, ce qui donne l’image suivante
Les croix doivent se situer uniquement sur le fond du ciel, il faut éventuellement supprimer les croix qui se trouvent sur les objets photographiés, on va pour cela zoomer sur les objets pour pouvoir supprimer les croix plus facilement. On clique sur une croix, elle devient verte, puis on clique sur
Ainsi sur M20
Après avoir supprimé les croix non désirées
On fera la même opération sur M8, et on obtient l’image suivante
Si des croix venaient à manquer à certains endroits du fond du ciel on peut en ajouter en cliquant sur la zone concernée
On peut sauvegarder ces données en cliquant sur
en bas de la fenêtre <DynamicBackgroundExtraction> et sans relâcher la souris on le déplace sur le process icône <Correction_Manuelle_Fond_Du_Ciel>
L’utilisation de ces croix se fait à partir de la zone « Target Image Correction »
- Correction : mode de correction du fond du ciel
- Subtraction : pour supprimer les effets de la pollution lumineuse, de gradient ou de la Lune
- Division : pour corriger un reste de vignetage ou les effets de la réfraction différentielle
On lance le processus avec
J’ai d’abord choisi « Subtraction »
Deux fenêtres s’affichent : <Master_Light_M8_M20_background> qui montre la correction effectuée, visualisée avec le process icône <Voir_Image_Lineaire> cela donne
et <Master_Light_M8_M20_DBE> qui montre l’image avec le fond corrigé (couches couleurs liées)
On peut comparer avec l’image de départ en faisant disparaître les croix avec
en bas de la fenêtre <DynamicBackgroundExtraction>
Pour voir si la correction est correcte on doit globalement conserver la même teinte d’image en cliquant plusieurs fois sur
en alternant
du process icône <Voir_Image_Lineaire>
L’image avec les couches couleurs non liées
J’ai refait la même opération avec « Division » : les données ayant été sauvegardées on retrouve les croix aux mêmes endroits, les deux images finales donnent
Pour la correction du fond du ciel
Image avec les couches couleurs liées
Image avec les couches couleurs non liées
Pour cette image la différence n’est pas flagrante, j’ai gardé la version « Subtraction »
On peut affiner la correction avec
Onglet Process Explorer -> BackgroundModelization -> AutomaticBackgroundExtractor : on déplace l’icône sur l’espace de travail, je l’ai renommé « Correction_Automatique_Fond_Du_Ciel »
On double-clic le process icône, la fenêtre < AutomaticBackgroundExtractor> s’affiche, on laisse les paramètres par défaut, dans la zone « Target Image Correction » on choisit « Subtraction » pour le paramètre « Correction »
On exécute le processus en cliquant sur
en bas de la fenêtre < AutomaticBackgroundExtractor>, on peut aussi déposer
sur l’image
L’image <Master_Light_M8_M20_DBE_ABE_backgound> montre qu’une correction de vignetage a été réalisée, on la visualise avec
du process icône <Voir_Image_Lineaire>
Image avec les couches couleurs liées
Image avec les couches couleurs non liées
Le choix de « Division » pour le paramètre « Correction » montre quasiment le même résultat
L’étape suivante concerne les étoiles : il s’agit d’améliorer leur netteté et de les rendre plus rondes pour certaines, sans être forcément nécessaire sur cette image elle ne peut qu’apporter des améliorations, utile pour la comprendre dans le cadre de cet exemple
On fait d’abord une copie de l’image : pour cela on clique sur l’onglet à gauche de l’image
et sans relâcher la souris on le déplace sur l’espace de travail, une nouvelle fenêtre nommée <Master_Light_M8_M20_DBE_ABE_clone> s’affiche
On clique sur
en bas de la fenêtre <ScreenTransFunction> (c’est la fenêtre qui s’ouvre quand on double-clic sur le process icône <Voir_Image_Lineaire>), l’image redevient sombre
Onglet Process Explorer -> IntensityTransformation -> HistogramTransformation : on déplace l’icône sur l’espace de travail, je l’ai nommé « Histogramme_Sur_Clone »
On double-clique sur le process icône, la fenêtre <HistogramTransformation> s’affiche
L’histogramme d’entrée est celui du bas, l’histogramme de sortie celui du haut
On clique
en bas de la fenêtre <HistogramTransformation> pour avoir un affichage en temps réel, la fenêtre <Real-Time Preview: HistogramTransformation> s’affiche
Sur l’histogramme d’entrée on va déplacer le curseur central vers la gauche afin d’obtenir un maximum de détails et d’étoiles
Pour avoir une action plus précise sur les curseur on utilise la fonction de zoom horizontal
On peut aussi déplacer le curseur de gauche vers la droite : on veillera à ne pas dépasser le pied du début de la courbe
Après déplacement des deux curseurs les histogrammes se présentent ainsi
et sur l’affichage en temps réel
Quand l’image dans la fenêtre <Real-Time Preview> vous satisfait, on peut la fermer, on applique alors l’histogramme sur l’image clone en déposant
situé en bas de la fenêtre <HistogramTransformation> sur l’image clone, celle-ci s’affiche alors comme
Onglet ProcessExplorer -> MaskGeneration -> StarMask : on déplace l’icône sur l’espace de travail, je l’ai renommé « Masque_Etoiles« , il va être utilisé pour appliquer l’opération uniquement sur les étoiles
On double-clique sur le process icône, la fenêtre <StarMask> s’affiche
On clique sur
situé en bas de la fenêtre <StarMask> et sans relâcher la souris on le dépose sur l’image clone, on obtient ainsi le masque <star_mask> qui va agir uniquement sur les étoiles
L’image clone se sert plus, on peut la fermer
Pour utiliser le masque on clique sur son onglet
et sans relâcher la souris on le déplace sous l’onglet de l’image <Master_Light_M8_M20_DBE_ABE>
Celle-ci devient rouge en grande partie : la couleur montre les parties de l’image qui seront protégées contre le traitement suivant
On peut cacher/montrer le masque en faisant un clic-droit sur l’image -> Mask -> Show Mask
On va créer une image « preview » pour faire nos essais avec le masque : clic-doit sur l’image
On définit une zone de l’image avec la souris
Un rectangle vert apparait autour de la zone ainsi qu’un onglet à gauche de l’image
On clique sur l’onglet <Preview01>
Onglet Process Explorer -> Deconvolution -> Deconvolution : on déplace l’icône sur l’espace de travail, je l’ai renommé « Correction_Des_Etoiles »
On double-clique le process icône, la fenêtre <Deconvolution> s’affiche
J’ai fait un essai avec les paramètres par défaut, sauf « Iterations » que j’ai mis à 1
On clique sur
situé en bas de la fenêtre <Deconvolution> et sans relâcher la souris on le dépose sur l’image <Preview01>
On peut annuler/activer l’effet de la déconvolution avec un clic-droit sur l’image
Avec les paramètres par défaut, il apparaît autour de certains étoiles une zone circulaire noire, ce qui n’est pas souhaitable, j’ai donc modifié ces paramètres jusqu’à obtenir quelque chose de satisfaisant
avec comme résultat
L’effet n’est très visible, les étoiles de l’image étant déjà relativement correctes
Une fois satisfait du résultat on peut l’appliquer à l’image entière toujours avec
que l’on dépose sur l’image <Master_Light_M8_M20_DBE_ABE>
On peut alors supprimer l’image <Preview01> avec un clic-droit sur l’onglet
ainsi que le masque avec un clic-droit sur l’image
L’image se présente ainsi
La suite concerne le bruit de fond que l’on essayer de réduire, il est surtout perceptible dans le fond du ciel, partie de l’image qui a reçu le moins de signal lumineux.
Nous allons de nouveau créer un masque pour n’agir que sur le fond du ciel
Comme précédemment on crée une image clone de l’image<Master_Light_M8_M20_DBE_ABE>
On clique sur
en bas de la fenêtre <ScreenTransFunction> (c’est la fenêtre qui s’ouvre quand on double-clic sur le process icône <Voir_Image_Lineaire>), l’image redevient sombre
Onglet Process Explorer -> IntensityTransformation -> HistogramTransformation : on déplace l’icône sur l’espace de travail, je l’ai nommé « Histogramme_Sur_Clone_Pour_Bruit_De_Fond »
On double-clique sur le process icône, la fenêtre <HistogramTransformation> s’affiche
On clique
en bas de la fenêtre <HistogramTransformation> pour avoir un affichage en temps réel, la fenêtre <Real-Time Preview: HistogramTransformation> s’affiche
Il s’agit cette fois de faire apparaître objets et étoiles et de rendre le fond du ciel le plus noir possible
le <Real-TimePreview> correspondant
Une fois satisfait du résultat, on ferme le <Real-TimePreview>, on applique alors l’histogramme sur l’image clone en déposant
situé en bas de la fenêtre <HistogramTransformation> sur l’image clone, celle-ci s’affiche alors comme
Cette image va être utilisée comme masque pour l’image <Master_Light_M8_M20_DBE_ABE>, on prend son onglet et on le dépose sous l’onglet de cette dernière
On rappelle que dans un masque ce sont les zones rouges qui sont protégées, celles qui ne subissent pas le traitement, hors ici on veut que ce soit le fond du ciel qui soit traité et non les étoiles, on va donc inverser le masque
Clic-droit sur l’image
Objets et étoiles sont maintenant protégés par le masque
On crée un « preview » sur une partie d’un objet et du fond du ciel
On sélectionne l’image <Preview01> et on cache le masque
Onglet Process Explorer -> Wavelets -> AtrousWaveletTransform : on déplace l’icône sur l’espace de travail, je l’ai renommé « Reduction_Bruit_Sur_Fond_Du_Ciel »
On double-clique sur le process icône, la fenêtre <ATrousWaveletTransform> s’affiche
On a laissé les paramètres par défaut, on a juste coché le paramètre « k-Sigma Noise Thresholding »
On clique
en bas de la fenêtre <ATrousWaveletTransform> pour avoir un affichage en temps réel, la fenêtre <Real-Time Preview: ATrousWaveletTransform> s’affiche, en cliquant
on alterne entre l’image avant la réduction du bruit
et l’image après la réduction du bruit
Le paramètre « Threshold » permet de doser le niveau de la réduction de bruit, pour notre image la valeur 3 donne un résultat correcte
On peut alors fermer la fenêtre <Real-Time Preview: ATrousWaveletTransform>, et supprimer l’image <Preview01>, puis on clique sur
situé en bas de la fenêtre <ATrousWaveletTransform> et sans relâcher la souris on le dépose sur l’image, on peut alors supprimer le masque avec clic-droit sur l’image
Une zone de l’image avant réduction du bruit
et après réduction du bruit
Nous allons maintenant nous préoccuper de l’équilibrage des couleurs
On neutralise d’abord le fond du ciel
Onglet Process Explorer -> ColorCalibration -> BackgroundNeutralization : on déplace l’icône sur l’espace de travail, je l’ai renommé « Neutralisation_Fond_Du_Ciel »
On crée une image <Preview> d’une zone du fond du ciel comportant peu d’étoiles
On double-clique sur le process icône <Neutralisation_Fond_Du_Ciel>, la fenêtre <BackgroundNeutralization> s’affiche
On clique sur
la fenêtre <Select Reference Image> s’affiche, on sélectionne l’image <Preview01>
On clique [OK]
On dépose
situé en bas de la fenêtre <BackgroundNeutralization> et sans relâcher la souris on le dépose sur l’image
Onglet Process Explorer -> ColorCalibration -> ColorCalibration : on déplace l’icône sur l’espace de travail, je l’ai renommé « Calibration_Des_Couleurs »
On crée un autre <Preview> qui englobe M20
On double-clique le process icône <Calibration_Des_Couleurs>, la fenêtre <ColorCalibration> s’affiche
On a indiqué l’image <Preview02> pour « White Reference » et <Preview01> pour « Background Reference »
On dépose
situé en bas de la fenêtre <ColorCalibration> et sans relâcher la souris on le dépose sur l’image
Comme vous le savez, la matrice de Bayer des capteurs APN comporte deux fois plus de pixels verts que de rouge et bleu, ce qui peut créer une légère dominante verte
Onglet Process Explorer -> NoiseReduction -> SCNR : on déplace l’icône sur l’espace de travail, je l’ai renommé « Supprime_Dominante_Verte »
On double-clique sur le process icône, la fenêtre <SCNR> s’affiche
On dépose
situé en bas de la fenêtre <SCNR> et sans relâcher la souris on le dépose sur l’image
Transformation de l’image linéaire en image non linéaire
On clique sur
à gauche de la fenêtre <ScreenTransFunction> (c’est la fenêtre qui s’ouvre quand on double-clic sur le process icône <Voir_Image_Lineaire>), puis sur
en bas de la fenêtre <ScreenTransFunction>, l’image redevient sombre
Onglet Process Explorer -> IntensityTransformations -> HistogramTransformation : on déplace l’icône sur l’espace de travail, je l’ai renommé « Conversion_Lineaire_Vers_Non_Lineaire »
On double-clique le process icône, la fenêtre <HistogramTransformation> s’affiche
Pour l’utilisation de ce process icône dans l’optique de convertir une image linéaire en image non-linéaire il convient de respecter deux règles :
- Ne jamais écrêter les hautes-lumières, sous peine de perdre des informations qui pourront être utiles plus tard
- Éviter au maximum d’écrêter des pixels dans les ombres, le ciel n’étant jamais parfaitement noir
Pour les ombres on surveille cette zone
On essaye de maintenir un pourcentage de pixels écrêtés inférieur à 1%, pour les hautes lumières on ne touche pas à ce paramètre
On clique
en bas de la fenêtre <HistogramTransformation> pour avoir un affichage en temps réel, la fenêtre <Real-Time Preview: HistogramTransformation> s’affiche
On positionne
On sélectionne
On ajuste le point noir (curseur de gauche) en début de l’histogramme, pour être plus précis on ajuste le zoom horizontal
On ajuste le « Gamma » avec le curseur des tons moyens de façon à faire apparaître une image correcte
L’image <Preview> correspondante
On sélectionne
On déplace le curseur de gauche pour amener l’histogramme de sortie correspondant à 0
On pourra agir sur le zoom pour affiner le réglage
On réalise le même réglage avec
et
Ce qui donne le <Preview>
On peut fermer la fenêtre <Preview> et cliquer sur
en bas de la fenêtre <HistogramTransformation>, pour l’appliquer à l’image complète
Traitement sur l’image non linéaire
On va maintenant renforcer le contraste et la saturation des couleurs, ceci est assez subjectif, l’ajustement se fera en fonction de goûts personnels
Onglet Process Explorer -> IntensityTransformations -> CurvesTransformation : on déplace l’icône sur l’espace de travail, je l’ai renommé « Contraste_Et_Saturation_Des_Couleurs »
On double-clique sur le process icône, la fenêtre <> s’affiche, on clique
en bas de la fenêtre <CurvesTransformation> pour avoir un affichage en temps réel, la fenêtre <Real-Time Preview: CurvesTransformation> s’affiche
On sélectionne
et on crée une courbe en S en vérifiant l’effet dans la fenêtre <Preview>
Puis on clique sur
pour compenser la perte de luminosité
Enfin on sélectionne
pour augmenter la saturation des couleurs
Le tout c’est de trouver le bon équilibre entre vos goûts personnels et une représentation réaliste
On peut fermer la fenêtre <Preview>
et cliquer sur
en bas de la fenêtre <CurvesTransformation>, pour l’appliquer à l’image complète
On peut dans certains cas répéter le processus en étant plus léger sur les modifications
On va terminer en renforçant la netteté
Onglet Process Explorer -> Convolution -> UnsharpMask : on déplace l’icône sur l’espace de travail, je l’ai renommé « Augmentation_De_La_Nettete »
On double-clique sur le process icône, la fenêtre <> s’affiche, j’ai utilisé les paramètres suivant
On clique sur
en bas de la fenêtre <UnsharpMask>, pour l’appliquer à l’image complète
Cliquer sur l’image pour un affichage en haute résolution de l’image
On sauvegarde l’image au format « fit » et au format « jpeg« , ce dernier pour un affichage sur le web
Conclusion
Ceci étant ma première utilisation de PixInsight, je suis loin d’en maîtriser toutes les possibilités, le résultat obtenu peut sûrement être amélioré, les outils utilisés ne sont pas les seuls qui peuvent amener à un bon résultat, mais à travers cet exemple on devine le formidable potentiel de PixInsight