Description This function will Wiener filter the input DIB by the degradation function DIB in the frequency domain. It works with 4, 8 or 24 bits/pixel images. Inverse filtering of an image is processed by dividing the input image by the degradation function image to obtain the original noiseless image. The noise must be characterizable by a Fourier spectrum (typically linear motion blur). The input is the degraded image and the image of the degradation function. The filter will first process the spectras of both images, after computing a complex division using the transformed images by the following equation:
, where G(u,v) is the degraded spectrum, H(u,v) is the degradation function spectrum, and * means complex conjugation. Finally the filtering returns with the inverse transformed, filtered image. The degradation spectra is multiplied by the SpectMul parameter, so normalization problems can be solved by tuning this parameter. In case of 4 or 8 bits/pixel, the source DIB must contain grayscale images and the palette values in the source DIB must be monotone increasing. It makes no sense to use this function in case of 1 bits/pixel. If the source DIB size is not power of two, zero padding is used.
Examples
Syntax lRet = [BIFilter.]FreqDIBWiener SrcDib DFDib NSR bFFTMethod SpectMul
Remarks lRet LONGLONG Handle of the newly created DIB on success or 0 on failure.
SrcDib LONGLONG Source DIB.
NSR Long Inverse of the Signal-Noise Ratio.
DFDib Long Degradation function DIB.
bFFTMethod BOOL Fast Fourier Transform method
SpectMul Long Degradation function multiplying factor
bFFTMethod
If bFFTMethod = TRUE, then the Fourier transformed of the image will be processed by Sin and Cos functions, if bFFTMethod = FALSE, then it will be processed by square root functions.
NSR
The inverse of the Signal-Noise Ratio. If NSR parameter is zero, the wiener filter reduces to the inverse filter.
See Also