Extraction de gradient

Le fond du ciel présente souvent un gradient indésirable causé par la pollution lumineuse, la lune ou simplement l'orientation de la caméra par rapport au sol. Cette fonction échantillonne le fond en de nombreux endroits de l'image et recherche une tendance dans les variations. Elle le supprime en suivant une fonction lissée pour éviter de supprimer des nébuleuses.

dialogue

Boite de dialogue extraction du gradient. Sur la gauche la version polynomiale, sur la droite la version RBF.

Les échantillons peuvent être placés automatiquement en fournissant une densité (Echantillons par ligne) et en cliquant sur Générer. Si des zones de l'image sont plus lumineuses que la médiane d'un facteur Tolérance de la grille multiplié par sigma, alors aucun échantillon ne sera placé à cet endroit.

Astuce

Si vous avez des gradients très forts, par exemple lorsque vous photographiez dans un ciel urbain à fort Bortle, même la tolérance maximale de la grille peut s'avérer insuffisante. Dans ce cas, vous pouvez cocher la case Gardez tous les échantillons et la grille d'échantillons complète sera remplie. Vous devrez alors retirer manuellement les échantillons posés sur des objets astronomiques réels.

Après la génération, les échantillons peuvent également être ajoutés manuellement (clic gauche) ou retirés manuellement (clic droit).

Il y a deux algorithmes pour supprimer le gradient :

RBF

Il s'agit de la méthode la plus moderne. Elle utilise la fonction de base radiale pour synthétiser un fond de ciel afin de supprimer le gradient avec une grande flexibilité. Elle nécessite un seul paramètre qui est présent sous la forme d'un curseur : Lissage. Cette valeur permet de déterminer la douceur ou la dureté de la transition entre les points d'échantillonnage. Un facteur de lissage élevé a du sens pour les gradients larges et uniformes, et une valeur correspondante plus faible pour de petits gradients locaux.

Astuce

Commencez par le réglage de base (50 %) et ajustez progressivement pour obtenir des résultats optimaux.

Théorie

Les fonctions de base radiales sont des fonctions de la forme \(\phi(\mathbf{x}) = \phi(\| \mathbf{x} \|)\), sachant que dans notre cas, nous utilisons la norme euclidienne \(\| \mathbf{x} \| = \sqrt{x_1^2 + x_2^2}\). La fonction \(f\), qui décrit le modèle d'arrière-plan, peut maintenant être exprimée comme une combinaison linéaire

\[f(\mathbf{x}) = \sum_i w_i \, \phi(\|\mathbf{x} - \mathbf{x_i}\|) + o\]

où \(w_i\) correspond aux poids des différents points d'échantillonnage et \(o\) correspond à un décalage constant.

L'exigence selon laquelle la fonction \(f\) doit passer par les points d'échantillonnage se traduit par la condition suivante

\[\begin{split}\begin{pmatrix} \phi(\mathbf{x}_1 - \mathbf{x}_1) & \phi(\mathbf{x}_1 - \mathbf{x}_2) & \dots & \phi(\mathbf{x}_1 - \mathbf{x}_N) & 1 \\ \phi(\mathbf{x}_2 - \mathbf{x}_1) & \phi(\mathbf{x}_2 - \mathbf{x}_2) & \dots & \phi(\mathbf{x}_2 - \mathbf{x}_N) & 1 \\ \vdots & \vdots & \ddots & \vdots \\ \phi(\mathbf{x}_N - \mathbf{x}_1) & \phi(\mathbf{x}_N - \mathbf{x}_2) & \dots & \phi(\mathbf{x}_N - \mathbf{x}_N) & 1 \\ 1 & 1 & \dots & 1 & 0 \end{pmatrix} \begin{pmatrix} w_1 \\ w_2 \\ \vdots \\ w_N \\ o \end{pmatrix} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \\ 0 \end{pmatrix} \, ,\end{split}\]

qui ne peut être satisfaite que si la matrice du côté gauche est inversible. Avec le bon choix de la fonction \(\phi\), cela peut toujours être garanti [Wright2003].

En outre, la somme \(s \, I\) est ajoutée à la matrice du côté gauche, où \(s\) est un paramètre de lissage et \(I\) est la matrice unitaire. La somme entraîne une régularisation, qui donne un résultat d'autant plus lisse que le paramètre \(s\) est grand. Ce paramètre peut être modifié avec le paramètre Lissage de la boîte de dialogue.

