in OSC Stacks das Rauschen der Kanäle angleichen

jfried

Aktives Mitglied
ich werfe mal hier etwas rein für die Profis:


Wenn ich OSC Stacks habe, dann rauscht auf Grund der Bayer Matrix RGGB der Grünkanal am geringsten.
Aus diversen Gründen kann es von Vorteil sein, das Rauschen der Kanäle aneinander anzugleichen, bevor man mit nichtlinearen Transformationen die Kanäle streckt.
Der Vorteil diese Operation gleich im Roh-Stack durchzuführen liegt darin, dass das Signal hier noch sauber Poisson verteilt ist (Standardabweichung).
Diese Operation ist visuell am Stack nicht erkennbar!!
Es geht hier darum, ein Übel an der Wurzel anzupacken.

ich schreibe das mal für Pixinsight Pixelmath, ist aber in Siril identisch:

-------

Ausgangsmaterial: linearer Roh-Stack und Kanäle linear farblich angeglichen, dh Color Calibration zb mit Spectrometric Color Calibration (Multiplikation/Addition)

ich nutze zur Angleichung der Verteilung avgDev

Code:
es soll der Kanal R/B mit dem Rauschen des Grün-Kanals in Übereinstimmung gebracht werden.
Es wird zur Angleichung ein leicht entrauschtes RGB Bild "nxt" benutzt (Denoise 60%) und in den Stack im passenden Verhältnis zugemischt

x*adev($T) + (1-x) * adev(nxt) = adev($T[1])
aufgelöst nach
x = adev($T[1])-adev(nxt))/(adev($T)-adev(nxt)

übersetzt:
  1. erstelle eine Kopie des Stacks und nenne die Kopie "nxt"
  2. entrausche das Bild "nxt" mit NoiseXTerminator so dass avgDev von nxt im Kanal "R" und "B" kleiner ist als von "G" im Stack
  3. wende auf den Stack die Formel an
    Code:
    (adev($T[1])-adev(nxt))/(adev($T)-adev(nxt))*$T+(1-(adev($T[1])-adev(nxt))/(adev($T)-adev(nxt)))*nxt
    Hinweis: das ist die obige Formel x*adev($T) + (1-x) * adev(nxt) mit x = adev($T[1])-adev(nxt))/(adev($T)-adev(nxt)

ein Bild sagt mehr als 1000 Worte:

nachfolgend mit HT in die Kurve hineingezoomt
  • Links: unser OSC Stack, farbkorrigiert, RGB sind "noch" normalverteilt
  • Mitte: die Kopie von unserem Stack "nxt" bearbeitet NoiseXTerminator zb Denoise = 0.6 (durch wird die Standardabweichung kleiner)
  • Rechts: unser Stack nach Anwendung der Formel
    wende auf den Stack die Formel an
    Code:
    (adev($T[1])-adev(nxt))/(adev($T)-adev(nxt))*$T+(1-(adev($T[1])-adev(nxt))/(adev($T)-adev(nxt)))*nxt
    Ergebnis: perfekte Übereinstimmung
avgdev.jpg

Beachte: der Grünkanal bleibt unverändert, nur R und B wurden angefasst

Pixelmath.png
 
Zuletzt bearbeitet:
ich habe das hier gerade in einem anderen Thread gepostet, aber es passt zu o.g. Thema als Beispiel

unser Auge registriert unterschiedliches Farbrauschen in den RGB Kanälen auch als Farbstich (Grün am empfindlichsten)


Beispiel: ein synthetisches Bild ohne STF-Streckung. Der Mittelwert ist neutral.
Bildschirmfoto 2025-04-29 um 09.32.06.png



das gleiche Bild mit identischen Kanälen
Bildschirmfoto 2025-04-29 um 09.16.40.png


wenn man beide Bilder weit genug verkleinert dann sehen wir natürlich ein schönes Grau...
 
Zurück
Oben