本代码中涉及到的相关函数见上篇“逆滤波的实现(VC++)”
//参数说明:
//LPSTR lpDIBBits:指向源DIB图像指针//LONG lWidth:源图像宽度(象素数)
//LONG lHeight:源图像高度(象素数)
//函数说明:
//该函数用来对DIB图像进行维纳滤波复原操作。
BOOL WINAPI WienerDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
// 指向源图像的指针
LPSTR lpSrc;
//循环变量
long i;
long j;
//像素值
unsigned char pixel;
// 图像每行的字节数
LONG lLineBytes;
//用于做FFT的数组
double *fftSrc,*fftKernel,*fftNoise;
double a,b,c,d,e,f,multi;
//二维FFT的长度和宽度
unsigned long nn[3];
//图像归一化因子
double MaxNum;
// 计算图像每行的字节数
lLineBytes = WIDTHBYTES(lWidth * 8);
double dPower = log((double)lLineBytes)/log(2.0);
if(dPower != (int) dPower)
{