目  录

  • 一、基本概念及原理
    • 1. 理想低通滤波器:
    • 2. 巴特沃斯低通滤波器:
    • 3. 高斯低通滤波器:
    • 4. 高通滤波器:
    • 5. 拉普拉斯高通滤波器:
    • 6. Unmask高通滤波器:
  • 二、实现过程和结果分析
    • 第一题:
    • 第二题
    • 第三题
  • 参考资料

一、基本概念及原理

1. 理想低通滤波器:

理想低通滤波器在以原点为圆心、 D 0 D_0 D0​为半径的园内,通过所有的频率,而在圆外截断所有的频率。(圆心的频率最低,为变换的直流分量)。函数如下:
H ( s , v ) = { 1 , D ( u , v ) ≤ D 0 0 , D ( u , v ) > D 0 H(s,v)=\left\{ \begin{aligned} 1, D(u,v)≤D_0 \\ 0, D(u,v)>D_0 \end{aligned} \right. H(s,v)={1,D(u,v)≤D0​0,D(u,v)>D0​​

根据理想低通滤波器的函数画出其图像如下:

可以看出,理想低通滤波器的过渡非常急剧。

2. 巴特沃斯低通滤波器:

巴特沃斯低通滤波器的函数表达式如下,其中n称为其阶数:
H ( u , v ) = 1 1 + ( D ( u , v ) / D 0 ) 2 n H(u,v)=\frac{1}{1+(D(u,v)/D_0)^{2n}} H(u,v)=1+(D(u,v)/D0​)2n1​

根据函数画出其图像如下:

从图中,我们可以看出它的过渡没有理想低通滤波器那么剧烈。同时阶数越高,过渡越剧烈,越像理想低通滤波器;当阶数越低时,过渡越平缓,越像高斯低通滤波器。

3. 高斯低通滤波器:

高斯低通滤波器的函数表达式如下:
H ( u , v ) = e − D 2 ( u , v ) 2 D 0 2 H(u,v)=e^{\frac{-D^2(u,v)}{_{{2D_{_0}}^2}}} H(u,v)=e2D0​​2​−D2(u,v)​

根据函数画出其图像如下:

4. 高通滤波器:

高通滤波与低通滤波正好相反,是频域图像的高频部分通过而抑制低频部分。在图像中图像的边缘对应高频分量,因此高通滤波的效果是图像锐化。通常,我们用1减去一种低通滤波器,就可以得到相应的高通滤波器,反之亦然。

同样最简单的高通滤波器是理想高通滤波器。通过设置一个频率阈值,将高于该阈值的频率部分通过,而低于阈值的低频部分设置为0。

对于巴特沃斯滤波器,它的函数表达式除了可以用1减去其低通滤波的函数表达式之外,还可以直接将原低通表达式中的 D 0 D_0 D0​和 D ( u , v ) D(u,v) D(u,v)分子分母上下颠倒即可。

5. 拉普拉斯高通滤波器:

频域的拉普拉斯算子可以由如下的滤波器实现:

H ( u , v ) = − 4 π 2 ( u 2 + v 2 ) H(u,v)=-4\pi^2(u^2+v^2) H(u,v)=−4π2(u2+v2)

前提是 F ( u , v ) F(u,v) F(u,v)的原点在进行图像变换之前已经通过执行运算 f ( x , y ) ( − 1 ) x + y f(x,y)(-1)^{x+y} f(x,y)(−1)x+y中心化了,使得变换中心 ( u , v ) = ( 0 , 0 ) (u,v)=(0,0) (u,v)=(0,0)就是频率矩形的中点 ( M / 2 , N / 2 ) (M/2,N/2) (M/2,N/2)。否则

H ( u , v ) = − 4 π 2 [ ( u − M 2 ) 2 + ( v − N 2 ) 2 ] H(u,v)=-4\pi^2[(u-\frac{M}{2})^2+(v-\frac{N}{2})^2] H(u,v)=−4π2[(u−2M​)2+(v−2N​)2]

6. Unmask高通滤波器:

钝化模板由如下的表达式给出:

g m a x ( x , y ) = f ( x , y ) − f L P ( x , y ) f L P ( x , y ) = ℑ − 1 [ H L P ( u , v ) F ( u , v ) ] g_{max}(x,y)=f(x,y)-f_{LP}(x,y)\\  \\f_{LP}(x,y)=\Im^{-1}[H_{LP}(u,v)F(u,v)] gmax​(x,y)=f(x,y)−fLP​(x,y) fLP​(x,y)=ℑ−1[HLP​(u,v)F(u,v)]

最后图像由下式给出:

g ( x , y ) = f ( x , y ) + k ⋅ g m a x ( x , y ) g(x,y)=f(x,y)+k·g_{max}(x,y) g(x,y)=f(x,y)+k⋅gmax​(x,y)

当 k = 1 k=1 k=1时,为钝化模板; k > 1 k>1 k>1时,为高频提升滤波器。

二、实现过程和结果分析

第一题:

频域低通滤波器:设计低通滤波器包括 butterworth and Gaussian (选择合适的半径,计算功率谱比),平滑测试图像test1和2;分析各自优缺点;

1. 巴特沃斯低通滤波:

Matlab代码:

function p=Butterworth(Img_in,D0,n)
[M,N]=size(Img_in);    M=2*M;N=2*N;
u = -M/2:(M/2-1);   v = -N/2:(N/2-1);
[u,v] = meshgrid(u,v);
D = sqrt(u.^2+v.^2);
%设计滤波器:
H = 1./(1+(D./D0).^(2*n));
Img_fft= fft2(Img_in,size(H,1),size(H,2));
Img_fft_shift = fftshift(Img_fft);
Img_Butterworth = Img_fft_shift.*H;
Img_out = ifft2(ifftshift(Img_Butterworth));
Img_out = Img_out(1:size(Img_in,1),1:size(Img_in,2));
%输出图像:
figure;
subplot(2,2,1);imshow(Img_in);title("原始图像");
subplot(2,2,2);imshow(log(1+abs(Img_fft_shift)),[]);title('频域图像');
subplot(2,2,3);plot3(u,v,H);title('巴特沃斯滤波器');
subplot(2,2,4);imshow(Img_out);title(['滤波后的图像,D0=',num2str(D0),',n=',num2str(n)]);
%计算功率谱比:
S = 0;S1 = 0;
[P,Q] = size(Img_fft_shift);
for a = 1:Pfor b=1:QS1 = S1+(abs(Img_Butterworth(a,b)))^2;Img_out = (abs(Img_fft_shift(a,b)))^2;S=S+Img_out;end
end
p = S1/S;
end

结果与分析:

功率谱比: p = 0.9984 p=0.9984 p=0.9984

功率谱比: p = 0.9942 p=0.9942 p=0.9942

分析: 通过参数为 D 0 = 200 , n = 5 D_0=200,n=5 D0​=200,n=5 的巴特沃斯低通滤波器分别对两幅图片进行滤波,可以看出,两幅图像均变得更加光滑。对第一幅图像而言,功率谱比要稍大一些。

2. 高斯低通滤波器:

Matlab代码:

function p=Gaussian(Img_in,D0)
[M,N]=size(Img_in);    M=2*M;N=2*N;
u = -M/2:(M/2-1);   v = -N/2:(N/2-1);
[u,v] = meshgrid(u,v);
D = sqrt(u.^2+v.^2);
%设计滤波器:
H = exp(-D.^2/(2.*(D0.^2)));
Img_fft= fft2(Img_in,size(H,1),size(H,2));
Img_fft_shift = fftshift(Img_fft);
Img_Gaussian = Img_fft_shift.*H;
Img_out = ifft2(ifftshift(Img_Gaussian));
Img_out = Img_out(1:size(Img_in,1),1:size(Img_in,2));
%输出图像:
figure;
subplot(2,2,1);imshow(Img_in);title("原始图像");
subplot(2,2,2);imshow(log(1+abs(Img_fft_shift)),[]);title('频域图像');
subplot(2,2,3);plot3(u,v,H);title('高斯滤波器');
subplot(2,2,4);imshow(Img_out);title(['滤波后的图像,D0=',num2str(D0)]);
%计算功率谱比:
S = 0;S1 = 0;
[P,Q] = size(Img_fft_shift);
for a = 1:Pfor b=1:QS1 = S1+(abs(Img_Gaussian(a,b)))^2;Img_out = (abs(Img_fft_shift(a,b)))^2;S=S+Img_out;end
end
p = S1/S;
end

结果与分析:

功率谱比: p = 0.9839 p=0.9839 p=0.9839

功率谱比 p = 0.9839 p=0.9839 p=0.9839

分析: 通过参数为 D 0 = 100 D_0=100 D0​=100 的高斯低通滤波器分别对两幅图像进行滤波,可以看出,两幅图像均变得光滑,其滤波效果和巴特我司滤波器基本相当,且高斯滤波略胜一筹。但是两者在截止频率 D 0 D_0 D0​相同时,由于在过渡带处存在差异,所以功率谱比有所不同,当巴特沃斯低通滤波器的n越大时,过渡带越陡峭,功率谱比与高斯滤波器的差异也会越大。同时,当将两个滤波器的 D 0 D_0 D0​减小时,图像会越来越模糊,功率谱也会越来越小,即滤波后包含的低频分量越来越少。


第二题

频域高通滤波器:设计高通滤波器包括butterworth and Gaussian,在频域增强边缘。选择半径和计算功率谱比,测试图像test3,4;分析各自优缺点;

1. 巴特沃斯高通滤波器:

MATLAB代码:

function p=Butterworth(Img_in,D0,n)
[M,N]=size(Img_in);    M=2*M;N=2*N;
u = -M/2:(M/2-1);   v = -N/2:(N/2-1);
[u,v] = meshgrid(u,v);
D = sqrt(u.^2+v.^2);
%设计滤波器:
H = 1./(1+(D0./D).^(2*n));
Img_fft= fft2(Img_in,size(H,1),size(H,2));
Img_fft_shift = fftshift(Img_fft);
Img_Butterworth = Img_fft_shift.*H;
Img_out = ifft2(ifftshift(Img_Butterworth));
Img_out = Img_out(1:size(Img_in,1),1:size(Img_in,2));
%输出图像:
figure;
subplot(2,2,1);imshow(Img_in);title("原始图像");
subplot(2,2,2);imshow(log(1+abs(Img_fft_shift)),[]);title('频域图像');
subplot(2,2,3);plot3(u,v,H);title('巴特沃斯滤波器');
subplot(2,2,4);imshow(Img_out);title(['滤波后的图像,D0=',num2str(D0), ',n=',num2str(n)]);
%计算功率谱比:
S = 0;S1 = 0;
[P,Q] = size(Img_fft_shift);
for a = 1:Pfor b=1:QS1 = S1+(abs(Img_Butterworth(a,b)))^2;Img_out = (abs(Img_fft_shift(a,b)))^2;S=S+Img_out;end
end
p = S1/S;
end

结果与分析:

功率谱比: p = 0.0296 p=0.0296 p=0.0296

功率谱比: p = 0.0157 p=0.0157 p=0.0157

分析: 通过参数为 D 0 = 50 , n = 5 D_0=50, n=5 D0​=50,n=5 的巴特沃斯高通滤波器分别对两幅图像进行滤波,可以看到,通过高通滤波将图像的低频分量滤去,将高频分量保留提取出来,所以可以用来做图像的边缘提取。

2. 高斯高通滤波器:

MATLAB代码:

function p=Gaussian(Img_in,D0)
[M,N]=size(Img_in);    M=2*M;N=2*N;
u = -M/2:(M/2-1);   v = -N/2:(N/2-1);
[u,v] = meshgrid(u,v);
D = sqrt(u.^2+v.^2);
%设计滤波器:
H = 1-exp(-D.^2/(2.*(D0.^2)));
Img_fft= fft2(Img_in,size(H,1),size(H,2));
Img_fft_shift = fftshift(Img_fft);
Img_Gaussian = Img_fft_shift.*H;
Img_out = ifft2(ifftshift(Img_Gaussian));
Img_out = Img_out(1:size(Img_in,1),1:size(Img_in,2));
%输出图像:
figure;
subplot(2,2,1);imshow(Img_in);title("原始图像");
subplot(2,2,2);imshow(log(1+abs(Img_fft_shift)),[]);title('频域图像');
subplot(2,2,3);plot3(u,v,H);title('高斯滤波器');
subplot(2,2,4);imshow(Img_out);title(['滤波后的图像,D0=',num2str(D0)]);
%计算功率谱比:
S = 0;S1 = 0;
[P,Q] = size(Img_fft_shift);
for a = 1:Pfor b=1:QS1 = S1+(abs(Img_Gaussian(a,b)))^2;Img_out = (abs(Img_fft_shift(a,b)))^2;S=S+Img_out;end
end
p = S1/S;
end

结果与分析:

功率谱比: p = 0.0208 p=0.0208 p=0.0208

功率谱比: p = 0.0365 p=0.0365 p=0.0365

分析: 通过参数为 D 0 = 20 D_0=20 D0​=20 的高斯高通滤波器,分别对两幅图像进行高通滤波,由于滤去了低频分量,保留了高频分量,所以提取出了图像的边缘。对比两种滤波器可以看出,两者效果基本相当,高斯滤波略优一些。同时,如果调整程序中的参数可以发现,当截止频率 D 0 D_0 D0​ 增加时,两种滤波器所得到的图像边缘越来越清晰,但是当 D 0 D_0 D0​ 到一定程度时,由于滤去能量过多,所以图像会整体呈现黑色。且高通滤波器在滤波时,会将直流分量一起滤除,导致图像变暗。


第三题

其他高通滤波器:拉普拉斯和Unmask,对测试图像test3,4滤波;分析各自优缺点;比较并讨论空域低通高通滤波(Project3)与频域低通和高通的关系;

1. 拉普拉斯高通滤波器:

MATLAB代码:

function Laplacian(Img_in)
[M,N]=size(Img_in);    M=2*M;N=2*N;
u = -M/2:(M/2-1);   v = -N/2:(N/2-1);
[u,v] = meshgrid(u,v);
D = sqrt(u.^2+v.^2);
%设计滤波器:
H = -4.*pi.^2*(u.^2+v.^2);
Img_fft= fft2(Img_in,size(H,1),size(H,2));
Img_fft_shift = fftshift(Img_fft);
Img_Laplacian = Img_fft_shift.*H;
Img_out = ifft2(ifftshift(Img_Laplacian));
Img_out = Img_out(1:size(Img_in,1),1:size(Img_in,2));
%输出图像:
figure;
subplot(2,2,1);imshow(Img_in);title("原始图像");
subplot(2,2,2);imshow(log(1+abs(Img_fft_shift)),[]);title('频域图像');
subplot(2,2,3);plot3(u,v,H);title('拉普拉斯滤波器');
subplot(2,2,4);imshow(Img_out);title('滤波后的图像');
end

结果与分析:


分析: 通过拉普拉斯高通滤波分别对两幅图像进行处理,可以看出滤波器的边缘增强效果,但这个效果与之前的两个高通滤波器所得到的效果并不相同,拉普拉斯得到的滤波后图像有明显的线条感,对肉眼而言不是太“友好”。

2. Unmask高通滤波器:

MATLAB代码:

function Unmask(Img_in,D0,n)
Img_fft_shift=fftshift(fft2(Img_in));
[M,N]=size(Img_fft_shift);
for i=1:Mfor j=1:Nd=sqrt((i-fix(M/2))^2+(j-fix(N/2))^2);if d==0H(i,j)=0;elseH(i,j)=1/(1+0.414*(D0/d)^(2*n));endImg_out(i,j)=(1+H(i,j))*Img_fft_shift(i,j);end
end
Img_out=real(ifft2(ifftshift(Img_out)));
%输出图像:
figure;
subplot(2,2,1);imshow(Img_in);title("原始图像");
subplot(2,2,2);imshow(log(1+abs(Img_fft_shift)),[]);title('频域图像');
subplot(2,2,3);
u=-M/2:(M/2-1);v=-N/2:(N/2-1);
[u,v]=meshgrid(u,v);plot3(u,v,H);title('Unmask滤波器');
subplot(2,2,4);imshow(Img_out);title(['滤波后的图像,D0=',num2str(D0),',n=',num2str(n)]);
end

结果与分析:

分析: 通过Unmask高通滤波器分别对两幅图像进行高通滤波,经过仔细观察还是可以发现其边缘增强效果的。这个效果又不同与前述的几种高通滤波器的效果,让图像边缘的对比度有了一定的提升,总体来说图像更加清晰了。

空域滤波与频域滤波:

空域滤波定义为滤波函数与输入图像进行卷积,而频域滤波则定义为滤波函数与输入图像的傅里叶变换进行相乘。两者的纽带则是卷积定理和傅里叶变换。频率域增强技术和空间域增强技术有密切的联系,一方面,许多空域增强技术可借助频域概念来分析和帮助设计;另一方面,许多空域增强技术也可以通过频域来实现,而频域增强也可以通过空域实现。空域主要包括平滑滤波和锐化滤波。平滑滤波是要滤除不规则的噪声或干扰的影响,从频域的角度来看,不规则的噪声具有较高的频率,所以可用具有低通能力的频域滤波器来滤除。









参考资料

[1]冈萨雷斯.数字图像处理(第三版)北京:电子工业出版社,2011




数字图像处理作业链接:
数字图像处理第一次作业——Bmp格式与基本变换
数字图像处理第二次作业——图像仿射变换
数字图像处理第三次作业——基于直方图的图像空域操作
数字图像处理第四次作业——空域滤波与边缘检测
数字图像处理第五次作业——频域滤波器
数字图像处理第六次作业——图像噪声和恢复
数字图像处理第七次作业——图像直线检测

数字图像处理第五次作业——频域滤波器相关推荐

  1. 数字图像处理之matlab大作业:自制图像处理小工具

    学习的过程向来不是容易的,创造一个作品的过程更是不容易的.因此,在文章的最后,提供了两个现成的示例代码,大家直接可以拿来运行.在完成大作业的时候,大家可以在已有作品的基础上,按照自己的需求进行修改,添 ...

  2. 数字图像处理——第五章 图像复原与重建

    数字图像处理--第五章 图像复原与重建 文章目录 数字图像处理--第五章 图像复原与重建 写在前面 1 图像退化/复原过程的模型 2 噪声模型 2.1 高斯噪声 2.2 椒盐噪声 3 仅有噪声的复原- ...

  3. 数字图像处理 第五章图像复原与重建

    文章目录 数字图像处理 第五章 图像复原与重建 引言 5.1背景知识 5.2图像退化与复原 5.3噪声模型 高斯噪声 椒盐噪声 瑞丽噪声 伽马噪声 5.4只存在噪声的复原--空间滤波 均值滤波 统计排 ...

  4. 数字图像处理第五章——几何变换与图像配准

    数字图像处理第五章 数字图像处理---几何变换与图像配准 (一)点变换 (二)仿射变换 (三)投影变换 (四)应用于图像的几何变换 (五)MATLAB 中的图像坐标系统 5.1 输出图像位置 5.2 ...

  5. 数字图像处理 第五章 图像变换

    目录 一.图像变换的概念和意义 图像处理方法的分类 频域变换的一般处理过程 二.傅立叶变换 傅里叶变换的作用 傅里叶变换的定义 傅里叶变换的条件 离散傅里叶变换 傅立叶变换的规律 FFT的应用-高通滤 ...

  6. 数字图像处理——第五章 图像复原

    文章目录 图像复原 1. 图像退化/复原过程的模型 2. 噪声模型 2.1 使用imnoise对图像添加噪声 2.2 周期噪声 2.3 噪声参数估计 3 只有噪声存在的空间域图像恢复 3.1 均值滤波 ...

  7. 【数字图像处理】四种常用的滤波器

    数字图像处理 四种常用滤波器 数字图像处理 一.平滑滤波器 1.1 基本原理 1.2 作用 1.3 邻域加权平均实现方式 二.高斯滤波器 2.1 基本原理 2.2 特点 三.中值滤波器 3.1 基本原 ...

  8. 【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解

    本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片点运算处理,包括图像灰度线性变换 ...

  9. 数字图像处理-第五周-理论课

    第五章图像复原 主要内容包括图像的噪声模型.噪声消除 掌握不同的噪声模型的特点和去除噪声的方法,逆滤波.维纳滤波的原理和用法. 理解图像退化和处理的模型. 了解约束最小二乘法滤波,几何变换和图像配准. ...

最新文章

  1. python 代码-我整理的Python代码规则
  2. 约瑟夫环 单向循环链表实现
  3. 利用commons-fileupload 上传图片(包含表单数据)
  4. 【交通行业】轨迹相似性度量介绍
  5. Java中List详解
  6. 练习_用if语句替换三元运算符
  7. 720环物全景制作_什么是全景?关于360°全景和720°全景的区别你知道吗?
  8. 【终结版】C#常用函数和方法集汇总
  9. Spring中父子容器的实现实例
  10. php sql判断l列的存在,thinkphp 模块不存在:404
  11. 1.Python介绍
  12. Codeforces Round #753 (Div. 3) C. Minimum Extraction(最小抽离)
  13. linux 硬链接 软链接_Linux中的软链接–完整参考
  14. 开发 Windows 8 Bing地图应用(4)
  15. 如何在 Apple TV 上安装 tvOS 15 developer beta 9?
  16. ISA2006的部署和无人职守
  17. PhotoShop2018安装与破解教程
  18. 翻译记忆软件-塔多思TRADO经典教程_2
  19. 软件各种版本的含义!例如RC,M,GA等等
  20. Word如何转PDF

热门文章

  1. excel合并多个工作表_简单快速多个Excel表合并成一个Excel表
  2. 第7课 微信小程序实现图片搜索器案例:
  3. jquery.SuperSlide
  4. JavaScript(JS)的DOM对象(JS的Document对象)----什么是DOM对象?
  5. speedoffice(Excel)怎么给文字加粗
  6. cmd窗口执行cnpm报错记录:FullyQualifiedErrorId : UnauthorizedAccess或者因为在此系统上禁止运行脚本。有关详细信息,请参阅https。。
  7. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)
  8. wxPython的安装
  9. 熵值法的信息熵值、效用值如何计算?
  10. pyecharts 画折线图去掉折线上小圆圈