实验二B 图像的空域与频域滤波(源代码一站式复制粘贴)

免费下载入口: 作者本人提交的作业文档,自己稍稍改动即可提交

一、实验目的

1.掌握图像滤波的基本定义及目的。
2.理解空间域滤波的基本原理及方法。
3.掌握进行图像的空域滤波的方法。
4.掌握傅里叶变换及逆变换的基本原理方法。
5.理解频域滤波的基本原理及方法。
6.掌握进行图像的频域滤波的方法。

二、实验原理

1.频域增强
频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进行图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。
频域增强的主要步骤是:
1)选择变换方法,将输入图像变换到频域空间。
2)在频域空间中,根据处理目的设计一个传递函数,并进行处理。
3)将所得结果用逆变换得到增强的图像。
4)常用的频域增强方法有低通滤波和高通滤波。
2.低通滤波
图像的能量大部分集中在幅度谱的低频和中频部分,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。由卷积定理,在频域实现低通滤波的数学表达式:
在这里插入图片描述

1)理想低通滤波器(ILPF)

2)巴特沃斯低通滤波器(BLPF)

3)指数型低通滤波器(ELPF)

3.高通滤波
由于图像中的细节部分与其高频分量相对应,所以高通滤波可以对图像进行锐化处理。高通滤波与低通滤波相反,它是高频分量顺利通过,使低频分量受到削弱。高通滤波器和低通滤波器相似,其转移函数分别为:
1)理想高通滤波器(IHPF)

2)巴特沃斯高通滤波器(BLPF)

3)指数型高通滤波器(ELPF)

图像经过高通滤波处理后,会丢失许多低频信息,所以图像的平滑区基本上会消失。所以,可以采用高频加强滤波来弥补。高频加强滤波就是在设计滤波传递函数时,加上一个大于0小于1的常数,即:

三、实验内容与要求

1.傅里叶变换
1)读出一幅灰度图像,对其进行快速傅里叶变换,分别显示其幅度图像和相位图像。
2)仅对相位部分进行傅里叶逆变换后查看结果图像。
3)仅对幅度部分进行傅里叶逆变换后查看结果图像。
4)将图像的傅里叶变换置为其共轭后进行逆变换,比较新生成图像与原始图像的差异。
2.平滑频域滤波
1)设计理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器,截止频率自选。
2)读出一幅灰度图像,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截止频率自选),再做逆变换,观察不同的截止频率下采用不同低通滤波器得到的图像与原图像的区别,特别注意振铃效应。
3.锐化频域滤波
1)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截止频率自选。
2)读出一幅灰度图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截止频率自选),再做逆变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。

四、实验的具体实现


如果这篇文章对你帮助很大,麻烦帮忙,点下友情链接: 鱼儿项目网(直接点这里),进去之后切换几个页面,停留几十秒。感激不尽。本站采集全网自媒体,网赚类,电商营销课程。里面有一些免费项目大家也可以看看

%% 傅里叶变换
% 1)读出一幅灰度图像,对其进行快速傅里叶变换,分别显示其幅度图像和相位图像。
img=imread('Fig0219(a).tif');
f1=fft2(img);%快速傅里叶变换
f2=log(1+abs(f1));%振幅谱
f3=fftshift(f1);
f4=angle(f1);%相位谱
figure(1)
subplot(1,3,1),imshow(img),title('Original Image');
subplot(1,3,2),imshow(f2,[]),title('amplitude Image');
subplot(1,3,3),imshow(f4),title('pahse Image');
% 2)仅对相位部分进行傅里叶逆变换后查看结果图像。
f=ifft2(abs(f1));
figure(2)
subplot(2,3,1),imshow(img),title('Original Image');
subplot(2,3,2),imshow(f4),title('pahse Image');
subplot(2,3,3),imshow(log(1+abs(f)),[]),title('abspahse Image');
% 3)仅对幅度部分进行傅里叶逆变换后查看结果图像。
f=ifft2(abs(f1));
subplot(2,3,4),imshow(img),title('Original Image');
subplot(2,3,5),imshow(f2,[]),title('amplitude Image');
subplot(2,3,6),imshow(log(1+abs(f)),[]),title('absamplitude Image');
% 4)将图像的傅里叶变换 置为其共轭后进行逆变换,比较新生成图像与原始图像的差异。
%img=imread('Fig0427(a).tif');
f1=fft2(img);
f2=log(1+abs(f1));
f3=fftshift(f1);
f4=angle(f1);
f5=-f4;
f6=double(f3.*exp(f4));%傅里叶变换的复共轭
f7=ifft2(f6);%反傅里叶变换
figure(3)
subplot(1,2,1),imshow(img),title('Original Image');
subplot(1,2,2),imshow(real(f7),[]),title('inverse fourier transform');

