#define swap(a,b) tempr=(a);(a)=(b);(b)=tempr
//引數說明:
//lpstr lpdibbits - 指向源dib影象指標
//long lwidth - 源影象寬度(象素數,必須是4的倍數)
//long lheight - 源影象高度(象素數)
///函式說明:
//該函式用來對blurdib()生成的dib影象進行復原操作。
bool winapi restoredib (lpstr lpdibbits, long lwidth, long lheight)
dpower = log((double)lheight)/log(2.0);
if(dpower != (int) dpower)
fftsrc = new double [lheight*llinebytes*2+1];
fftkernel = new double [lheight*llinebytes*2+1];
nn[1] = lheight;
nn[2] = llinebytes;
for (j = 0;j < lheight ;j++)
else
fftkernel[(2*llinebytes)*j + 2*i + 2] = 0.0;}}
//對源影象進行fft
fourn(fftsrc,nn,2,1);
//對卷積核影象進行fft
fourn(fftkernel,nn,2,1);
for (j = 0;j < lheight ;j++)}}
//對結果影象進行反fft
fourn(fftsrc,nn,2,-1);
//確定歸一化因子
maxnum = 0.0;
for (j = 0;j < lheight ;j++)
}//轉換為影象
for (j = 0;j < lheight ;j++)
}delete fftsrc;
delete fftkernel;
// 返回
return true;
}bool fourn(double * data/*psrc*/, unsigned long nn/*w*/, int ndim/*2*/, int isign)}}
ibit=ip2 >> 1;
while (ibit >= ip1 && i2rev > ibit)
i2rev += ibit;
}ifp1=ip1;
while (ifp1 < ip2)
}wr=(wtemp=wr)*wpr-wi*wpi+wr;
wi=wi*wpr+wtemp*wpi+wi;
}ifp1=ifp2;
}nprev *= n;
}return true;
}
逆濾波與維納濾波(二)
在數學應用上,對於運動引起的影象模糊,最簡單的方法是直接做逆濾波,但是逆濾波對加性雜訊特別敏感,使得恢復的影象幾乎不可用。最小均方差 維納 濾波用來去除含有雜訊的模糊影象,其目標是找到未汙染影象的乙個估計,使它們之間的均方差最小,可以去除雜訊,同時清晰化模糊影象。給定乙個系統 我們的目標是找出這樣的...
語音頻號濾波與逆濾波效果分析
設濾波器傳遞函式為h z 則輸入訊號x z 到輸出訊號y z 的濾波變換是 y z x z h z 濾波時輸入訊號x z 和系統函式h z 已知,通過濾波過程計算輸出訊號y z 逆濾波時則是輸出訊號y z 和系統函式h z 已知,試圖從輸出訊號y z 中恢復輸入訊號x z 即實現x z y z h ...
自適應濾波 矩陣求逆
讀書筆記09 前言 西蒙.赫金的 自適應濾波器原理 第四版第八章 最小二乘法。因為最小二乘涉及到矩陣求逆,因為通常對於秩缺矩陣其逆是不可求的,這就需要借助廣義逆矩陣。而廣義逆矩陣可以借助奇異值分解 svd,singularly valuable decomposition 進行求解。有了這個思路,在...