Herror ::gen_psf_defocus (
    Hobject *Psf,
    const HTuple &PSFwidth,
    const HTuple &PSFheight,
    const HTuple &Blurring
)
HImage HImage::GenPsfDefocus (
    const HTuple &PSFwidth,
    const HTuple &PSFheight,
    const HTuple &Blurring
)

Generate an impulse response of an uniform out-of-focus blurring.

::gen_psf_defocus generates an impulse response (spatial domain) of an uniform out-of-focus blurring and writes it into an image of HALCON image type 'real'. Blurring specifies the extent of blurring by defining the "blur radius" (out-of-focus blurring maps each image pixel on a small circle with a radius of Blurring - specified in "number of pixels"). If specified less than zero, the absolute value of Blurring is used. The result image of ::gen_psf_defocus 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..1
     
This representation conforms to that of the impulse response parameter of the HALCON-operator ::wiener_filter. So one can use ::gen_psf_defocus to generate an impulse response for Wiener filtering.


Parameters

Psf (output_object)
image -> Hobject * : HImage ( real )
Impuls response of uniform out-of-focus blurring.

PSFwidth (input_control)
integer -> HTuple.long
Width of result image.
Default value: 256
Suggested values: 128, 256, 512, 1024
Typical range of values: 1 <= PSFwidth

PSFheight (input_control)
integer -> HTuple.long
Height of result image.
Default value: 256
Suggested values: 128, 256, 512, 1024
Typical range of values: 1 <= PSFheight

Blurring (input_control)
real -> HTuple.double
Degree of Blurring.
Default value: 5.0
Suggested values: 1.0, 5.0, 10.0, 15.0, 18.0


Result

::gen_psf_defocus returns H_MSG_TRUE if all parameters are correct.


Possible Predecessors

::simulate_motion, ::gen_psf_motion


Possible Successors

::simulate_defocus, ::wiener_filter, ::wiener_filter_ni


See also

::simulate_defocus, ::gen_psf_motion, ::simulate_motion, ::wiener_filter, ::wiener_filter_ni


References

Reginald L. Lagendijk, Jan Biemond: Iterative Identification and Restoration of Images, Kluwer Academic Publishers Boston/Dordrecht/London, 1991

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.


Module

Wiener filter



Copyright © 1996-2002 MVTec Software GmbH