Aide IRIS
Applanir le fond de ciel
 

Retrait du gradient de fond de ciel (méthode polynomiale)

Procédure manuelle

Charger l'image à traiter image (ici une image de la comète C/2004 Q2 - Machholz acquise le 11 janvier 2005 avec un Canon EOS 20D et un téléobjectif de 400 mm f/5.6). Vous pouvez télécharger cette image ici (800 kb). Taper la commande POINTON depuis la console (elle n'a pas de paramètres) :

>POINTON

Le pointeur de souris change d'aspect. En cliquant dans l'image vous sélectionnez un point qui servira à calculer un fond de ciel synthétique. Ce fond sera soustrait dans un deuxième temps à l'image traitée. Pointer l'image en dehors de la zone occupée par la comète et éviter les étoiles bien sur. Il faut un peu de soin. Vous avez droit à 3500 pointages !


Résultat du pointage manuel.

Quant les points sont jugé réparti uniformément et en nombre suffisant, vous pouvez calculer le fond de ciel artificiel. Celui-ci correspond à un ajustement polynomial passant par les points sélectionnés. Ici on utilise un polynôme de degrés 3, qui est un bon choix (un polynôme de degrés trop élevé peut devenir instable et produire des artefact dans le résultat - faire des essais).  La commande utilisée est POLY, avec comme paramètre, le degré du polynôme :

>POLY 3

Pour calculer le fond synthétique proprement dit, lancer ensuite la commande SYNTHE (elle n'a pas de paramètres) :

>SYNTHE

Voici le résultat :

Sauvegardez le dans un fichier intermédiaire, par exemple :

>SAVE SKY

Recharger l'image à traiter et soustraire le fond de ciel synthétique (ici, on ajoute une constante de 500 à tous les pixels - le second paramètre de la commande SUB - pour faciliter la visualisation) :

>LOAD COMET
>SUB SKY 500

Le résultat

Pour sortir du mode pointage et retrouver la forme classique du pointeur de souris, faire POINTOFF :

>POINTOFF

Pour apprécier la qualité de la correction, on peut comparer l'aspect du fond de ciel avant et après correction. Une visualisation en négatif est par ailleurs appropriée pour distinguer les parties les plus faibles de l'image. L''image couleur est au préalable convertie en une image noir et blanc grace à l'outil 48 bits vers 16 bits du menu Photo numérique :


A gauche, l'image avant le traitement du fond de ciel. A droite, après correction. L'intéret esthétique de la correction est évident, mais elle révèle aussi de nouveaux détails dans l'image, avec une valeur photométrique bien supérieure. La tache ovale vers le centre est la nébuleuse NGC1333.

Méthode automatique

Voir ici un autre exemple

Voici l'image à traiter, toujours notre image de comète, prise en milieu urbain :

Image de la comète C/2004 Q2 Machholz prise dans des conditions urbaines (voir ici pour des détails). La pollution lumineuse produit un gradient de lumière très significatif et désagréable. Ne pas confondre se phénomène avec un défaut de flat-field (i.e. une variation de sensibilité du détecter suivant l'endroit où on se trouve dans l'image). Nous n'allons ici que corriger que les erreurs additives (apport de lumière parasite dans cet exemple).

Etape 1

Charger l'image est calculer un masque pour isoler le fond de ciel. La commande appropriée pour cela est BIN_DOWN. Le paramètre de cette commande est le niveau approximatif du fond de ciel (valeur qui peut être obtenue en déplaçant le pointeur de souris dans l'image ou en utilisant la commande BG pour une première évaluation). A cette étape faire plusieurs essais en modifiant la valeur du paramètre. Par exemple :

>LOAD COMET
>BIN_DOWN 620

Une large partie (en haut à droite) ne sera pas utilisée pour le calcul du fond de ciel. Le seuil choisi à une valeur trop basse. Essayer à présent :

>LOAD COMET
>BIN_DOWN 750

A présent la valeur du seuil est trop élevée car la coma de comète n'est pas exclue du calcul. Le réglage final est :

>LOAD COMET
>BIN_DOWN 660

Sauvegarder ce masque :

>SAVE MASK

Etape 2

Charger l'image à traiter et ouvrir la boite de dialogue Retrait du gradient (menu Traitement). Sélectionner l'option Utiliser un masque et indiquer le nom de ce masque :

 

L'outil ignore alors les zones masquées lors du calcul du fond de ciel synthétique (les parties de l'image qui ont une valeur nulle dans le masque).

