Pixelmathematik bei Flats

  • Liebes Forum


    Ich tue mich derzeit mit dem Abzug meiner Flats ziemlich schwer. Damit ich da nicht weiter im Nebel herumstochere, möchte ich das Problem mal per Pixelmathematik verstehen lernen, daher meine Frage:


    Was genau passiert eigentlich bei der Korrektur mit einem (biasbereinigten) Flat. So wie ich mir das vorstelle, müsste doch die prozentuale Abweichung der jeweiligen Flatpixel zum Mittelwert des Flats ermittelt werden und diese prozentuale Abweichung mir dem passenden Pixelwert des Lights multipliziert werden. Ich stelle mir das etwa so vor:


    Code
    p_korregiert(x,y) = p_light(x,y) * p_flat(x,y) / median(p_flat(0,0) .. p_flat(max,max))


    Im Netz habe ich zwar jede Menge Hinweise zur Kallibrierung mit diversen Programmen gefunden, aber nicht die Berechnung selbst.


    (*) Die Besonderheiten mit debayerten und nicht debayerten Bildern und den Farbkanälen würde ich an dieser Stelle gerne noch außen vor lassen.

  • hi!
    der flat ist eine gwichtungsmatrix, also ist er normiert einmal flat_normiert=(flat-min(flat))/(max(flat)-min(flat)). die wirkung auf das bild ist bild_korrigiert=bild/flat_normiert ... würd ich sagen. funktiniert natürlich nur bei einigermassen stetigen flats ...
    lg
    wolfi

  • Arne,
    Flats sind nichts anderes als gleichmäßig beleuchtete Testbilder. Diese dienen dazu, eine etwaige Vignetierung des Bildes durch das Objektiv sichtbar zu machen. So kann die nachfolgende Bildbearbeitung aus dem Helligkeitsgradienten der Flataufnahme eine "Maske" erstellen und damit die Bildausleuchtung des Astrobildes korrigieren. Wenn man Schattierungen durch Staub/Schmutz (in Chipnähe z.B. auf Clipfilter) mitkorrigieren will, lohnt sich die pixelgenaue Verwertung von Flats in der Nachbearbeitung. Will man nur die Vignettierung der Gesamtoptik ausgleichen, ist eine pixelgenaue Betrachtung eigentlich nicht notwendig. Ich behalf mich einmal damit, dass ich das eigentlich Bild mit einem 200-Pixelradius weichzeichnete und so eine globale Karte der Ausleuchtung erhielt. Damit glich ich den unterschiedlich hellen Himmelshintergrund der Dämmerungsphase einer Sternfeldaufnahme aus,


    Die Mathemtik von Flats ist simpel:
    Man ermittelt zu jedem Flatpixel einen normalisierten Wert, indem man des Pixelwert durch den Durchschnittswert des Flats dividiert. Ist das Ergebnis größer 1, dann ist somit der Flatpixel heller, ist er kleiner 1, dann ist der Flatpixel entsprechend dunkler. Die Pixel des Nutzbildes werden durch das obige Ergebnis dividiert. Das heißt, dass bei einem dunklen Flatpixel durch einen Wert "kleiner 1" dividiert wird und das Nutzpixel dadurch aufgehellt wird und umgekehrt.


    In Deiner Formel, die für mich missverständlich** ist, müsste es somit lauten:
    P_flat_Norm(x,y) = p_flat(x,y) / p_flat-Durchschnitt
    P_korrigiert(x,y) = p_light(x,y) / P_flat_Norm(x,y)


    **Den Durchschnittswert berechnet man vorab als Konstante und wendet in anschließend für jeden Pixel an, zudem sind Multiplikation und Division vertauscht.


    Nachfolgender Blog (in Englisch) beschreibt das:
    http://www.alberts-astro.com/AP_Blog/2009/12/238/

  • hi kalle!
    was mich bei deiner formel stört ist, dass das flat nicht auf 1 normiert ist. es geht trotzdem, aber dann muss man nachher das histogramm noch anpassen.
    lg
    wolfi

  • Hi Wolfi,


    von der Physik her ist die Normierung ja egal, solange man aufpasst, dass das Ergebnis im richtigen Datenformat vorliegt. Man kann auch ganz ohne Normierung arbeiten, wenn das Resultat als float Wert abgespeichert wird. Die Multiplikation mit einer Konstanten ändert dann nichts am Bild. Es ist natürlich etwas narrensicherer und praktischer, wenn die korrigierten Werte wieder halbwegs in der Nähe der originalen liegen.
    Ich bin mir gar nicht sicher, ob da alle Programme überhaupt die gleiche Normierung machen.


    Gruß
    Norbert

  • Wolfi,
    die Division eines Flatpixels durch den Durchschnitt ist doch eine Normierung. Im Durchschnitt haben die normierten Flatpixel nach der Division einen Wert von 1:


    Durchschnitt der Pixel Px ist:
    P_durch = Summe(Px) / n


    Px_norm ist nach obiger Formel:
    Px_norm = Px / P_durch (für alle Pixel)


    Normiert ist das gesamte Flat, wenn der Durchschnittswert der Px_norm gleich 1 ist:


    P_norm_durch = Summe(Px_norm) / n


    Durch Einsetzen ergibt sich:
    P_norm_durch = Summe(Px / P_durch) / n = Summe(px) / (n*P_durch) = Summe(Px)/n * (1/Summe(Px) / n) = 1
    ... QED


    Ich hoffe, da ist jetzt kein Denk- oder Rechenfehler enthalten.

  • Beim Stöbern in der Dokumentation von Pixinsight fand ich folgenden Hinweis:
    http://pixinsight.com/doc/tool…tion.html#deskription_004


    Sie empfehlen die multiplikative Normalisierung von Flats (also wie oben beschrieben). Denkbar wäre schließlich auch eine Additive Verknüpfung, bei der man Helligkeitsabweichungen aus den Flats per Addition zum Nutzbild hinzufügt (Dunkle Stellen im Flat hätten dann ein negatives Vorzeichen).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!