先给出一张图像,来说明带阻滤波器和带通滤波器的关系。



由上图可以看出这张图片的中低成份占的比较多,而高频成份比较少。因为白色的像素都集中在中点和离中心的附近。对于频谱图,由白色代表某一频率点有响应,也就是原图含有该频率的成份。可以举个例子,假如我对一张图片加入椒盐噪声,这个椒盐噪声属于全频谱的。可以得到下图示



很明显图像被污染了,频谱图出现了很多白色点,就代表这张图片在低频成份很多的情况下,又额外的增加了高频中频低频成份,如上第三图就出现了凹凸不平山峰一样。
解释完频率后来看带通滤波器和带阻滤波器。

再分别给出它们
傅里叶反变换图

图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);