Generation of an impulse response of a (linearly) motion blurring.
gen_psf_motion generates an impulse response (spatial domain) of a blurring caused by a relative motion between the object and the camera during exposure. The generated impulse response is output into an image of HORUS image type FLOAT_IMAGE. PSFwidth and PSFheight define the width and height of the ouput image. The blurring motion moves along an even. Angle fixes its direction by specifying the angle between the motion direction and the x-axis (anticlockwise, measured in degrees). To specify different velocity behaviour five PSF prototypes can be generated. Type switches between the following prototypes:
1: reverse ramp (crude model for acceleration) 2: reverse trapezoid (crude model for high acceleration) 3: square pulse (exact model for constant velocity) 4: forward trapezoid (crude model for deceleration) 5: forward ramp (crude model for high deceleration) (default value is 3.)The blurring affects all part of the image uniformly. Blurring controls the extent of blurring. It specifies the number of pixels (lying one after another) that are affetcetd by the blurring. This number is determined by velocity of the motion and exposure time. If Blurring is a negative number, a adequate blurring in reverse direction is simulated. If Angle is a negative number, it is interpreted clockwise. If Angle exceeds 360 or falls below -360, it is transformed modulo(360) in a adequate number between [0..360] resp. [-360..0]. The result image of gen_psf_motion encloses an spatial domain impulse response of the specified blurring. Its representation presumes the origin in the upper left corner. This results in the following disposition of an NxM sized image:
first rectangle ("upper left"): (image coordinates xb = 0..(N/2)-1, yb = 0..(M/2)-1) - conforms to the fourth quadrant of the Cartesian coordinate system, encloses values of the impulse response at position x = 0..N/2 and y = 0..-M/2 second rectangle ("upper right"): (image coordinates xb= N/2..N-1, yb = 0..(M/2)-1) - conforms to the third quadrant of the Cartesian coordinate system, encloses values of the impulse response at position x = -N/2..-1 and y = -1..-M/2 third rectangle ("lower left"): (image coordinates xb = 0..(N/2)-1, yb = M/2..M-1) - conforms to the first quadrant of the Cartesian coordinate system, encloses values of the impulse response at position x = 1..N/2 and y = M/2..0 fourth rectangle ("lower right"): (image coordinates xb = N/2..N-1, yb = M/2..M-1) - conforms to the second quadrant of the Cartesian coordinate system, encloses values of the impulse response at position x = -N/2..-1 und y = M/2..1This representation conforms to that of the impulse response parameter of the HORUS-operator wiener_filter. So one can use gen_psf_motion to generate an impulse response for Wiener filtering a motion blurred image.
Psf (output_object) |
image -> object : real |
Impulse response of motion-blur. |
PSFwidth (input_control) |
integer -> integer |
Width of impulse response image. | |
Default value: 256 | |
Suggested values: 128, 256, 512, 1024 | |
Range of values: 1 <= PSFwidth |
PSFheight (input_control) |
integer -> integer |
Height of impulse response image. | |
Default value: 256 | |
Suggested values: 128, 256, 512, 1024 | |
Range of values: 1 <= PSFheight |
Blurring (input_control) |
real -> real |
Degree of motion-blur. | |
Default value: 20.0 | |
Suggested values: 5.0, 10.0, 20.0, 30.0, 40.0 |
Angle (input_control) |
integer -> integer |
Angle between direction of motion and x-axis (anticlockwise). | |
Default value: 0 | |
Suggested values: 0, 45, 90, 180, 270 |
Type (input_control) |
integer -> integer |
PSF protoype resp. type of motion. | |
Default value: 3 | |
List of values: 1, 2, 3, 4, 5 |
gen_psf_motion returns TRUE if all parameters are correct.
gen_psf_motion, out_of_focus, gen_psf_defocus
linear_motion, wiener_filter, wiener_filter_ni
linear_motion, out_of_focus, 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