理想低通滤波器(ILPF):

二维理想低通滤波器的传递函数H(u,v)为:

式中:为理想低通滤波器的截止颗率,是一个规定非负的量,这里理想是指小于等于的题率可以完全不受影响地通过滤波器,而大于的频率则完全通不过,因此也叫截断频率。这种理想低通滤波器尽管在计算机中可模拟实现,但理想低通滤波器无使用实际的电子器件硬件实现这种从1到0陡峭突变的截断频率。是从频率平面上点(u,v)到频率平面原点(0,0)的距离。

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

n阶巴特沃斯低通滤波器(BLPE),它的传递函数为:

,n=1时, 处的值降为其最大值的1/2。

它的另一种巴特沃斯低通滤波器传递函数为:

巴特沃斯低通法波器传递函数特性为连续性衰减,而不像ILPF理想低通滤波那样是陡峭和明显的不连续性衰减。在它的尾部保留有较多的高频,所以对噪声的平滑效果不如HLPE。采用该滤波器在抑制噪声的同时,图像边缘的模糊程度大大减木,振铃效应不明显。

指数型低通滤波器(ELPF)

指数型低通滤波器(ELPE),它的传递函数为:

式中为截止频率,n为阶数。当,n=1时,对于式(3.1),降为最大值的1/e;对于式(3.2),降为最大值的,所以两者的衰减特征性仍有不同。由于ELPF具有比较平滑的过滤带,经此平滑后的图像没有“振铃”现象,而与巴特沃斯滤波相比,它更具有更快的衰减特性,处理的图像稍微模糊一些。通法波器传递函数特性为连续性衰减,而不像ILPF理想低通滤波那样是陡峭和明显的不连续性衰减。在它的尾部保留有较多的高频,所以对噪声的平滑效果不如HLPE。采用该滤波器在抑制噪声的同时,图像边缘的模糊程度大大减木,振铃效应不明显。

梯形低通滤波器(TLPF):

梯形低通滤波器(TLPF)的传递函数为:

式中:为梯形低通滤波器的截至频率。 按要求预先指定为,它的性能介于理想低通滤波器与巴特沃斯低通滤波器之间,对图像有一定的模糊和振铃效应。

实验步骤

1.GUI界面设计:

(1)打开guidequick start窗口,生成新的fig文件

(2)可视化的窗口设计,在窗口中拖入几个按钮用于交互程序的事件触发,如下图1,图2:

图   1

图  2

2.频率滤波基本步骤:

(1)给定一幅大小为m*n的图像f(x,y)。选择适当的填充参数P和Q,一般令P = 2m,Q = 2n。

(2) 对图像f(x, y)填充0,填充后得到图像大小为P*Q的图像fp(x,y)。

(3)用(-1)^(x+y)乘以fp(x,y)将其移到变换中心(中心化)。

(4)计算fp(x,y)的DFT,得到F(u,v)。

(5)生成一个实的,对称的滤波函数H(u, v),大小为P*Q,中心在(P/2, Q/2)处。然后相乘(矩阵点乘)得到G(u,v) = H(u,v)F(u,v)。

(6)对G(u, v)反傅里叶变换,然后取实部,再乘以(-1)^(x+y)进行反中心变换最后得到gp(x,y)。

(7)提取gp(x,y)左上角的m*n区域,对提取的部分进行标准化处理,得到最终的结果图像g(x,y)。

实验结果

相关代码:

(1)“高斯低通滤波”按钮

 function noisyy_Callback(hObject, eventdata, handles)
