如果对直方图进行频域滤波会怎样

原直方图:

进行一维离散余弦变换,公式如下:

参考代码如下:

View Code
private int[] fourier() {

            int[] ft = new int[256];
            int N = 256;

            double Cu = 1;
            for(int u = 0; u < N; u++){

                if(u == 0){
                    Cu = 1.0/Math.Sqrt(2);
                }

                double sum = 0;
                for(int x = 0; x < N;x++){
                    sum += grays[x]*Math.Cos((2*x + 1) * u *Math.PI/(2*N));
                }
                double temp = Cu * Math.Sqrt(2.0 / N) * sum;
                ft[u] = (int)temp;
            }
           return ft;

        }

 

反变换的公式如下:

参考代码如下:

View Code
private int[] invertFourier() {

            int[] inverseft = new int[256];
            int N = 256;

            for (int x = 0; x < N; x++)
            {
                double sum = 0;
                sum =(1/ Math.Sqrt(2.0)) * ditong[0];
                for (int u = 1; u < N; u++)
                {

                    sum += ditong[u] * Math.Cos((2 * x + 1) * u * Math.PI / (2 * N));
                }
                double temp = Math.Sqrt(2.0 / N) * sum;
                inverseft[x] = Math.Abs((int)temp);
            }
            return inverseft;
        }

 

两式中,系数C(u)的取值按照如下规则:

其中,u是频域变量,x是灰度值,f(x)是对应灰度值的统计量。

将直方图进行DCT变换后,得到频谱图像如图:

按照当初的设想,滤去频率高的部分,可以使波形平滑。

低通

假设使用理想低通滤波器,即,设定一个阈值D0,高于D0的部分的频率被抑制,低于D0的部分可以通过。

假设D0为直流分量的0.618倍,则频域滤波及进行反DCT变换后的的效果为:

如果将D0设为直流分量的0.5倍,则效果为:

将D0设为直流分量的0.2倍,则效果为:

将D0设为直流分量的0.1倍,则效果为:

 

高通-按照个数取舍频率时

如果对直方图曲线进行高通,那么会有如下效果:

情况1:只保留直流分量时:

情况2:保留直流分量,和前10个交流分量时:

对比原直方图,可以看到已经出现了大致的轮廓:

情况3:保留直流分量及前20个交流分量时:

此时,形态就更接近原直方图了:

情况4:保留直流分量及前30个交流分量时:

情况5:保留直流分量及前50个交流分量时

高通-按照频率大小进行取舍

D0=0.9*直流分量时:

D0=0.8*直流分量时:

D0=0.5*直流分量时:

D0=0.4*直流分量时:

D0=0.3*直流分量时:

D0=0.2*直流分量时:

D0=0.1*直流分量时:

D0=0.05*直流分量时:

转载于:https://www.cnblogs.com/elaron/archive/2012/06/11/2544639.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值