simulate_motion
— Simulation einer geradlinigen Bewegungsverschlechterung.
simulate_motion(Image : MovedImage : Blurring, Angle, Type : )
simulate_motion
simuliert eine Bildbeeinträchtigung. Ihre
Ursache liegt in einer relativen Bewegung zwischen dem aufzunehmenden
Objekt und dem Aufnahmesystem während der Aufnahme. Die Bewegung erfolgte
dabei entlang einer Linie. Ihre Richtung ist durch den Winkel zur
x-Achse (gegen den Uhrzeigersinn) festgelegt. Dieser wird mit
Angle
im Gradmaß eingegeben. Die Simulation erfolgt durch eine
Faltung vom Eingabebild mit einer Impulsantwort, die die jeweilige
Bewegungsart beschreibt.
simulate_motion
erzeugt die benötigte Impulsantwort und
multipliziert ihre (diskrete) Fouriertransformierte mit der des
Eingabebildes. Das in den Ortsraum zurücktransformierte Produkt stellt das
bewegungsverschlechterte Bild dar. Zur Beschreibung von unterschiedlichen
Bewegungsformen, stehen fünf Prototypen für die Impulsantwort zur
Verfügung. Welcher Prototyp Verwendung findet, regelt Type
.
Folgende Werte sind möglich:
Umgekehrte Rampe (beschreibt in etwa eine Beschleunigung)
Umgekehrtes Trapezoid (beschreibt in etwa starke Beschleunigung)
Rechtecksfunktion (beschreibt (genau) konstante Geschwindigkeit)
Normales Trapezoid (beschreibt in etwa starkes Abbremsen)
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 Blurring
festgelegt.
Dieser Parameter beschreibt, wieviele Bildpunkte, die auf einer Geraden in
Bewegungsrichtung hintereinander liegen, durch die Bewegungsverschlechterung
betroffen sind. Die Anzahl der betroffenen Punkte wird durch die
Bewegungsgeschwindigkeit, -beschleunigung und -zeitdauer bestimmt.
Falls Blurring
kleiner als null angegeben ist, so wird eine
entsprechend starke Bewegung in entgegengesetzter Richtung simuliert.
Falls Angle
kleiner als null eingegeben wird, so wird der Winkel
im Uhrzeigersinn interpretiert. Falls Angle
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.
Image
(input_object) (multichannel-)image(-array) →
object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)
Bild, das beeinträchtigt werden soll.
MovedImage
(output_object) image →
object (real)
Bewegungsverschlechtertes Bild.
Blurring
(input_control) real →
(real)
Stärke der Bewegungsverschlechterung.
Defaultwert: 20.0
Wertevorschläge: 5.0, 10.0, 20.0, 30.0, 40.0
Angle
(input_control) integer →
(integer)
Winkel zwischen der Bewegungsrichtung und der x-Achse (gegen den Uhrzeigersinn).
Defaultwert: 0
Wertevorschläge: 0, 45, 90, 180, 270
Type
(input_control) integer →
(integer)
Implsantwort-Prototyp bzw. Form der Bewegung.
Defaultwert: 3
Werteliste: 1, 2, 3, 4, 5
Sind die Parameterwerte korrekt, dann liefert simulate_motion
den Wert 2 (H_MSG_TRUE).
Bei einer leeren Eingabe wird mit einer entsprechenden Fehlermeldung
abgebrochen.
gen_psf_motion
,
gen_psf_motion
simulate_defocus
,
wiener_filter
,
wiener_filter_ni
gen_psf_motion
,
simulate_defocus
,
gen_psf_defocus
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
Foundation