% hObject    handle to noisyy (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
g=imnoise(S,'gaussian',0.01);
imshow(g);
Image2=g;
title('噪声处理');

(2)巴特沃斯低通滤波按钮

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
I=im2double(S);
M=2*size(I,1);              %滤波器行数
N=2*size(I,2);              %滤波器列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=50;
n=6;
H=1./(1+(D./D0).^(2*n));    %构造巴特沃斯滤波器
J=fftshift(fft2(I,size(H,1),size(H,2)));    %转换到频域
K=J.* H;
L=ifft2(ifftshift(K));      %傅里叶反变换
L=L(1:size(I,1),1:size(I,2));
imshow(L);
Image2=L;title('巴特沃斯');

(3)“理想低通滤波”按钮

 function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
I=im2double(S);
M=2*size(I,1);               %滤波器行数
N=2*size(I,2);               %滤波器列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=80;                         %截止频率设置为80
H=double(D<=D0);             %理想低通滤波器
J=fftshift(fft2(I,size(H,1),size(H,2)));  %时域图像转换到频域
K=J.*H;                         %滤波处理
L=ifft2(ifftshift(K));       %傅里叶反变换
L=L(1:size(I,1),1:size(I,2));
%figure;
imshow(L);                      %显示滤波后的图像
Image2=L;title('理想滤波¨');

(4)“梯形低通滤波”按钮

 function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
IA=im2double(S);
[f1,f2]=freqspace(size(IA),'meshgrid');
%D=1020/size (IA,1) ;
D0=0.1 ;
D1=0.4;
r=sqrt (f1.^2+f2.*2) ;
Hd=zeros (size (IA)) ;
Hd(r<D0)=1;
Y= fft2 (double (IA)) ;
Y= fftshift (Y) ;
Ya=Y.*Hd;
Ya=ifftshift (Ya) ;
L= real (ifft2 (Ya)) ;
imshow (uint8(L)) ;
imshow(L);                        %显示滤波后的图像
Image2=L;title('梯形滤波');

(5)“导入”按钮

function btn_show_Callback(hObject, eventdata, handles)
% hObject    handle to btn_show (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,pathname]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif','文件类型(*.bmp,*.jpg,*.png,*.jpeg,*.tif)';'*.*', '所有文件(*.*)'},'Pick an image');
axes(handles.axes1);        %用axes命令设定当前操作的坐标轴为axes1;
fpath=[pathname filename];   %将文件名和目录组成一个完整的路径
Image=imread(fpath);
global S
S = Image;
imshow(Image);
set(handles.pushbutton1,'Enable','on');  %使其在打开命令使用后,可继续使用,放在最后。
guidata(hObject,handles);               %用来更新句柄

运行结果:

1.高斯噪声处理:

图   3

图   4(高斯噪声处理后)

2.巴特沃斯低通滤波:

图  5

图   6(巴特沃斯低通滤波处理后)

3.理想低通滤波:

图   7

图   8(理想低通滤波处理后)

4.梯形低通滤波:

图   9

图   9(梯形低通滤波处理后)

(1)低通滤波器滤除了高频成分,所以使得图像模糊。由于理想低通滤波器的过度特性过于急峻,会产生了振铃现象。

(2)巴特沃低通滤波对噪声的平滑效果不如理想低通滤波,采用该滤波器在抑制噪声的同时,图像边缘的模糊程度大大减小,振铃效果不明显。

(3)梯形低通滤波器对图像有一定的模糊和振铃效果。

噪声图像的三种低通滤波演示系统相关推荐

  1. 图像降噪算法——高斯低通滤波

    图像降噪算法--高斯低通滤波 图像降噪算法--高斯低通滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--高斯低通滤波 1. 基本原理 通过离散傅里叶变换对图像进行滤波流程作非常简 ...

  2. python-opencv图像的高通滤波和低通滤波

    13.python-opencv图像的高通滤波和低通滤波 第一章 python-opencv-图片导入和显示 第二章 python-opencv图像简单处理 第三章 python-opencv图像ma ...

  3. 数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波-平滑,高通滤波-锐化)

    文章目录 前言 一.傅里叶变换:傅里叶频谱图 二.低通滤波 1.理想低通滤波 2.布特沃斯低通滤波 3.高斯低通滤波 4.小结 三.高通滤波 1.理想高通滤波 2.布特沃斯高通滤波 3.高斯高通滤波 ...

  4. 图像去噪 + 低通滤波 opencv

    低通滤波:均值滤波.中值滤波.高斯滤波.双边滤波 高通滤波:sobel,scharr,Laplacian  一.低通滤波 任何图像都是由不同尺度的空间信息组成的,假设我们处理一幅图像(fig.1 左) ...

  5. 【数字图像处理2.1 】频率域中的 高通滤波 和 低通滤波 Python+Opencv+Numpy

    文章目录 前言 1.实验目的 2.频率域中高通.低通的效果图 3.代码 4.空间域滤波 与 频率域滤波比较 (1).回顾空间滤波 (2).相同点: (3).不同点: (4).二者关系: 前言 1.图像 ...

  6. OPENCV计算机视觉图像处理频域傅里叶 DFT 变换低通滤波逆变换IDFT

    OpenCV计算机视觉图像频域傅里叶 DFT 变换低通滤波逆变换IDFT 实验室做图像的,经常用到这部分,为了检测屏幕,看过好多博客,试用过许多代码,这个算是我找到的比较好用的,也容易改. 傅里叶变换 ...

  7. matlab 图像 幅度谱 低通滤波_数字图像处理期末复习2018-12-21

    数字图像处理期末复习2018-12-21 愉快先生 0.204 · 字数 5547 · 阅读 1834 2018-12-22 19:35 (数字图像冈萨雷斯第二版教材) 一.基本原理 图像的读取.存储 ...

  8. 图像 理想低通滤波_图像处理之滤波(下)

    [toc]目录 一.常规滤波 低通 高通 带通 带阻 二.非局部均值滤波 三.维纳滤波 四.卡尔曼滤波 前言 所谓滤波,其实就是从混合在一起的诸多信号中提取出所需要的信号. 信号的分类: 确定型信号, ...

  9. Opencv_13 图像滤波(低通滤波图像平滑去噪)

    文章目录 一. 图像滤波简介 ① 为什么图像是波? ② 图像的频率 ③ 滤波器 二. 低通滤波之线性滤波 ① 方框滤波 ② 均值滤波 ③ 高斯滤波 三. 低通滤波之非线性滤波中值滤波 ① 中值滤波简介 ...

