Stellen Sie mit dem Wiener Filter unscharfe und defokussierte Bilder wieder her. Implementierung in C ++ OpenCV

In der Fortsetzung des Artikels über die Wiederherstellung defokussierter und verschwommener Bilder möchte ich meine Ergebnisse der Wiederherstellung realer Bilder mithilfe des Wiener-Filters mitteilen. Als Bildverarbeitungsbibliothek wurde OpenCV 3.4 verwendet. Kamera - Nikon D320, Nikon DX AF-S NIKKOR 18-105 mm Objektiv, manuelle Defokussierung, Aufnahme ohne Stativ.


Defokussierte Bildwiederherstellungsergebnisse


Während der Defokussierung wird das Verzerrungssystem durch die zylindrische Punktstreufunktion (PSF) mit dem Radius r gut angenähert.


o_psf
Zylindrische PSF


Nachfolgend finden Sie die Ergebnisse der Wiederherstellung von drei echten defokussierten Bildern desselben Objekts (Buchseite). Die Aufnahme wurde ohne Stativ aus einer Entfernung von ca. 50 cm durchgeführt. Der Grad der Defokussierung des Objektivs nahm manuell von Bild zu Bild zu. Die Wiener Filterparameter r und das Signal-Rausch-Verhältnis (SNR) wurden manuell so ausgewählt, dass die beste visuelle Qualität der Restauration gewährleistet ist. Um Kanteneffekte auszugleichen, wird die Helligkeit des Bildes an den Kanten allmählich verringert.


o1f
Bild A.


o1r_gamma-var_640
Bildwiederherstellungsergebnis A. r = 53, SNR = 5200


o2f
Bild B.


o2r_gamma-var_640
Bildwiederherstellungsergebnis B. r = 66, SNR = 4400


o3f
Bild C.


o3r_gamma-var_640
Bildwiederherstellungsergebnis C. r = 102, SNR = 7100


Es ist ersichtlich, dass selbst bei einer signifikanten Defokussierung die Lesbarkeit des Textes praktisch ist
vollständig restauriert.


Die Ergebnisse der Wiederherstellung verschwommener Bilder von Nummernschildern


Bildunschärfe tritt auf, wenn sich Kamera und Motiv während der Belichtung relativ zueinander bewegen. Betrachten Sie nur den Fall, in dem sich das Motiv relativ zur stationären Kamera linear bewegt. In diesem Fall wird das Verzerrungssystem durch die PSF in Form eines Segments, das entlang der Bewegung des Objekts gerichtet ist, gut angenähert. Ein solcher PSF wird durch zwei Parameter definiert: L-Länge und THETA-Schmierwinkel.


m_psf
PSF mit linearer Schmierung


Unten sehen Sie ein verzerrtes Bild von zwei Autos, das mit einer unzureichend kurzen Belichtung erhalten wurde, was zu einer merklichen Unschärfe führte.


m1
Verzerrtes Bild von zwei Autos


Nachfolgend finden Sie die Ergebnisse der Wiederherstellung der Nummern beider Fahrzeuge mithilfe des Wiener-Filters. Die Parameter L, THETA und SNR wurden so ausgewählt, dass die beste visuelle Qualität der Wiederherstellung der Fahrzeugnummer gewährleistet ist.


m2
Ergebnis der Wiederherstellung einer hellen Autonummer. L = 78, THETA = 15, SNR = 300


m3
Ergebnis der Wiederherstellung einer dunklen Autonummer. L = 125, THETA = 0, SNR = 700


Es ist ersichtlich, dass es auch bei erheblicher Schmierung möglich ist, die Lesbarkeit von Zahlen wiederherzustellen
Autos.


Der Filteralgorithmus ist in C ++ OpenCV als Konsolenanwendung implementiert.
Quellcodes finden Sie unter den folgenden Links.


https://github.com/VladKarpushin/out_of_focus_deblur/tree/full_color_version
https://github.com/VladKarpushin/motion_deblur
https://docs.opencv.org/4.0.0-alpha/de/d3c/tutorial_out_of_focus_deblur_filter.html
https://docs.opencv.org/4.0.0-alpha/d1/dfd/tutorial_motion_deblur_filter.html


Literatur


  1. RC Gonzalez, RE Woods. Grundlagen digitaler Bilder. 1987.
  2. I.S. Gruzman, V.S. Kirichuk, V.P. Kosykh, G.I. Peretyagin, A.A. Spector. Digitale Bildverarbeitung in Informationssystemen. 2000.

Source: https://habr.com/ru/post/de424987/


All Articles