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