ButterWorth低通滤波器(BLPF)不能正确过滤图像(c ++)

时间:2011-11-29 03:03:52

标签: c++ visual-c++ image-processing

这是我的低通滤波器实现代码,但无法正确过滤图像。

我错过了什么使它成为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] ;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您使用两个固定值作为频率响应,1.0和0.0取决于ω x 和ω y 。适当的过滤器使用其间的值。