%% 2.平滑频域滤波
%1)设计理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器,截止频率自选。
%%%%%理想低通滤波器透视图%%%%%
a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=10;%频带中心半径
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n=2;
for u=1:M
    for v=1;N
        a=sqrt((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));%D(u,v)
        if (a<=D0)%理想滤波器
            H(u,v)=1;
        else
            H(u,v)=0;
        end
    end
end
%figure(4);subplot(1,3,1),surf(U,V,H),title('理想低通滤波透视图');
%%%%%2阶巴特沃斯低通滤波透视图%%%%%
a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);
N=length(V);
D0=10;%频带中心半径
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n=2;
for u=1:M
    for v=1;N
        a=sqrt((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));%D(u,v)
        b=1+(a/D0)^2*n;
        H(u,v)=1/b;
    end
end
%subplot(1,3,2),surf(U,V,H),title('2阶巴特沃斯低通滤波透视图');
%%%%%高斯低通滤波透视图%%%%%
a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);
N=length(V);
D0=10;%频带中心半径
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n=2;
for u=1:M
    for v=1;N
        D1=((u-m-x0)^2+(v-n-y0).^2)^0.5;
        D2=((u-m+x0)^2+(v-n+y0).^2)^0.5;
        D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
        D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;
        H(u,v)=((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));%D(u,v)
    end
end
%subplot(1,3,3),surf(U,V,H),title('高斯低通滤波透视图');
%2)读出一幅灰度图像,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截止频率自选),再做逆变换,观察不同的截止频率下采用不同低通滤波器得到的图像与原图像的区别,特别注意振铃效应。
%%
%%%%%d0=15理想低通滤波%%%%%
f=double(img);
g=fft2(f);%傅里叶变换
g=fftshift(g);
[M,N]=size(g);
d0=15;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d<=d0)
            h=1;
        else 
            h=0;
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(5),
subplot(2,2,1),imshow(img),title('Original Image');
subplot(2,2,2),imshow(J2),title('d0=15 lowpass filter');
%%%%%d0=50理想低通滤波%%%%%
d0=50;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d<=d0)
            h=1;
        else 
            h=0;
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,3),imshow(J2),title('d0=50 lowpass filter');
%%%%%d0=100理想低通滤波%%%%%
d0=100;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d<=d0)
            h=1;
        else 
            h=0;
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,4),imshow(J2),title('d0=100 lowpass filter');

%%
%%%%%d0=15 2阶巴特沃斯低通滤波%%%%%
nn=2;
d0=15;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=1/(1+0.414*(d/d0)^(2*nn));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(6),
subplot(2,2,1),imshow(img),title('Original Image');
subplot(2,2,2),imshow(J2),title('d0=15 Butterworth lowpss filter');
%%%%%d0=50 2阶巴特沃斯低通滤波%%%%%
d0=50;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=1/(1+0.414*(d/d0)^(2*nn));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,3),imshow(J2),title('d0=50 Butterworth lowpss filter');
%%%%%d0=100 2阶巴特沃斯低通滤波%%%%%0;
d0=100;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=1/(1+0.414*(d/d0)^(2*nn));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,4),imshow(J2),title('d0=100 lButterworth lowpss filter');

%%
%%%%%d0=15 高斯低通滤波%%%%%
d0=15;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=exp(-(d.^2)./(2*(d0^2)));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(7),
subplot(2,2,1),imshow(img),title('Original Image');
subplot(2,2,2),imshow(J2),title('d0=15 Gaussian filter');
%%%%%%d0=50 高斯低通滤波%%%%%
d0=30;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=exp(-(d.^2)./(2*(d0^2)));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,3),imshow(J2),title('d0=50 Guassian filter');
%%%%%%d0=100 高斯低通滤波%%%%%
d0=100;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=exp(-(d.^2)./(2*(d0^2)));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,4),imshow(J2),title('d0=100 Guassian filter');