Le paramètre Détection du fond défini le degré de différenciation entre le ciel est les objets de l'image. Une valeur basse correspondant à une moindre sensibilité au gradient présent au voisinage des objets brillants. En même temps, une valeur basse évite de confondre certaines formes d'objets diffus avec le fond de ciel (bras d'un galaxie). C'est la raison pour laquelle lors d'un usage en plusieurs étape de l'outil, il est préférable d'évaluer une première approximation du fond de ciel avec ce paramètre au niveau bas pour éviter de fausses détections en dehors des zones masquées.

Le paramètre Précision de l'ajustement fixe le degré du polynôme d'ajustement. Plus ce degré est élevé, plus le fond synthétique épouse la forme des zones pointées par le logiciel. Cependant, pour une première évaluation il est recommandé de se contenté de l'option médiane (ce qui correspond à un polynôme de degré 3). Le soucis est comme toujours de n'ajuster que sur des zones qui appartiennent au fond de ciel.

L'option Balance de blanc du fond n'est effective que pour les images couleurs. Si on sélectionne cette option, Iris multiplie les couches RGB de l'image pour avoir le fond de ciel le plus neutre possible (sont aspect est alors grisâtre).

Cliquer sur OK pour réaliser le traitement. Modifier les seuils de visualisation pour observer le résultat si nécessaire :

L'essentiel du gradient a bien disparu. Il reste cependant quelques résidu par endroit. Pour les réduires on peut tenter une seconde itération. Celle-ci est potentiellement plus précise du fait que l'on part d'un fond de ciel nettement plus uniforme. Sauvegarder l'image intermédiaire de la comète et lancer les commandes :

>SAVE COMET2
>BIN_DOWN  655
>SAVE MASK2 

 

Rechargé le résultat du premier passage :

>LOAD COMET2

et appliquer le retrait du gradient, cette fois avec le maximum d'agressivité et de précision dans l'ajustement :

 


Cette image montre les points choisie par Iris (2000 points) après le premier passage, en se servant du masque image.

Modifier les seuils pour faire apparaître de le résultat. Le fond de ciel est plat tout en ne biaisant pas l'information des objets faibles :

Cliquer ici pour un autre exemple.

Retrait du gradient d'image très grand champ

Voici l'image à traiter :

>LOAD IMAGE


Le cliché "image.pic" - credit 
Patrick Bornet

 

Etape 1: lisser l'image

Exécuter la commande Ondelette du menu Traitement. Mettre tous les curseurs à zéro, sauf celui correspondant à l'échelle la plus grande :

Cliquer OK

Sauvegarder cette image :

>SAVE BLUR

Etape 2 : calculer un fond synthétique

>LOAD BLUR
>SUBSKY
>SYNTHE
>SAVE SKY

ou ouvrir la boite de dialogue Retrait du gradient et faire

Dans les deux cas, ignorer l'image affichée et lancer depuis la console les commandes :

>SYNTHE
>SAVE SKY


Aspect de l'image sky.pic

Etape 3 : retrait du fond synthétique

>LOAD IMAGE
>SUB SKY 100
>VISU 180 50

Le résultat...

 

Méthode manuelle

Dans la situation présente, la meilleure méthode pour ajuster le fond de ciel est de faire le pointage à la main...

>LOAD BLUR
>POINTON

Dans le pointage, éviter la Voie Lactée et l'ombre de la maison :

Puis

>SYNTHE 3
>SAVE SKY2
>POINTOFF


>LOAD IMAGE
>SUB SKY2 100
>VISU 180 50

Le résultat final...

Astuce : pour générer un flou très important dans une image, vous pouvez aussi utiliser les commandes MEDIANF ou RING_MEDIAN par exemple.

Ci-après, successivement, l'image de départ et l'image finale, à l'échelle originale...


L'image de départ.


L'image finale.

Astuce : la commande BIN_DOWN est pratique pour produire un masque, on l'a vu. Noter que la commande symétrique est disponible : BIN_UP. Tout comme pour BIN_DOWN le paramètre est un seuil, mais cette fois si un pixel de l'image dépasse cette valeur, il prend la valeur 255, sinon une valeur nulle.

La commande BIN_DOWN peut être aussi utilisée pour évaluer la surface des taches solaire, par exemple (pour une précision maximale, ne pas hésiter au préalable à "aplanir" la surface solaire si nécessaire avec la commande SUBSKY).


Image Valerie Desnoux, cliquer ici pour plus d'informations


Le même groupe de tache après la commande BIN_DOWN 165 (ce qui sélectionne à la fois l'ombre et la pénombre).

Recharger l'image de départ et entrer à présent la commande COUNT_DOWN 165 . Celle-ci retourne le nombre de pixel au dessus du seuil fourni en paramètre. C'est la surface de la tache (ici on trouve 29470 pixels).

Retrait du gradient de fond de ciel (méthode locale)

La pleine Lune, la pollution lumineuse, l'électroluminescence d'un amplificateur, la présente de vignettage optique sont autant de raisons de constater des variations d'intensité non attendues dans le fond de ciel des images. Ces variations limitent fondamentalement les capacités de détection dans une image, voir même leur l'interprétation. Iris peut utiliser un ajustement polynomial classique du fond de ciel pour traiter ce problème (polynôme jusqu'au l'ordre 5). Une méthode de recherche automatique des pixels appartenant au fond de ciel est implémentée, mais il est aussi possible d'utiliser un image masque dans laquelle sont identifier les pixels appartenant au fond de ciel. L'image artificielle créer après l'ajustement du polynôme ne contient que les variation lentes du fond de ciel. Cette image synthétiqueest soustraite à l'image à traiter pour y retirer le gradient.

L'ajustement polynomial est efficace mais pas toujours entièrement satisfaisant. C'est le cas lorsque les variations du ciel sont brutales et de grandes amplitudes. Pour ces situations Iris v5.41 introduit un nouveau schéma de calcul qui consiste en une estimation locale du fond. Un masque identifiant les objets brillants de l'image doit obligatoirement être construit.

Depuis la console, la commande correspondante a pour syntaxe :

SUBSKY3  [TAILLE]  [MASQUE]

Vous pouvez aussi depuis le menu Traitement, lancer la commande Retrait du gradient (estimateur local)...

La syntaxe est simple. Il faut fournir deux paramètres. Le premier est la taille de la zone de calcul du niveau local de fond de ciel. Il faut choisir une dimension plus grande que la taille des objets présents dans l'image. Par exemple si la dimension caractéristique d'une galaxie est de 60 pixels, vous choisirez une zone de calcul de 100 pixels de coté par exemple. Le second paramètre est le nom du masque de sélection du fond de ciel.

Voici un exemple type d'utilisation de cette nouvelle fonction. L'image est la somme de 7 clichés posés chacun 2 minutes avec un Canon EOS 350D modifié Baader et équipé d'un objectif Canon 50 mm f/1.2 diaphragmé à f/1.8. Les lumières de la ville de Toulouse illumine l'horizon et pollue sévèrement l'image (alors que l'on se situe à 40 km de la ville). La constellation d'Orion n'était pas très haute dans le ciel au moment de l'observation, ce qui n'arrange rien.

Les images (RAW) sont prétraitées de manière traditionnelle et soignée : offset, dark, flat-field. Malgré cela, le gradient dans l'image est sévère.

Il faut tout d'abord créer le masque binaire dans lequel les parties de l'image ne devant pas être prises en compte dans le calcul du fond sont mis à zéro. Se sera le cas des brillantes étoiles et de la nébuleuse M42 par exemple. Il faut pour cela utiliser la commande BIN_DOWN en recherchant le seuil par essais successifs. Par exemple, à partir de l'image a traiter en mémoire faire :

>BIN_DOWN  3800

Dans cet exemple, le résultat est une image binarisée (elle ne comporte que deux niveau) dans laquelle toutes les intensités initiales inférieures à 3800 sont mises à zéro, et les autres valeurs à 256.

Voici un masque satisfaisant, dans lequel les objets réels sont correctement isolés :

Rechargeons l'image à traiter et abaissons à présente le seuil de binarisation :

>BIN_DOWN  3500

A présent, les zones masquées (en noir) prennent une importance trop grande. En particulier, le fond de ciel n'est plus défini dans la partie inférieure de l'image. Ce masque n'est pas valable.

Sauvegarder le bon masque dans le répertoire de travail :

>SAVE  MASQUE

Remarque : pour obtenir un masque qui sélectionne tous les pixels de l'image faire >FILL  256.

Recharger en mémoire l'image à traiter, puis :

>SUBSKY3  180  MASQUE

ou depuis le menu Traitement, lancer la commande Retrait du gradient (estimateur local)...

On rappelle que la valeur du premier paramètre est liée à la dimension caractéristiques des objets. Faire des essais successifs pour sélectionner la valeur en pixels qui ne crée pas d'artefact autour des objets brillants ayant une surface étendue. Si un problème apparaît, augmenter la taille de la zone de calcul.


La zone de calcul est ici un carré de 50 pixels de coté.
On note des effets de bord dans la périphérie de la nébuleuse d'Orion (parties localement plus noires que le fond de ciel).
La qualité esthétique et photométrique de l'image est dégradée


La zone de calcul est ici un carré de 180 pixels de coté.
Les artefacts ont disparu.

Voici ci-après le résultat du traitement sur l'image complète. L'élimination du gradient révèle les objets faibles de l'image. En outre, la balance des blancs du fond de ciel est obtenu simultanément. Le seul autre traitement réalisé ici est un léger rehaussement du type gamma (commande Ajustement du gamma... du menu Visualisation). Le progrès par rapport au document de départ est considérable.


Cliquer sur l'image ou ici pour afficher une version grand-format.
Pour plus de détails sur l'objectif photographique Canon 50 mm f/1.2, cliquer ici.

Un effet négatif de l'algorithme utilisé est qu'une bordure d'une largeur égale à environ la moitié de la taille de la zone de calcul ne peut être évaluée correctement. Cette bordure est restituée noire à la fin du traitement. Vous pouvez détourer l'image en utilisant des fonctions telles que WINDOW, WIN, ...

Voici un autre exemple, toujours à partir d'images réalisées avec un objectif de 50 mm de focale associé à un Canon 350D Baader. Il concerne la région du double amas de Persée.

A gauche l'image de départ, à droite le masque adopté.


L'image après le retrait du gradient par une méthode d'estimateur local.

La méthode de retrait de gradient par ajustement polynomial fonctionne avec difficulté sur ces exemples car la densité d'étoiles est trop importante pour pouvoir trouver des points de calcul satisfaisant en nombre suffisant. Il en résulte des erreurs dans l'évaluation du fond de ciel.


INDEX