wiener_filterwiener_filterWienerFilterWienerFilterwiener_filter (Operator)

Name

wiener_filterwiener_filterWienerFilterWienerFilterwiener_filter — Bildrestauration mittels Wiener-Filterung.

Signatur

wiener_filter(Image, Psf, FilteredImage : RestoredImage : : )

Herror wiener_filter(const Hobject Image, const Hobject Psf, const Hobject FilteredImage, Hobject* RestoredImage)

Herror T_wiener_filter(const Hobject Image, const Hobject Psf, const Hobject FilteredImage, Hobject* RestoredImage)

void WienerFilter(const HObject& Image, const HObject& Psf, const HObject& FilteredImage, HObject* RestoredImage)

HImage HImage::WienerFilter(const HImage& Psf, const HImage& FilteredImage) const

static void HOperatorSet.WienerFilter(HObject image, HObject psf, HObject filteredImage, out HObject restoredImage)

HImage HImage.WienerFilter(HImage psf, HImage filteredImage)

def wiener_filter(image: HObject, psf: HObject, filtered_image: HObject) -> HObject

Beschreibung

wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter liefert eine Abschätzung des unbeeinträchtigten Originalbildes. Die Abschätzung ist im Sinne eines minimalen, quadratischen Fehlers zwischen dem Originalbild und seiner Abschätzung optimal. Diese Abschätzung stellt eine restaurierte Version eines durch verschiedene Einflüsse (z.B. relative Bewegung zwischen aufzunehmendem Objekt und Aufnahmesystem, falsch fokussiertes Linsensystem, atmosphärische Störungen usw.) beeinträchtigten Bildes dar. Ausgangspunkt ist das beeinträchtigte Bild, das als Ausgabe eines gestörten, linearen Systems interpretiert wird. Das Verhalten eines linearen Systems, ist durch seine Impulsantwort bestimmt. Folgerichtig wird davon ausgegangen, dass das beeinträchtigte Bild das Ergebnis einer Faltung von Originalbild und Impulsantwort des linearen Systems darstellt. Diese Impulsantwort beschreibt die Bildaufnahme und die dabei aufgetretenen Störungen. Um auch Störungsursachen stochastischer Natur (Rauschen) einbeziehen zu können, wird zu dem Faltungsergebnis ein Rauschterm addiert. Insgesamt ergibt sich also das beeinträchtigte Bild aus [Faltung(Impulsantwort und Originalbild)] + Rauschterm Der Rauschterm beinhaltet zwei Komponenten, von denen jeweils eine das bildabhängige und bildunabhängige Rauschen beschreibt. Die Routine wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter benötigt eine Bildversion, die (in der Vorverarbeitung durch den Anwender) mit einem Rauschfilter bearbeitet wurde. Diese rauschreduzierte Bildversion wird von wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter dafür verwendet, die spektralen Leistungsdichten vom Rauschen und dem Originalbild abzuschätzen. Weiterhin ist durch den Anwender eine Impulsantwort zu erzeugen, die die spezielle Beeinträchtigung im Bild beschreibt. Die Impulsantwort wird als Bildmatrix eingegeben (Bildtyp: 'real'). Sie stellt die Impulsantwort im Ortsraum dar und muss dahingehend in die Bildmatrix eingetragen werden, dass der Nullpunkt in der Bildecke „links oben“ liegt. Das bedeutet folgende Einteilung der insgesamt NxM-großen Bildmatrix in vier rechteckige Regionen:

wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter verwendet folgende Strategie zur Erzeugung des restaurierten Bildes:

Das Restaurationsergebnis ist vom Bildtyp 'real'.

Achtung

Die Impulsantwort PsfPsfPsfPsfpsfpsf muss vom Bildtyp 'real' sein und dieselbe Bildbreite und -länge wie ImageImageImageImageimageimage und FilteredImageFilteredImageFilteredImageFilteredImagefilteredImagefiltered_image besitzen.

Ausführungsinformationen

Parameter

ImageImageImageImageimageimage (input_object)  (multichannel-)image objectHImageHObjectHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)

Beeinträchtigtes Bild, das gefiltert werden soll.

PsfPsfPsfPsfpsfpsf (input_object)  (multichannel-)image objectHImageHObjectHImageHobject (real)

Impulsantwort (Point Spread Function) der Bildbeeinträchtigung (im Ortsraum mit dem Nullpunkt in der Bildecke angegeben).

FilteredImageFilteredImageFilteredImageFilteredImagefilteredImagefiltered_image (input_object)  (multichannel-)image objectHImageHObjectHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)

Beeinträchtigtes, durch ein Rauschfilter vorverarbeitetes Bild, das gefiltert werden soll.

RestoredImageRestoredImageRestoredImageRestoredImagerestoredImagerestored_image (output_object)  image objectHImageHObjectHImageHobject * (real)

Restauriertes Bild.

Beispiel (C)

/* Restoration of a noisy image (size=256x256), that was blurred by motion*/
Hobject object;
Hobject restored;
Hobject psf;
Hobject noisefiltered;
/* 1. Generate a Point-Spread-Function for a motion-blur with       */
/*    parameter a=10 and direction along the x-axis                 */
gen_psf_motion(&psf,256,256,10,0,3);
/* 2. Noisefiltering of the image                                   */
median_image(object,&noisefiltered,"circle",2,0);
/* 3. Wiener-filtering                                              */
wiener_filter(object,psf,noisefiltered,&restored);

Ergebnis

Sind die Parameterwerte korrekt, dann liefert wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter den Wert TRUE. Bei einer leeren Eingabe wird mit einer entsprechenden Fehlermeldung abgebrochen.

Vorgänger

gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotiongen_psf_motion, simulate_motionsimulate_motionSimulateMotionSimulateMotionSimulateMotionsimulate_motion, simulate_defocussimulate_defocusSimulateDefocusSimulateDefocusSimulateDefocussimulate_defocus, gen_psf_defocusgen_psf_defocusGenPsfDefocusGenPsfDefocusGenPsfDefocusgen_psf_defocus, optimize_fft_speedoptimize_fft_speedOptimizeFftSpeedOptimizeFftSpeedOptimizeFftSpeedoptimize_fft_speed

Alternativen

wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiWienerFilterNiwiener_filter_ni

Siehe auch

simulate_motionsimulate_motionSimulateMotionSimulateMotionSimulateMotionsimulate_motion, gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotiongen_psf_motion, simulate_defocussimulate_defocusSimulateDefocusSimulateDefocusSimulateDefocussimulate_defocus, gen_psf_defocusgen_psf_defocusGenPsfDefocusGenPsfDefocusGenPsfDefocusgen_psf_defocus

Literatur

M. Lückenhaus:„Grundlagen des Wiener-Filters und seine Anwendung in der Bildanalyse“; Diplomarbeit; Technische Universität München, Institut für Informatik; Lehrstuhl Prof. Radig; 1995
Azriel Rosenfeld, Avinash C. Kak: Digital Picture Processing, Computer Science and Aplied Mathematics, Academic Press New York/San Francisco/London 1982

Modul

Foundation