先给出一张图像,来说明带阻滤波器和带通滤波器的关系。
![](https://i-blog.csdnimg.cn/blog_migrate/7e40f9f59305a996ab5b3d2c75fd85a0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5616b66e9a8af929543f3f96f3d5da9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccdf2097616ee92a520fef6d9d216e2d.png)
由上图可以看出这张图片的中低成份占的比较多,而高频成份比较少。因为白色的像素都集中在中点和离中心的附近。对于频谱图,由白色代表某一频率点有响应,也就是原图含有该频率的成份。可以举个例子,假如我对一张图片加入椒盐噪声,这个椒盐噪声属于全频谱的。可以得到下图示
![](https://i-blog.csdnimg.cn/blog_migrate/76f9a5b6c4527f655e22d84bdd71e3a4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b8d08a9c612e13ee82f7cb8e3af1da91.png)
![](https://i-blog.csdnimg.cn/blog_migrate/482756730f439841c2bd9fad7d0b9c26.png)
很明显图像被污染了,频谱图出现了很多白色点,就代表这张图片在低频成份很多的情况下,又额外的增加了高频中频低频成份,如上第三图就出现了凹凸不平山峰一样。
解释完频率后来看带通滤波器和带阻滤波器。
![](https://i-blog.csdnimg.cn/blog_migrate/665c724c14effd3fc52ce2defac9763a.png)
再分别给出它们
傅里叶反变换图
![](https://i-blog.csdnimg.cn/blog_migrate/5757bc214054b4b85a96342f608747ec.png)
图4为带阻滤波器的三维视图,图5只含中频信号的图像,图6只含高频和低频信号。读者可以自己举例子来进行高频和低频的分析,一样的原理。
只给出带阻滤波器的相关代码
-
I=imread(
'C:\Users\hlx\Desktop\1.jpg'); %读入原图像文件
-
I2=rgb2gray(I);
-
I1=double(I2);
-
fftI=fft2(I1); % 二维离散傅立叶变换
-
sfftI=fftshift(fftI); % 直流分量移到频谱中心
-
[N1,N2]=size(sfftI);
-
n=
2;
-
d
0=
10;
-
d1=
200;
-
n1=floor(N1/
2);
-
n2=floor(N2/
2);
-
for i=
1
:N1
-
for j=
1
:N2
-
d=sqrt((i-n1)^
2+(j-n2)^
2);
-
if d<=d
0
|| d>=d1
-
h=
0;
-
else
-
h=
1;
-
end
-
result(i,j)=h*sfftI(i,j);
-
end
-
end
-
sfftI=result;
-
RR=real(sfftI); % 取傅立叶变换的实部
-
II=imag(sfftI); % 取傅立叶变换的虚部
-
A=sqrt(RR.^
2+II.^
2); % 计算频谱幅值
-
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*
255; %归一化
-
imshow(A);