Kann Dekonvolution helfen, die scheinbare Schärfe von Spiegellinsen zu verbessern?

Ich habe kürzlich bei eBay ein Samyang 500 mm/f6.3 Spiegelobjektiv für etwa 80 £ bestellt, größtenteils aus Neugier – zumindest wird es ein interessantes Spielzeug sein und ich kann es jederzeit verkaufen.

Spiegelobjektive werden häufig für viele Dinge kritisiert, vor allem aber für eine wahrgenommene Unschärfe und ihr „Donut“-Bokeh. Diese Frage bietet eine hervorragende Erklärung dafür, warum Hindernisse in der zentralen Apertur Ortsfrequenzen maskieren und die Schärfe verringern.

Meine Frage ist einfach – für eine Spiegellinse kennen wir [oder Samyang] die Geometrie der Linse ziemlich genau und damit ihre Punktstreuungsfunktion. Mir ist klar, dass die Kenntnis der Position aller Elemente auf dem Foto erforderlich ist, um das Bokeh zu "korrigieren" (wenn Sie möchten), aber ich habe naiv gedacht, dass wir in der Lage wären, die PSF analytisch oder numerisch zu berechnen, und Verbessern Sie dann den Kontrast, indem Sie die dadurch erhaltenen Bilder entfalten.

Während ich darauf warte, dass mein Objektiv mit der Post ankommt (ich habe noch mehr als eine Woche Zeit!), habe ich diese Idee schnell untersucht, indem ich Kamen Kunchevs (Creative Commons lizenziertes) Taubenbild verwendet habe, das ich auf flickr gefunden habe :

Pigeon-Spiegellinse

Ich habe dann die Blende für die Kamera geschätzt:

Ringöffnung

Berechnete die entsprechende Punktverteilungsfunktion (in der Größe auf einer lustigen halblogarithmischen Achse angezeigt, um die Struktur sichtbar zu machen):

PSF für einen Kreisring

... und benutzte es, um eine auf Maximium-Wahrscheinlichkeit basierende, regularisierte blinde Dekonvolution durchzuführen, um die folgende "geschärfte Taube" zu erhalten:

Entfaltete Taube

Das sieht meiner Meinung nach jetzt etwas komisch aus . Der Kontrast wurde definitiv verbessert, aber es ist nicht der Schritt, den man vielleicht naiv erwarten könnte. Ich habe mit der Anpassung der Filtergröße herumgespielt – was offensichtlich einen großen Unterschied macht – und ich denke, es ist wahrscheinlich so, dass mein PSF nicht ganz genau ist. Natürlich ist das Original künstlerisch viel besser, und ich vermute, dass es immer so sein wird, aber es erscheint mir vielleicht seltsam, dass wir nicht in der Lage sind, eine bekannte Eigenschaft des Bildgebungssystems zu korrigieren. Was mache ich falsch?

Gibt es dokumentierte Beispiele, wo Leute das schon einmal versucht haben? Da katadiatrope Abbildungssysteme buchstäblich seit Jahrhunderten in Teleskopen verwendet werden, gehe ich davon aus, dass es eine relativ einfache Möglichkeit gibt, den „Kontrast“ bei diesen interessanten Geräten zu erhöhen.

(Was passiert, wenn Sie einfach die Intensität der anderen Bereiche des k-Raums des Bilds erhöhen?)

EDIT : Vielleicht verstehe ich nur meine Schätzung der Blende falsch. Unten ist ein weiterer Versuch mit einem kleineren Ring und einer kleineren Obstruktion. Gibt es Lightroom-Plugins, mit denen man aus Neugier leicht mit solchen Dingen spielen kann?

Taube entfaltet

