gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotion (Operator)

Name

gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotion — Erzeugung der Impulsantwort einer geradlinigen Bewegungsverschlechterung.

Signatur

gen_psf_motion( : Psf : PSFwidth, PSFheight, Blurring, Angle, Type : )

Herror gen_psf_motion(Hobject* Psf, const Hlong PSFwidth, const Hlong PSFheight, double Blurring, const Hlong Angle, const Hlong Type)

Herror T_gen_psf_motion(Hobject* Psf, const Htuple PSFwidth, const Htuple PSFheight, const Htuple Blurring, const Htuple Angle, const Htuple Type)

void GenPsfMotion(HObject* Psf, const HTuple& PSFwidth, const HTuple& PSFheight, const HTuple& Blurring, const HTuple& Angle, const HTuple& Type)

void HImage::GenPsfMotion(Hlong PSFwidth, Hlong PSFheight, double Blurring, Hlong Angle, Hlong Type)

static void HOperatorSet.GenPsfMotion(out HObject psf, HTuple PSFwidth, HTuple PSFheight, HTuple blurring, HTuple angle, HTuple type)

void HImage.GenPsfMotion(int PSFwidth, int PSFheight, double blurring, int angle, int type)

Beschreibung

gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotion erzeugt die Impulsantwort (im Ortsraum) einer geradlinigen Bewegungsverschlechterung als Bildobjekt vom Bildtyp 'real'. Seine Breite bzw. Höhe lässt sich durch PSFwidthPSFwidthPSFwidthPSFwidthPSFwidth und PSFheightPSFheightPSFheightPSFheightPSFheight angeben. Die beschriebene Bewegung erfolgt entlang einer Linie. Ihre Richtung ist durch den Winkel zur x-Achse (gegen den Uhrzeigersinn) festgelegt. Dieser wird mit AngleAngleAngleAngleangle im Gradmaß eingegeben. Zur Beschreibung von unterschiedlichen Bewegungsformen, stehen fünf Prototypen für die Impulsantwort zur Verfügung. Welcher Prototyp Verwendung findet, regelt TypeTypeTypeTypetype. Folgende Werte sind möglich:

  1. Umgekehrte Rampe (beschreibt in etwa eine Beschleunigung)

  2. Umgekehrtes Trapezoid (beschreibt in etwa starke Beschleunigung)

  3. Rechtecksfunktion (beschreibt (genau) konstante Geschwindigkeit)

  4. Normales Trapezoid (beschreibt in etwa starkes Abbremsen)

  5. Normale Rampe (beschreibt in etwa Abbremsen)

(Für alle anderen Werte wird automatisch die Rechtecksfunktion verwendet.) Die Bewegungsverschlechterung betrifft auf alle Fälle das gesamte eingegebene Bild. Ihr Ausmaß ist durch BlurringBlurringBlurringBlurringblurring festgelegt. Dieser Parameter beschreibt, wieviele Bildpunkte, die auf der Geraden der Bewegungsrichtung hintereinander liegen, durch die Bewegungsverschlechterung betroffen sind. Die Anzahl der betroffenen Punkte wird durch die Bewegungsgeschwindigkeit, -beschleunigung und -zeitdauer bestimmt. Falls BlurringBlurringBlurringBlurringblurring kleiner als null angegeben ist, so wird die Impulsantwort einer entsprechend starken Bewegung in entgegengesetzter Richtung erzeugt. Falls AngleAngleAngleAngleangle kleiner als null eingegeben wird, so wird der Winkel im Uhrzeigersinn interpretiert. Falls AngleAngleAngleAngleangle größer als 360 bzw. kleiner als -360 angegeben ist, so wird er modulo(360) in das Intervall [0..360] bzw. [-360..0] zurückgerechnet. Das erzeugte float-Bild enthält die gewünschte Impulsantwort im Ortsraum, wobei ihre Darstellung voraussetzt, dass sich der Nullpunkt in der Bildecke („links oben“) befindet. Das bedeutet folgende Einteilung der insgesamt NxM-großen Bildmatrix in vier rechteckige Regionen:

Aufgrund dieser Darstellungsform ist es möglich, die erzeugte Impulsantwort direkt als Eingabe der Routine wiener_filterwiener_filterWienerFilterWienerFilterWienerFilter zu verwenden, um ein bewegungsverschlechtertes Bild mittels Wiener-Filterung zu restaurieren.

Ausführungsinformationen

Parameter

PsfPsfPsfPsfpsf (output_object)  image objectHImageHImageHobject * (real)

Impulsantwort einer Bewegungsverschlechterung.

PSFwidthPSFwidthPSFwidthPSFwidthPSFwidth (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite der Impulsantwort-Bildmatrix.

Defaultwert: 256

Wertevorschläge: 128, 256, 512, 1024

Typischer Wertebereich: 1 ≤ PSFwidth PSFwidth PSFwidth PSFwidth PSFwidth

PSFheightPSFheightPSFheightPSFheightPSFheight (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe der Impulsantwort-Bildmatrix.

Defaultwert: 256

Wertevorschläge: 128, 256, 512, 1024

Typischer Wertebereich: 1 ≤ PSFheight PSFheight PSFheight PSFheight PSFheight

BlurringBlurringBlurringBlurringblurring (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Stärke der Bewegungsverschlechterung.

Defaultwert: 20.0

Wertevorschläge: 5.0, 10.0, 20.0, 30.0, 40.0

AngleAngleAngleAngleangle (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Winkel zwischen der Bewegungsrichtung und der x-Achse (gegen den Uhrzeigersinn).

Defaultwert: 0

Wertevorschläge: 0, 45, 90, 180, 270

TypeTypeTypeTypetype (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Impulsantwort-Prototyp bzw. Form der Bewegung

Defaultwert: 3

Werteliste: 1, 2, 3, 4, 5

Ergebnis

Sind die Parameterwerte korrekt, dann liefert gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotion den Wert 2 (H_MSG_TRUE).

Vorgänger

simulate_defocussimulate_defocusSimulateDefocusSimulateDefocusSimulateDefocus, gen_psf_defocusgen_psf_defocusGenPsfDefocusGenPsfDefocusGenPsfDefocus

Nachfolger

simulate_motionsimulate_motionSimulateMotionSimulateMotionSimulateMotion, wiener_filterwiener_filterWienerFilterWienerFilterWienerFilter, wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiWienerFilterNi

Siehe auch

simulate_motionsimulate_motionSimulateMotionSimulateMotionSimulateMotion, simulate_defocussimulate_defocusSimulateDefocusSimulateDefocusSimulateDefocus, gen_psf_defocusgen_psf_defocusGenPsfDefocusGenPsfDefocusGenPsfDefocus, wiener_filterwiener_filterWienerFilterWienerFilterWienerFilter, wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiWienerFilterNi

Literatur

Anil K. Jain:Fundamentals of Digital Image Processing, Prentice-Hall International Inc., Englewood Cliffs, New Jersey, 1989
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.
Kha-Chye Tan, Hock Lim, B. T. G. Tan:„Restoration of Real-World Motion-Blurred Images“;S. 291-299 in: CVGIP Graphical Models and Image Processing, Vol. 53, No. 3, May 1991

Modul

Foundation