gen_psf_motion
— Erzeugung der Impulsantwort einer geradlinigen Bewegungsverschlechterung.
gen_psf_motion
erzeugt die Impulsantwort (im Ortsraum) einer
geradlinigen Bewegungsverschlechterung als Bildobjekt vom Bildtyp 'real'.
Seine Breite bzw. Höhe lässt sich durch PSFwidth
und
PSFheight
angeben.
Die beschriebene Bewegung erfolgt entlang einer Linie. Ihre Richtung ist durch
den Winkel zur x-Achse (gegen den Uhrzeigersinn) festgelegt. Dieser wird mit
Angle
im Gradmaß eingegeben.
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 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 Blurring
kleiner als null
angegeben ist, so wird die Impulsantwort einer entsprechend starken Bewegung
in entgegengesetzter Richtung erzeugt. 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.
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:
Erstes Rechteck („links oben“): (Bildkoordinaten xb= 0..(N/2)-1, yb = 0..(M/2)-1)
-entspricht dem vierten Quadranten des kartesischen Koordinatensystems, enthält also die Werte der Impulsantwort für x = 0..N/2 und y = 0..-M/2
Zweites Rechteck („rechts oben“): (Bildkoordinaten xb = N/2..N-1, yb = 0..(M/2)-1)
-entspricht dem dritten Quadranten des kartesischen Koordinatensystems, enthält also die Werte der Impulsantwort für x = -N/2..-1 und y = -1..-M/2
Drittes Rechteck („links unten“): (Bildkoordinaten xb = 0..(N/2)-1, yb = M/2..M-1)
-entspricht dem ersten Quadranten des kartesischen Koordinatensystems, enthält also die Werte der Impulsantwort für x = 1..N/2 und y = M/2..0
Viertes Rechteck („rechts unten“): (Bildkoordinaten xb = N/2..N-1, yb = M/2..M-1)
-entspricht dem zweiten Quadranten des kartesischen Koordinatensystems, enthält also die Werte der Impulsantwort für x = -N/2..-1 und y = M/2..1
Aufgrund dieser Darstellungsform ist es möglich, die erzeugte Impulsantwort
direkt als Eingabe der Routine wiener_filter
zu verwenden, um ein
bewegungsverschlechtertes Bild mittels Wiener-Filterung zu restaurieren.
Psf
(output_object) image →
object (real)
Impulsantwort einer Bewegungsverschlechterung.
PSFwidth
(input_control) integer →
(integer)
Breite der Impulsantwort-Bildmatrix.
Defaultwert: 256
Wertevorschläge: 128, 256, 512, 1024
Typischer Wertebereich: 1
≤
PSFwidth
PSFheight
(input_control) integer →
(integer)
Höhe der Impulsantwort-Bildmatrix.
Defaultwert: 256
Wertevorschläge: 128, 256, 512, 1024
Typischer Wertebereich: 1
≤
PSFheight
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)
Impulsantwort-Prototyp bzw. Form der Bewegung
Defaultwert: 3
Werteliste: 1, 2, 3, 4, 5
Sind die Parameterwerte korrekt, dann liefert gen_psf_motion
den Wert 2 (H_MSG_TRUE).
simulate_defocus
,
gen_psf_defocus
simulate_motion
,
wiener_filter
,
wiener_filter_ni
simulate_motion
,
simulate_defocus
,
gen_psf_defocus
,
wiener_filter
,
wiener_filter_ni
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