Beiträge von Michael Koenig im Thema „Unschärfe rausrechnen“

    ein weihnachtliches hallo an alle heilig-abend-surfer [:)]


    eine anmerkung möchjte bzgl. der problemstellung mit dem herausrechnen der pointspread funktion noch anbringen:


    der umstand, dass das beobachtete bild immer als optik + rauschen gesehen werden muss, "verhindert" eine eindeutige lösung des entfaltungsproblems. genaugenommen ist es also unmöglich exakt das urbild zu bestimmen.


    was aber möglich ist, dass man dieses urbild gut schätzen kann, d.h. dass man iterativ die entfaltung vornimmt. eine einweg-umkehrfunktion, die direkt das urbild liefert existiert nicht. sobald die reale messund das unvermeidbare rauschen beisteuert muss man den rückweg der rekonstruktion iterativ antreten.


    allerdings kann man für dieses schätzen verschiedene statistische methoden anwenden, die sich u.a. darin unterscheiden, wie leicht sie sich durch lokale minima täuschen lassen und dann die iteration "zu früh" abbrechen. andere methoden erweisen sich als stabiler und finden das "wahre" minimum der fehlerschätzenden funktion. dieses minimum beschreibt mit den zugehörigen werten das wahrscheinlichste urbild.


    so, bevor der statistiker weiter mit mir durchgeht [;)] höre ich nun aber auf, euch zu langweilen und verweise auf das wartende weihnachtsgebäck ...


    michael

    hallo melchior,


    genau die matrixeingabe in astroart brachte mich dazu ein eigenes programm zu schreiben.


    die psf bestimmt man am besten durch die wahl eines sterns auf den aufnahme, da dieser ja eben kein idealer punkt, sondern eine von der optik deformierte gauss-glocke darstellt - mit all den störungen, die zb durch eine fehlerhafte nachführung noch hinzukommen.


    dieses sternbild kann man dirrekt zur entfaltung heranziehen, oder man führt zuvro einen 2dimensionalen gaussfit an das sternbild durch. man verwendet dann diese idealisierte gaussfkt, da man so lokale bild effekte aussen vor laesst (bias, ccd rauschen, flat...).


    ich zentriere dann die gefittete glocke und stecke sie dann in die entfaltung. diese durchläuft eine iterationsschleife. da mein beispielbild schon bearbeitet wurde, würden bei zu vielen loops schnell artefakte entstehen, daher habe ich nur zwei runs verwendet.


    michael

    und noch ein nachtrag:


    ich habe den entfaltungstechnik auf eine "reale" ccd aufnahme angewandt. diese aufnahme wurde von mir schon nachbearbeitet (unscharfe maskierung, störungen entfernen ...). dennoch kann man erkennen, die entfaltung noch etwa mehr an schärfe bringt. die artefakte der entfaltung (hintergrunds-"wiggels") halten sich auch in grenzen.



    michael

    ich habe eine kleine pause genutzt, um die angesprochene max.likehood entfaltung in einem programm umzusetzen. damit wird klarer, was solch eine entfaltung leisten kann.


    http://www.schmid-koenig.de/astro/BeispielMaxLEntfaltung.jpg



    das urbild besteht aus zwei strichen. die "optik" stülpt ihre psf diesem urbild über, so dass pluss dem unvermeidbaren rauschen ein bild betrachtet wird, dass nur ansatzweise die zweiur-striche erkennen lässt. entfaltet man hieraus die bekannte psf, so kann man sich an die versteckten details ranarbeiten (5 iterationen).


    gruss,
    michael

    das Verfahren, das zu Entfaltung verwendet wird, bezeichnet man auch als


    Maximum Entropy Deconvolution


    z.B. als eine Funktion von AstroArt. Nur ist das Handling der PSF etwas umständlich. Aber wie gesagt, diese Entfaltungsprogramm kann man auch selbst schreiben.


    Wichtig ist die genaue Kenntnis der PSF - am besten durch Testbilder der fraglichen Optik, die man absichtlich unscharf gestellt hat.


    Michael

    ja, so etwas kann man im prinzip "herausrechnen".


    man geht davon aus, dass das beobachtete bild B aus dem urbild U und einer aufgefalteten störung S entstanden ist.


    B = U x S


    in deinem fall ist S die point spread funktion der abbildung oder besser die psf der gestörten abbildung. diese "unschärfe" wird nun auf jedes detail in U aufgefaltet und somit im ganzen bild B verbreitet.


    um auf das urbild zu schliessen nutzt man die mathematische eigenheit, das die fouriertransformierte der faltung dem produkt der fouriertransformierten von U und S entspricht.


    FT(B) = FT( U x S ) = FT(U) * FT(S)


    diese FT's lassen sich für matrizen mittels gängiger fft techniken recht schnell berechnen. mit der gemessenen oder gut geschätzten funktion S und der inversion der FT matrizen kann man U errechnen (wenn ich keinen fehler gemacht habe [:)])


    FT(B) * FT-1(S) = FT(U)
    FT-1( FT(B) * FT-1(S) ) = U


    gruss,
    michael


    ps: für weitere details kannst du dich direkt an mich wenden, das sollten wir nicht in formeltiefe hier austauschen...