前言

采用线性滤波和非线性滤波是在空间域上处理图像最常用的滤波方法。matlab在处理图像滤波方面拥有可调用的函数,十分便利。我们可以根据自己的需要自行选择滤波方式对图像进行滤波。值得一提的是,图像锐化在某种程度上来说就是线性滤波。


一、线性滤波器

matlab常用的线性滤波函数是imfilter函数。在imfilter函数中会涉及到滤波掩膜w,这个w是需要预先给出的,相当于确定滤波方式。例如常用的拉普拉斯方法、高斯方法等。matlab中自带fspecial函数可以直接调用现成的模板,当然如果你觉得这些模板处理图像不够满意,也可以自行设计模板,模板本质上就是一个矩阵,尤以3*3矩阵为最常见。

在imfilter函数中,除了需要选择处理图像和滤波掩膜之外,还需要对图像边界如何处理进行规定。

imfilter(I1,w,'replicate'):图像通过复制图像边界外的值进行扩展

imfilter(I1,w,'symmetric'):图像通过边界镜像反射进行扩展

imfilter(I1,w,'circular'):图像通过将图像处理为二维周期函数的一个周期进行扩展

二、使用示例

设计拉普拉斯滤波器进行图像锐化

I1=imread('moon.tif');
w1=fspecial('laplacian',0);%调用已有的拉普拉斯算子
I2=imfilter(I1,w1,'replicate');%利用算子进行线性滤波
I3=I1-I2;%将滤波图像和原图进行叠加得到增强图
subplot(221),imshow(I1),title('原图');
subplot(222),imshow(I2),title('w为uint8类型时的拉普拉斯锐化');
subplot(223),imshow(I3),title('增强图');w2=[1 1 1;1 -8 1;1 1 1];%采用自己设计的拉普拉斯算子进行线性滤波
I4=imfilter(I1,w2,'replicate');
I5=I1-I4;
figure(2)
subplot(131),imshow(I1),title('原图');
subplot(132),imshow(I3),title('中心系数为-4的增强图');
subplot(133),imshow(I5),title('中心系数为-8的增强图');

三、结果展示

可以看到,采用中心系数为-8的算子处理得到的增强图处理细节更好。因此在使用线性滤波器时并不能完全依赖于fspecial函数直接调用现成模板。


四、非线性滤波器

matlab中常见的非线性滤波器是最小值滤波器、最大值滤波器和中值滤波器。这三种滤波器都可以利用ordfilt2函数实现,只需要给定不同的order即可。另外,由于中值滤波器对椒盐噪声具有出色的处理能力,所以matlab还给出了专门的中值滤波器函数medfilt2。

以3*3模板为例:

I2=ordfilt2(I1,1,ones(3,3)):将3*3的像素值从小到大排列,然后用第一位的最小值代替目标像素值达到滤波的目的(最小值滤波)

I2=ordfilt2(I1,3*3,ones(3,3)):将3*3的像素值从小到大排列,然后用最后一位(最大的一位)的值代替目标像素值达到滤波的目的(最大值滤波)

I2=ordfilt2(I1,(3*3+1)/2,ones(3,3)):将3*3的像素值从小到大排列,然后用中值代替目标像素值达到滤波的目的(中值滤波)

I2=medfilt2(I1,[3 3],'zeros'):采用中值滤波方式进行滤波,对于边界采用0进行填充

I2=medfilt2(I1,[3 3],'symmetric'):采用中值滤波方式进行滤波,对于边界采用镜像反射方式对称的沿边界扩展

I2=medfilt2(I1,[3 3],'indexed'):采用中值滤波方式进行滤波,对于边界若I1为double类,采用1进行填充,否则采用0进行填充

五、使用示例

设计三种滤波器进行滤波去除椒盐噪声

%非线性滤波
m1=imread('industry.tif');
m2=medfilt2(m1);%采用默认的中值滤波器
m3=medfilt2(m1,'symmetric');%采用镜像处理的中值滤波
m4=ordfilt2(m1,1,ones(3,3));%最小值滤波,3*3模板
m5=ordfilt2(m1,3*3,ones(3,3));%最大值滤波,3*3模板
m6=ordfilt2(m1,(3*3+1)/2,ones(3,3));%中值滤波,3*3模板
figure(3)
subplot(231),imshow(m1),title('原图');
subplot(232),imshow(m2),title('默认中值滤波');
subplot(233),imshow(m3),title('镜像对称中值滤波');
subplot(234),imshow(m4),title('ordfilt2函数最小值滤波');
subplot(235),imshow(m5),title('ordfilt2函数最大值滤波');
subplot(236),imshow(m6),title('ordfilt2函数中值滤波');

六、结果展示

