Image processing 频域高通滤波器

Image processing 频域高通滤波器,image-processing,filtering,signal-processing,fft,Image Processing,Filtering,Signal Processing,Fft,我对HPF有问题。在dft上实现HPF后,生成的图像非常奇怪 这里有一个例子(我是新来的,所以我不能发布图片,但没有它我就无法表达这个问题): 应用半径为50的HPF后 我不明白为什么会出现这种情况。当我在HPF掩模的中心添加白点时,效果很好。此外,低通滤波器工作完美 我想我可以消除FFT实现错误的可能性,因为我自己写了一个,我也使用了这个实现:librow.com/articles/article-10,结果几乎相同 这是我的HPF代码: void Picture::HighPass(int

我对HPF有问题。在dft上实现HPF后,生成的图像非常奇怪

这里有一个例子(我是新来的,所以我不能发布图片,但没有它我就无法表达这个问题):

应用半径为50的HPF后

我不明白为什么会出现这种情况。当我在HPF掩模的中心添加白点时,效果很好。此外,低通滤波器工作完美

我想我可以消除FFT实现错误的可能性,因为我自己写了一个,我也使用了这个实现:librow.com/articles/article-10,结果几乎相同

这是我的HPF代码:

void Picture::HighPass(int radius){
    const complex<double> oblivion=(0,0);
    const int middlex = w/2;
    const int middley=h/2;
    double distance=0;

    int * T = new int[w*h];

    //draw circle in the center
    for(int y=0; y<h; y++){
        for(int x=0; x<w; x++){
            distance = sqrt(pow((middlex-x),2) + pow((middley-y),2));
            if(distance<radius){ 
                T[x+y*w]=0;
            } else T[x+y*w]=1;
        }
    }
    //T[middlex+middley*w]=1;
    int *temp = new int[w*h];
    for(int i=0;i<w*h;i++)temp[i]=T[i];

        //swap quadrants 
    for(int x=0;x<middlex;x++){
        for(int y=0;y<middley;y++){
            T[x+y*w] = temp[(middlex+x)+(middley+y)*w];
            T[(middlex+x)+(middley+y)*w] = temp[x+y*w];
            T[(middlex+x)+y*w] = temp[x+((middley+y)*w)];
            T[x+((middley+y)*w)] = temp[(middlex+x)+y*w];
        }
    }

    for(int i=0;i<w*h;i++)
        if(T[i]==0) dft[i]=oblivion;

    delete [] T;
    delete[] temp;
}
void图片::高通(整数半径){
常数复遗忘=(0,0);
中间常数x=w/2;
中间常数=h/2;
双倍距离=0;
int*T=新的int[w*h];
//在中心画一个圆

对于(int y=0;y首先,过滤器内核中心的点有效地代表了图像的平均亮度/强度/偏移/偏差。这是过滤器的关键部分。如果将图像从空间域转换到频域,并与中心像素混淆,则会更改图像的平均亮度。

其次,通过在内核中生成一个黑色圆形,您似乎正在实现一个砖墙类型的过滤器。如果您将其可视化为一个3D图像,它将看起来像一个实心圆柱体。要修复振铃伪影(即:任何时候使用砖墙过滤器,您都会遇到振铃/锯齿伪影),使用高斯型过滤器。如果您将其可视化为3D图像,它看起来像是高斯分布的山型形状。请参考参考资料

因此,简而言之,与其生成砖墙滤波器,不如使用高斯滤波器。有关完整描述的图形示例,请参阅参考文献[3]中的“低通滤波:模糊”一节

参考资料

  • 高斯平滑,访问日期2014-02-19,
  • 高斯滤波,访问日期2014-02-19,
  • 测试FFT处理,访问日期2014-02-19,

  • 图像已经从ImageShack中消失(错误404)。