最新文章

  1. linux sed删除文件最后一行及shell中单引号、双引号的区别
  2. qtp连接mysql 无驱动_QTP连接MySQL
  3. 最近想读的书想做的事
  4. [GAN学习系列2] GAN的起源
  5. 把握数据库发展趋势 DBA应如何避免“踩坑”?
  6. 冲刺阶段一 11.15--11.21
  7. 计算两日期之间差多少天----日期格式为:yyyy-mm-dd
  8. java synchronized 类锁_【java】synchronized对象锁和类锁简介【图文教程】
  9. mysql 2049_mysql数据库备份与还原,解决40101和ERROR 2049错误
  10. idea 无法新建工程
  11. 移动端图形化报表界面设计_移动端报表设计-帆软
  12. python基于flask_sockets实现WebSocket——叁
  13. 百度地图android wear,Android Wear多款搜狗地图标注内置
  14. 域用户登录方法在计算机上不被允许,域管理员不允许本地交互式登陆的解决方法...
  15. 如何批量查询谷歌PR权重是多少?谷歌PR权重怎么批量查询
  16. python代码解释4个作用域_Python中作用域的深入讲解
  17. flex 垂直方向 两端对齐
  18. ZooKeeper之服务器地址列表。
  19. Linux bash shell 编程笔记(基础篇)
  20. linux 在线和离线安装Mplayer视频播放器

热门文章

  1. iPhone13的热卖让人痛心,华为义无反顾担起反击苹果重任
  2. VS Code新建VUE项目
  3. 商场导视图用什么软件做,专业、便捷的室内电子地图绘制平台
  4. 关于foreach遍历list删除元素
  5. 八人过河思考策略_在思考云时平衡策略与战略
  6. java如何判断字符是否是字母?
  7. ubuntu shell 编程学习
  8. 寻找连通域C++程序复现(个人C++学习记录)
  9. C#利用自带的ZipFile压缩和解压zip文件,超级简单
  10. C# sql数据的导入导出