NAME

blur_extract -- extracts blur parameter from FFT data

PROTOTYPE

unitptr blur_extract( int iFFTx, int iFFTy, int iType, unitptr uHost)

ARGUMENTS

int iFFTx
Width of FFT data
int iFFTy
Height of FFT data
int iType
Type of degradation
unitptr uHost
Host unit

RETURN VALUE:

A pointer to the created unit or NULL in the case of an error.

INTERFACE OF CREATED UNIT:

X_in[2*iFFTx*iFFTy]:
(packed input field 0) complex FFT data
X_out[4]:
(output field 0) contains blur parameter

DESCRIPTION:

This unit extracts the parameters of the Optical Transfer Function for either a degradation caused by linear motion during exposure time (iType = 0) or a defocused lense (iType = 1). In the former case the OTF is given by H(u,v) = sin(Pi*q)/(Pi*q), where q = u*Vx+v*Vy. Vx and Vy are the relative velocities of the object in the image plane in x- and y- direction, respectively. For a defocused lense the OTF is given by H(u,v) = J1(Pi*d*r)/(Pi*d*r), where J1 is the first-order Bessel function of the first kind, r = sqrt(u^2+v^2), and d is the radius of the disk into which a single point is blurred into. Note, that this OTF assumes an ideal lense, whereas real-world optical systems generally have a more complex transfer function, which has to be measured physically. The blurring parameters mentioned above (Vx and Vy, and d, respectively) are extracted using information from the Fourier Transform of the Cepstrum of the degenerated image. The extracted parameters can then be fed into the wiener unit which implements a simple wiener filter.

STATUS:

preliminary

SEE ALSO:

wiener

FILE

nst_fft2d.cc