数字图像处理第五次作业——频域滤波器
目 录
- 一、基本概念及原理
- 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)≤D00,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)=e2D02−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格式与基本变换
数字图像处理第二次作业——图像仿射变换
数字图像处理第三次作业——基于直方图的图像空域操作
数字图像处理第四次作业——空域滤波与边缘检测
数字图像处理第五次作业——频域滤波器
数字图像处理第六次作业——图像噪声和恢复
数字图像处理第七次作业——图像直线检测
数字图像处理第五次作业——频域滤波器相关推荐
- 数字图像处理之matlab大作业:自制图像处理小工具
学习的过程向来不是容易的,创造一个作品的过程更是不容易的.因此,在文章的最后,提供了两个现成的示例代码,大家直接可以拿来运行.在完成大作业的时候,大家可以在已有作品的基础上,按照自己的需求进行修改,添 ...
- 数字图像处理——第五章 图像复原与重建
数字图像处理--第五章 图像复原与重建 文章目录 数字图像处理--第五章 图像复原与重建 写在前面 1 图像退化/复原过程的模型 2 噪声模型 2.1 高斯噪声 2.2 椒盐噪声 3 仅有噪声的复原- ...
- 数字图像处理 第五章图像复原与重建
文章目录 数字图像处理 第五章 图像复原与重建 引言 5.1背景知识 5.2图像退化与复原 5.3噪声模型 高斯噪声 椒盐噪声 瑞丽噪声 伽马噪声 5.4只存在噪声的复原--空间滤波 均值滤波 统计排 ...
- 数字图像处理第五章——几何变换与图像配准
数字图像处理第五章 数字图像处理---几何变换与图像配准 (一)点变换 (二)仿射变换 (三)投影变换 (四)应用于图像的几何变换 (五)MATLAB 中的图像坐标系统 5.1 输出图像位置 5.2 ...
- 数字图像处理 第五章 图像变换
目录 一.图像变换的概念和意义 图像处理方法的分类 频域变换的一般处理过程 二.傅立叶变换 傅里叶变换的作用 傅里叶变换的定义 傅里叶变换的条件 离散傅里叶变换 傅立叶变换的规律 FFT的应用-高通滤 ...
- 数字图像处理——第五章 图像复原
文章目录 图像复原 1. 图像退化/复原过程的模型 2. 噪声模型 2.1 使用imnoise对图像添加噪声 2.2 周期噪声 2.3 噪声参数估计 3 只有噪声存在的空间域图像恢复 3.1 均值滤波 ...
- 【数字图像处理】四种常用的滤波器
数字图像处理 四种常用滤波器 数字图像处理 一.平滑滤波器 1.1 基本原理 1.2 作用 1.3 邻域加权平均实现方式 二.高斯滤波器 2.1 基本原理 2.2 特点 三.中值滤波器 3.1 基本原 ...
- 【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解
本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片点运算处理,包括图像灰度线性变换 ...
- 数字图像处理-第五周-理论课
第五章图像复原 主要内容包括图像的噪声模型.噪声消除 掌握不同的噪声模型的特点和去除噪声的方法,逆滤波.维纳滤波的原理和用法. 理解图像退化和处理的模型. 了解约束最小二乘法滤波,几何变换和图像配准. ...
最新文章
- python 代码-我整理的Python代码规则
- 约瑟夫环 单向循环链表实现
- 利用commons-fileupload 上传图片(包含表单数据)
- 【交通行业】轨迹相似性度量介绍
- Java中List详解
- 练习_用if语句替换三元运算符
- 720环物全景制作_什么是全景?关于360°全景和720°全景的区别你知道吗?
- 【终结版】C#常用函数和方法集汇总
- Spring中父子容器的实现实例
- php sql判断l列的存在,thinkphp 模块不存在:404
- 1.Python介绍
- Codeforces Round #753 (Div. 3) C. Minimum Extraction(最小抽离)
- linux 硬链接 软链接_Linux中的软链接–完整参考
- 开发 Windows 8 Bing地图应用(4)
- 如何在 Apple TV 上安装 tvOS 15 developer beta 9?
- ISA2006的部署和无人职守
- PhotoShop2018安装与破解教程
- 翻译记忆软件-塔多思TRADO经典教程_2
- 软件各种版本的含义!例如RC,M,GA等等
- Word如何转PDF
热门文章
- excel合并多个工作表_简单快速多个Excel表合并成一个Excel表
- 第7课 微信小程序实现图片搜索器案例:
- jquery.SuperSlide
- JavaScript(JS)的DOM对象(JS的Document对象)----什么是DOM对象?
- speedoffice(Excel)怎么给文字加粗
- cmd窗口执行cnpm报错记录:FullyQualifiedErrorId : UnauthorizedAccess或者因为在此系统上禁止运行脚本。有关详细信息,请参阅https。。
- Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)
- wxPython的安装
- 熵值法的信息熵值、效用值如何计算?
- pyecharts 画折线图去掉折线上小圆圈