Pour la fonction de base radiale, nous utilisons la spline mince \(\phi(|\mathbf{x}|) = |\mathbf{x}|^2 \log(|\mathbf{x}|)\).

Polynomiale

Il s'agit de l'algorithme original et le plus simple développé dans Siril. Un seul paramètre est utilisé dans le calcul polynomial : le  bouton Ordre. Plus le degré de l'ordre est élevé, plus la correction est souple, mais un degré trop élevé peut donner des résultats étranges comme une surcorrection.

Astuce

Une correction de degré 1 peut s'avérer très utile lorsque vous souhaitez supprimer le gradient sur les images individuelles.

Théorie

Les fonctions polynomiales sont des fonctions de la forme

\[\begin{equation} f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_2x^2+a_1x+a_0 \end{equation}.\]

Dans Siril, le degré maximum autorisé est \(n=4\) et peut être modifié en utilisant le menu déroulant Ordre. Au-delà, le modèle est généralement instable et donne de mauvais résultats.

Paramètres généraux

  • Ajoute de diffusion d'erreur (dither) : Activez cette option lorsque des bandes de couleur apparaissent après l'extraction du gradient. Le dither est une forme de bruit appliquée intentionnellement et utilisée pour randomiser l'erreur de quantification, empêchant ainsi l'apparition de motifs à grande échelle tels que les bandes de couleur dans les images.

  • Correction :

    • Soustraction : ceci est principalement utilisé pour corriger les effets additifs, tels que les gradients causés par la pollution lumineuse ou par la lune.

    • Division : principalement utilisé pour corriger les phénomènes multiplicatifs tels que le vignettage ou l'absorption atmosphérique différentielle par exemple. Cependant, ce genre d'opération devrait être effectué à l'aide du master-flat.

  • Calcul du fond de ciel : Cela va calculer le fond synthétique et appliquer la correction sélectionnée. Le modèle est toujours calculé à partir de l'image d'origine conservée en mémoire, ce qui permet à l'utilisateur de travailler de manière itérative.

  • Afficher l'image originale : Appuyez sur ce bouton pour voir l'image originale.

Le gradient du fond de l'image pré-traitée peut être complexe car le gradient peut avoir tourné avec la session d'acquisition. Il peut être difficile de le supprimer complètement car il est difficile de le représenter par une fonction polynomiale. Si c'est le cas, vous pouvez envisager de supprimer le gradient dans les images individuelles : dans une seule image, le gradient de fond est beaucoup plus simple et suit généralement une fonction linéaire simple (degré 1).

Astuce

Pour obtenir de bons résultats avec l'algorithme RBF, il suffit généralement de moins d'échantillons qu'avec l'algorithme polynomial.

Voir aussi

Pour plus d'explications, voir le tutoriel correspondant ici.

Ligne de commande Siril

subsky { -rbf | degree } [-dither] [-samples=20] [-tolerance=1.0] [-smooth=0.5]
Calcule un fond de ciel synthétique en utilisant soit le modèle de fonction polynomiale de degree degrés, soit le modèle RBF (si -rbf est fourni à la place) et le soustrait de l'image.
Le nombre d'échantillons par ligne horizontale et la tolérance pour exclure les zones plus claires peuvent être ajustés avec les arguments optionnels. La tolérance est exprimée en unités MAD : médiane + tolérance * mad.
La diffusion d'erreur, nécessaire pour les gradients peu dynamiques, peut être activé avec -dither.
Pour le RBF, un paramètre de lissage supplémentaire est disponible

Ligne de commande Siril

seqsubsky sequencename { -rbf | degree } [-nodither] [-samples=20] [-tolerance=1.0] [-smooth=0.5] [-prefix=]
Même commande que SUBSKY mais pour la séquence sequencename.
La diffusion d'erreur, nécessaire pour les gradients peu dynamiques, peut être désactivé avec -nodither.

Le nom de la séquence de sortie commence par le préfixe "bkg_" sauf indication contraire avec l'option -prefix=. Seules les images sélectionnées dans la séquence sont traitées

Liens : subsky
[Wright2003]

Wright, Grady Barrett. Radial basis function interpolation : numerical and analytical developments. University of Colorado at Boulder, 2003.