数字图像处理 实验六:频域图像增强方法

  • 实验内容

(1)选择任意一副图像,对其进行傅里叶变换,在频率域中实现二阶 butterworth 低通滤波器的平滑作用,截止频率任意设定。显示原始图像和滤波图像。

(2)选择任意一副图像,对其进行傅里叶变换,在频率域中实现两种不同半径(截止频率) 的高斯高通滤波的锐化效果,显示原始图像和滤波图像,及与原图像叠加的高频增强图像。

  • 源程序和结果

1)选择任意一副图像,对其进行傅里叶变换,在频率域中实现二阶 butterworth 低通滤波器的平滑作用,截止频率任意设定。显示原始图像和滤波图像。

A=imread('lena.bmp');

A=imnoise(A,'salt & pepper');

A=rgb2gray(A);

A1=double(A);

FA=fftshift(fft2(A1));

[M,N]=size(FA);%读取原图像傅里叶变换矩阵大小

D1=5;D2=15;D3=35;D4=65;D5=100;

n=2;%选取巴特沃斯滤波器的阶数为二阶

x0=floor(M/2);%令原点为图像的中点

y0=floor(N/2);

for i=1:M    

    for j=1:N

     D=sqrt((i-x0)^2+(j-y0)^2);%判定相对原点(图像中点)的距离    

     H1(i,j)=1/(1+(D/D1)^(2*n));%巴特沃斯低通滤波器    

     H2(i,j)=1/(1+(D/D2)^(2*n));     

     H3(i,j)=1/(1+(D/D3)^(2*n));     

     H4(i,j)=1/(1+(D/D4)^(2*n));    

     H5(i,j)=1/(1+(D/D5)^(2*n)); 

    end

end

FAH1=H1.*FA;%点乘,实现频域滤波

FAH2=H2.*FA; FAH3=H3.*FA; FAH4=H4.*FA; FAH5=H5.*FA;

g1=uint8(real(ifft2(ifftshift(FAH1))));

g2=uint8(real(ifft2(ifftshift(FAH2))));

g3=uint8(real(ifft2(ifftshift(FAH3))));

g4=uint8(real(ifft2(ifftshift(FAH4))));

g5=uint8(real(ifft2(ifftshift(FAH5))));

figure(1);

subplot(2,3,1);imshow(A);title('原图');

subplot(2,3,2);imshow(g1);title('巴特沃斯低通半径5');

subplot(2,3,3);imshow(g2);title('巴特沃斯低通半径15');

subplot(2,3,4);imshow(g3);title('巴特沃斯低通半径35');

subplot(2,3,5);imshow(g4);title('巴特沃斯低通半径65');

subplot(2,3,6);imshow(g5);title('巴特沃斯低通半径100');

2)选择任意一副图像,对其进行傅里叶变换,在频率域中实现两种不同半径(截止频率) 的高斯高通滤波的锐化效果,显示原始图像和滤波图像,及与原图像叠加的高频增强图像。

I = imread('lena.bmp');

I=rgb2gray(I);

s=fftshift(fft2(I));

[M,N]=size(s);                   

n=2;                                  

d0=40;%GLPF滤波

d1=5;

n1=floor(M/2);n2=floor(N/2);                          

for i=1:M

    for j=1:N

        d=sqrt((i-n1)^2+(j-n2)^2);        

h=1-1*exp(-1/2*(d^2/d0^2));

h2=1-1*exp(-1/2*(d^2/d1^2));

        s(i,j)=h*s(i,j);

        s2(i,j)=h*s(i,j);

    end

end

s=ifftshift(s);                          

gImg=uint8(real(ifft2(s)));

gImg2=uint8(real(ifft2(s2)));

figure(2);

subplot(231);imshow(I);title('原图');

subplot(232);imshow(gImg);title('40');

subplot(233);imshow(gImg2);title('5');

I=double(I)/256;

gImg=double(gImg)/256;gImg2=double(gImg2)/256;

J=imadd(I,gImg);J1=imadd(I,gImg2);

subplot(234);imshow(J);title('40叠加');

subplot(235);imshow(J1);title('5叠加');

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sftmnggsujgff.shhgft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值