%% 3.锐化频域滤波
%1)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截止频率自选。
%%%%%理想高通滤波器透视图%%%%%
a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=15;%频带中心半径
H=zeros(M,N);
n=2;
for u=1:M
    for v=1;N
        a=sqrt((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));%D(u,v)
        if (a>=D0)%理想滤波器
            H(u,v)=1;
        else
            H(u,v)=0;
        end
    end
end
figure(8);
subplot(1,3,1),surf(U,V,H),title('理想高通滤波透视图');
%%%%%2阶巴特沃斯高通滤波透视图%%%%%
a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);
N=length(V);
D0=15;%频带中心半径
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n=2;
for u=1:M
    for v=1;N
        a=sqrt((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));%D(u,v)
        b=1+(a/D0)^2*n;
        H(u,v)=-1/b;
    end
end
subplot(1,3,2),surf(U,V,H),title('2阶巴特沃斯高通滤波透视图');
%%%%%高斯高通滤波透视图%%%%%
a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);
N=length(V);
D0=15;%频带中心半径
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
for u=1:M
    for v=1;N
        D1=((u-m-x0)^2+(v-n-y0).^2)^0.5;
        D2=((u-m+x0)^2+(v-n+y0).^2)^0.5;
        D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
        D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;
        H(u,v)=((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));%D(u,v)
    end
end
subplot(1,3,3),surf(U,V,H),title('高斯高通滤波透视图');
%2)读出一幅灰度图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截止频率自选),再做逆变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。
%%
%%%%%d0=15理想高通滤波%%%%%
f=double(img);
g=fft2(f);%傅里叶变换
g=fftshift(g);
[M,N]=size(g);
d0=15;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d>=d0)
            h=1;
        else 
            h=0;
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(9),
subplot(2,2,1),imshow(img),title('Original Image');
subplot(2,2,2),imshow(J2),title('d0=15 high filter');
%%%%%d0=30理想低通滤波%%%%%
d0=30;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d>=d0)
            h=1;
        else 
            h=0;
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,3),imshow(J2),title('d0=30 high filter');
%%%%%d0=60理想高通滤波%%%%%
d0=60;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d>=d0)
            h=1;
        else 
            h=0;
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,4),imshow(J2),title('d0=60 high filter');

%%
%%%%%d0=15 2阶巴特沃斯低通滤波%%%%%
nn=2;
d0=15;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d==0)
            h=0;
        else
            h=1/(1+0.414*(d0/d)^(2*nn));
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(10),
subplot(2,2,1),imshow(img),title('Original Image');
subplot(2,2,2),imshow(J2),title('d0=15 Butterworth high filter');
%%%%%d0=30 2阶巴特沃斯低通滤波%%%%%
d0=30;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
         d=sqrt((i-m)^2+(j-n)^2);
        if(d==0)
            h=0;
        else
            h=1/(1+0.414*(d0/d)^(2*nn));
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,3),imshow(J2),title('d0=30 Butterworth high filter');
%%%%%d0=60 2阶巴特沃斯高通滤波%%%%%0;
d0=60;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
         d=sqrt((i-m)^2+(j-n)^2);
        if(d==0)
            h=0;
        else
            h=1/(1+0.414*(d0/d)^(2*nn));
        end
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,4),imshow(J2),title('d0=60 lButterworth high filter');

%%
%%%%%d0=15 高斯高通滤波%%%%%
d0=15;
n=2;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=1-exp(-(d.^2)./(2*(d0^2)));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(11),
subplot(2,2,1),imshow(img),title('Original Image');
subplot(2,2,2),imshow(J2),title('d0=15 Gaussian filter');
%%%%%%d0=30 高斯高通滤波%%%%%
d0=30;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=1-exp(-(d.^2)./(2*(d0^2)));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,3),imshow(J2),title('d0=30 Guassian filter');
%%%%%%d0=60 高斯低通滤波%%%%%
d0=60;
m=fix(M/2);n=fix(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        h=1-exp(-(d.^2)./(2*(d0^2)));
        result(i,j)=h*g(i,j);
    end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(2,2,4),imshow(J2),title('d0=60 Guassian filter');

五、下载入口

免费下载入口: 作者本人提交的作业文档,自己稍稍改动即可提交

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m明月Java3

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

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

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

打赏作者

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

抵扣说明:

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

余额充值