这是我的低通滤波器实现代码,但无法正确过滤图像。
我错过了什么使它成为2阶的butterworth过滤器?
输入:F - FFT图像的2D系数
输出:LF - ButterWorth过滤系数
void BLPF(Complex<double> *F, Complex<double> *LF, int width, int height)
{
int i, j ;
int Df ;
int centerX, centerY ;
centerX = width / 2 ;
centerY = height / 2 ;
Df = 32 ;
for(j = 0; j < height; j++) {
for(i = 0; i < width; i++) {
if((i - centerX) * (i - centerX) + (j - centerY) * (j - centerY) > Df * Df) {
LF[i + j * width] = 0.0 ;
} else {
LF[i + j * width] = F[i + j * width] ;
}
}
}
}
答案 0 :(得分:0)
您使用两个固定值作为频率响应,1.0和0.0取决于ω x 和ω y 。适当的过滤器使用其间的值。