gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotiongen_psf_motion (算子)

名称

gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotiongen_psf_motion — 生成(线性)运动模糊的脉冲响应。

签名

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)

def gen_psf_motion(psfwidth: int, psfheight: int, blurring: float, angle: int, type: int) -> HObject

描述

gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotiongen_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 HALCON image type real. PSFwidthPSFwidthPSFwidthPSFwidthPSFwidthpsfwidth and PSFheightPSFheightPSFheightPSFheightPSFheightpsfheight define the width and height of the output image. The blurring motion moves along an even. AngleAngleAngleAngleangleangle fixes its direction by specifying the angle between the motion direction and the x-axis (anticlockwise, measured in degrees). To specify different velocity behavior five PSF prototypes can be generated. TypeTypeTypeTypetypetype 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), this is default

  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. BlurringBlurringBlurringBlurringblurringblurring 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 BlurringBlurringBlurringBlurringblurringblurring is a negative number, an adequate blurring in reverse direction is simulated. If AngleAngleAngleAngleangleangle is a negative number, it is interpreted clockwise. If AngleAngleAngleAngleangleangle exceeds 360 or falls below -360, it is transformed modulo(360) in an adequate number between [0..360] resp. [-360..0]. The result image of gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotiongen_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:

This representation conforms to that of the impulse response parameter of the HALCON-operator wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter。So one can use gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotiongen_psf_motion to generate an impulse response for Wiener filtering a motion blurred image.

执行信息

参数

PsfPsfPsfPsfpsfpsf (输出对象)  image objectHImageHObjectHImageHobject * (real)

Impulse response of motion-blur.

PSFwidthPSFwidthPSFwidthPSFwidthPSFwidthpsfwidth (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Width of impulse response image.

默认值: 256

建议值: 128, 256, 512, 1024

值范围: 1 ≤ PSFwidth PSFwidth PSFwidth PSFwidth PSFwidth psfwidth

PSFheightPSFheightPSFheightPSFheightPSFheightpsfheight (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of impulse response image.

默认值: 256

建议值: 128, 256, 512, 1024

值范围: 1 ≤ PSFheight PSFheight PSFheight PSFheight PSFheight psfheight

BlurringBlurringBlurringBlurringblurringblurring (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Degree of motion-blur.

默认值: 20.0

建议值: 5.0, 10.0, 20.0, 30.0, 40.0

AngleAngleAngleAngleangleangle (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Angle between direction of motion and x-axis (anticlockwise).

默认值: 0

建议值: 0, 45, 90, 180, 270

TypeTypeTypeTypetypetype (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

PSF prototype resp. type of motion.

默认值: 3

值列表: 1, 2, 3, 4, 5

结果

gen_psf_motiongen_psf_motionGenPsfMotionGenPsfMotionGenPsfMotiongen_psf_motion 在所有参数正确时返回 2 ( H_MSG_TRUE )。

可能的前趋

simulate_defocussimulate_defocusSimulateDefocusSimulateDefocusSimulateDefocussimulate_defocus, gen_psf_defocusgen_psf_defocusGenPsfDefocusGenPsfDefocusGenPsfDefocusgen_psf_defocus

可能的后继

simulate_motionsimulate_motionSimulateMotionSimulateMotionSimulateMotionsimulate_motion, wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter, wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiWienerFilterNiwiener_filter_ni

另见

simulate_motionsimulate_motionSimulateMotionSimulateMotionSimulateMotionsimulate_motion, simulate_defocussimulate_defocusSimulateDefocusSimulateDefocusSimulateDefocussimulate_defocus, gen_psf_defocusgen_psf_defocusGenPsfDefocusGenPsfDefocusGenPsfDefocusgen_psf_defocus, wiener_filterwiener_filterWienerFilterWienerFilterWienerFilterwiener_filter, wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiWienerFilterNiwiener_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

模块

基础