中值滤波在处理椒盐噪声方面可以说是最佳的选择;最小值滤波似乎仅能去除白噪声而最大值滤波仅能去除灰度值偏大的噪声?(老师讲的全都还给他了···)

总之,中值滤波是非线性滤波器中最常用的选择!采用symmetric方法可以有效减小边界的黑色边框效应,在使用时可以三种填充方式都尝试比较一下再进行使用。

线性滤波器非线性滤波器相关推荐

  1. 图像处理中的线性和非线性滤波器(上)

    滤波器可以说是信号处理中最重要的研究对象,滤波器可以将原始信号的有用信息通过各种组合来凸显出来,因此很多时候也将它们称为Neighborhood operators,基本上所有涉及到特征的应用场合都要 ...

  2. [数字图像处理]图像去噪初步(2)--非线性滤波器

    1.非线性处理与线性处理的差别 上一篇博文的内容,是关于均值滤波器的.比方说像算术均值滤波器,几何均值滤波器.这以类型的滤波器的经常被用于剔除某些不须要的频率成分,或者选择须要的频率成分,从而达到去噪 ...

  3. MATLAB库函数firls(最小二乘线性相位FIR滤波器设计)的C语言实现

    firls函数功能 FILS设计了一种线性相位FIR滤波器,它可以最小化理想分段线性函数与滤波器在一组期望频带上的幅值响应之间的加权积分平方误差. b = firls(n,f,a) b = firls ...

  4. PS 图像特效-非线性滤波器

    利用非线性滤波器,使图像的色彩凝块,形成一种近似融化的特效. clc; clear all; addpath('E:\PhotoShop Algortihm\Image Processing\PS A ...

  5. 2020-03-12-脑电分析之线性与非线性变换

    layout title subtitle date author header-img catalog tags post 脑电分析之线性与非线性变换 EEG technology 2020-03- ...

  6. 卡尔曼滤波器(2) -- α−β−γ滤波器(例1)

    This blog is translated from https://www.kalmanfilter.net/default.aspx. It's an excellent tutorial a ...

  7. Pytorch----卷积神经网络(CNN,图像边缘检测 , Sobel滤波器 , Scharr滤波器)--入门级小实例(逐行注释)---学习笔记

    题目:对任意图片进行简单卷积操作,并提取图片的边缘信息 文章目录 小练习~卷积实例 小练习~边缘特征提取实例 关于边缘检测的原理 Sobel滤波器 Scharr滤波器 本次使用图片: 小练习~卷积实例 ...

  8. [运放滤波器]5_滤波器的分类

    [运放滤波器]4_积分微分电路 [动态系统的建模与分析]15_伯德图,bode图,为什么是20logM?分贝又是什么? [动态系统的建模与分析]9_一阶系统的频率响应_低通滤波器 [动态系统的建模与分 ...

  9. 卡尔曼滤波器(4) -- α−β−γ滤波器(例3例4总结)

    This blog is translated from https://www.kalmanfilter.net/default.aspx. It's an excellent tutorial a ...

最新文章

  1. RecyclerView的使用(1)之HelloWorld
  2. mysql datetime 对于hbm_MySQL库表设计小技巧
  3. Hadoop简介(1):什么是Map/Reduce
  4. 计算机网络PIC和SDV,SRBSDV和RBSDV检测技术的建立
  5. SAP UI5 enhancement on resourceBundle
  6. mysql升级5.5
  7. C++描述杭电OJ 2017.字符串统计||
  8. 大华热成像netsdkdemo_千年博物,智慧展馆丨大华股份全力守护“华夏珍宝库”...
  9. Java 设置文件只读
  10. (9)vue.js 指令(1)
  11. 一些系统事件的手动触发方法
  12. Angular讲义 ---作用域
  13. jsp+servlet+mysql 学生选课系统
  14. 微信图片dat转jpg工具(自动区分JPG、PNG、GIF)
  15. python click模块参数处理详解
  16. HTML5来了,7个混合式移动开发框架
  17. php保存word没背景图,为什么word文档明明保存了却不见了
  18. 【2017年第3期】电信大数据在信用风险管理中的应用
  19. U3D-实时PVP小地图实现
  20. doc转docx文件会乱吗_Word中doc和docx,到底有什么区别

热门文章

  1. stata最大值最小值命令_Stata: 双栏模型简介 (Doublehurdle model)
  2. 使用git和markdown制作电子书(一)
  3. Latex常用公式总结
  4. grin中pow算法-cuckoo cycle的lean算法简单分析
  5. 使用 ChatGPT API 和节点创建 CLI 聊天机器人.js
  6. 微信错误集锦 PHP ThinkPHP 方法
  7. HTML设计美观的菜单栏
  8. 01:机器人学数学基础
  9. win10 用户设置cmd 管理员权限
  10. webstorm解决git冲突