Mir ist nicht klar, was die Frage wirklich ist, da jedem Foto in Photoshop "geholfen" werden kann.
Allerdings offensichtlich keine Fotos, die aufgrund der Logistik um Größe und Gewicht eines herkömmlichen Teleobjektivs und des dazugehörigen kräftigen Stativs nie entstanden sind.
Sie haben Recht - ich sollte Wörter wie "Schärfe verbessern" hinzufügen. Außerdem wurde nichts davon in Photoshop gemacht! Werde umformulieren...
Ich denke, die Donut-Form IST die gewünschte Punktverteilungsfunktion, aber ich bin auch nicht wirklich in der Lage, sie zum Laufen zu bringen. Das habe ich in Mathematica versuchtManipulate[ Show[ImageAdd[ ImageSubtract[ ImageDeconvolve[dove // ImageAdjust, #, Method -> "RichardsonLucy"], ImageMultiply[dove, o]] // ImageAdjust, dove], # // Image // ImageAdjust] &@ ArrayPad[GaussianMatrix[ g]*(DiskMatrix[g] - ArrayPad[DiskMatrix[hole], (g - hole)]), 1], {{g, 14}, 2, 40, 1}, {{hole, 8}, 1, 20, 1}, {o, 0, 20}]
Warten Sie eine Sekunde, ich habe über die PSF der unscharfen Teile nachgedacht (dh BOKEH)
Sie müssen eine dreidimensionale Entfaltung durchführen, da "Donut" an verschiedenen Punkten im Raum unterschiedlich aussieht.

Antworten (2)

Bei einer Spiegellinse kennen wir [oder Samyang] die Geometrie der Linse ziemlich genau und damit ihre Punktstreufunktion.

Aus dem ersten Teil dieses Satzes ergibt sich natürlich nicht der zweite. Bedenken Sie zum Beispiel, dass die meisten Objektive kreisförmige Öffnungen haben (zumindest wenn sie weit geöffnet sind). Sehen die Bilder von ihnen alle gleich aus? Sie tun es nicht, und der Grund dafür ist, dass sie aberriert sind. Die Spiegellinse ist nicht anders.

Ihr zweites Bild, der Donut, ist nur ein Teil dessen, was oft als verallgemeinerte Pupillenfunktion bezeichnet wird. Diese Funktion ist P(x,y) = A(x,y)*e^(-i*phi(x,y)) – Sie haben A gezeichnet und wissen a priori nichts über Phi. Ihr blinder Dekonvolutionsalgorithmus kann, je nachdem, wie er konstruiert ist, versuchen, Phi zu rekonstruieren. In diesem Fall können Sie die PSF wirklich berechnen und ihren Einfluss erfolgreich aus dem Bild entfernen.

Es gibt jedoch zwei weitere Probleme. Ihr PSF-Array und Ihr Pupillen-Array sind gleich groß, und die Pupille erstreckt sich über das gesamte Array. Dies zwingt Sie in ein Alias-Regime, in dem Q < 2 ist und Ihre PSF nicht treu ist. Sie müssen Ihre Pupille zuerst auffüllen, bevor Sie ihre Fourier-Transformation vornehmen.

Die abs in Ihrem PSF implizieren auch, dass das ursprüngliche PSF-Array komplex ist. Das elektromagnetische Feld in der Bildebene ist komplex, die PSF für diese Art von System ist es nicht. Man verwendet entweder die Terminologie Feld-PSF und Intensitäts-PSF oder kohärente und inkohärente PSF, um die beiden zu unterscheiden. Sie scheinen das Feld PSF zu modellieren, wenn Sie die Intensitäts-PSF benötigen. Nehmen Sie das Mod-Quadrat der (richtig gepolsterten) Fourier-Transformation der verallgemeinerten Pupillenfunktion, um die Intensität PSF zu erhalten.

Wenn Sie das haben, dann ja, können Sie es ohne Bedenken aus dem Bild entfernen, nur ein Verlust des SNR / eine Zunahme des Rauschens.

Die defokussierten PSFs müssen unabhängig modelliert werden, und das ist komplizierter.

In Bezug auf das PSF, das der Fragesteller gepostet hat, sieht es anfangs auch schrecklich aliased aus, selbst wenn man die Polsterung vergisst. Würde es einen Unterschied machen, wenn es eine weichere Kante hätte?
Die Grenze der Pupillenmaske ist wahrscheinlich etwas gealiased, aber es sieht nicht so schlimm aus. Das Einbetten in eine Reihe von Nullen, um mindestens Q> 2 zu erfüllen, beseitigt das Aliasing in der PSF, das sich aus dem ergibt, was Sie mit Kanten nahe der Array-Grenze FFTen.

Sie können solche Funktionen (einschließlich Ihrer Benutzeroberfläche) direkt in Photoshop über das Matlab-Plugin haben: https://helpx.adobe.com/photoshop/using/photoshop-matlab.html

Einige Anmerkungen:

  • Das Teilen von Code und Filtern würde wirklich helfen.
  • Ihre Filter sehen etwas grob und pixelig aus.
  • Ich bin mir nicht sicher, ob Sie denselben (De-) Faltungsfilter für das gesamte Bild verwenden sollten, da Sie Zonen mit unterschiedlichem Fokus haben.