数字图像处理:线性和非线性滤波的平滑空间滤波器(Smoothing Spatial Filters)

article/2025/8/24 14:08:52

引言

本系列文章记录老猿自学冈萨雷斯《数字图像处理》的感悟和总结,不过估计更新会比较慢,白天要工作,都是晚上抽空学习,学习完一章再回头总结,想学的朋友可以自己下载英文原版(目前到第四版)和中文译本(目前应该到第三版)的电子版观看,如果想对照观看建议英文原版也找第三版。

这本《数字图像处理》不愧为数字图像处理的经典教程,知识范围广、内容详尽、案例贴近实践,至少很合老猿的口味。但中译本存在两个问题:

  • 有些翻译得不够精准或流利,对于这样的内容如果在老猿总结知识中出现,会进行调整,有些关键术语老猿会附上英文原词;
  • 中译本的图像案例很多都比原版差很多,甚至差到影响对讲述内容的理解,因此就算不看原版文字,图像案例最好还是对照原版的,老猿都取英文本的图像。

老猿在学习的总结上,针对特定知识点加上一些自己的感悟,如果感悟内容描写多一点,会标注为:老猿注,如果少就没有单独标注,可能到后来老猿自己都发现不了是否是自己改动过的。

一、概述

平滑滤波器用于模糊处理(blurring )和降低噪声(noise reduction)。模糊处理经常用于图像预处理任务中,例如在(大)目标提取(object extraction)之前去除图像中的一些琐碎细节(small details),以及桥接(bridging)直线或曲线的缝隙。通过线性滤波(linear filter)和非线性滤波(nonlinear filtering)进行模糊处理可以降低图像噪声。

二、线性滤波器的向量表示

相关和卷积可以表示成乘积求和的形式:
在这里插入图片描述
其中w是一个m×n大小的滤波器系数矩阵,z为滤波器覆盖的相应图像像素的灰度值。这也是线性滤波的向量表示,因为线性滤波做的所有事情就是实现乘积求和操作。

三、非线性滤波器

不能表示成乘积和形式的滤波器就是非线性滤波,如统计排序滤波(最大值滤波、最小值滤波、中值滤波等)以及高斯滤波。

使用非线性滤波器需要确定滤波器邻域大小以及邻域内图像像素执行的操作。

四、平滑线性滤波器(Smoothing Linear Filters)

4.1、概念

平滑线性空间滤波器的输出(响应)是包含在滤波器模板邻域内(the neighborhood of the filter mask)的像素的简单平均值。这些滤波器有时也称为均值滤波器(averaging filters),也可以把它们归入低通滤波器(lowpass filters)。

平滑滤波器的基本概念非常直观。它使用滤波器模板确定的邻域内像素的平均灰度值代替图像
中每个像素的值。

4.2、作用及应用

平滑滤波器处理的结果降低了图像灰度的“尖锐”(sharp)变化(transitions)。由于典型的随机噪声(random noise)由灰度级的急剧变化组成,因此常见的平滑处理(smoothing)应用就是降低噪声。

然而由于图像边缘(edges,几乎总是一幅图像希望有的特性)也是由图像灰度尖锐变化(sharp intensity transitions)带来的特性。所以均值滤波处理还是存在着不希望有的边缘模糊(blur edges)的负面效应(undesirable side effect)。另外这类处理的其他应用包括由于灰度级数量不足(insufficient number of intensity levels)而引起的伪轮廓效应(false contours)的平滑处理。

均值滤波器的主要应用是去除图像中的不相关(irrelevant)细节,其中“不相关”是指与滤波器模板尺寸相比较小的像素区域。

4.3、两种模板示例

图3.3.2显示了两个3x3平滑滤波器:
在这里插入图片描述

  1. 第一个滤波器产生下方的标准像素平均值。把模板系数代人式(3.4-3)即可清楚地看出这一点:
    在这里插入图片描述
    R是由模板定义的3x3邻域内像素灰度的平均值。注意代替上式中的1/9,滤波器的系数全为“1”,这里的概念是系数取1值时计算更有效,在滤波处理之后整个图像除以9。一个mxn模板应有等于1/mn的归一化常数。象这样所有系数都相等的空间均值滤波器有时称为盒状滤波器(box filter)。

  2. 图3.32所示的第二个模板更为重要一些。该模板产生所谓的加权平均(weighted average),使用这一术语是指用不同的系数乘以像素灰度,即一些像素的重要性(权重)比另一些像素的重要性更大。
    在模板中,处于该模板中心位置的像素所乘的值比其他任何像素所乘的值都要大,因此,在均值计算中为该像素提供更大的重要性。
    其他像素如同是模板中心距离的函数那样赋以成反比的权重。由于对角项离中心比离正交方向相邻的像素(参数为✓2)更远,所以它的权重比与中心直接相邻的像素更小。
    赋予中心点最高权重,然后随着距中心点距离的增加而减小系数值的加权策略的目的是在平滑处理中试图降低模糊(reduce blurring)程度。也可以选择其他权重来达到相同的目的。然而图3.32(b)所示模板中所有系数的和等于 16,对于计算机计算来说是一个有吸引力的特性,因为它是 2 的整数次幂。

在实践中,由于这些模板在一幅图像中任何一个位置所跨过的区域很小,通常很难看出使用图3.32中的各种模板或类似方式进行平滑处理后的图像之间的区别。

4.4、加权均值滤波的过程表示

对于一幅大小为M×N的图像,使用m×n的滤波器模板(m、n为奇数,a=(m-1)/2、b=(n-1)/2)进行加权均值滤波的过程可以由下式表示:
在这里插入图片描述

其中x取值为0–M-1,y取值为0–N-1。上式中的分母部分表示为模板各系数之后,它是只需要计算一次即可得到的常数。

4.5、使用各种尺寸模板的图像平滑示例及效果对比

与滤波器模板尺寸有关的图像平滑效果如图3.33所示:
在这里插入图片描述
图中显示了一幅原图像以及分别用尺寸为m=3、5、9、15和35像素的方形均值滤波器得到的相应平滑结果。

这些结果的主要特点如下:

  1. 当m=3时,可以观察到在整幅图像中有轻微的模糊。但正如所希望的那样,当图像细节与滤波器模板近似相同时,图像中一些细节受到的影响比较大。例如,图像中的3x3与5x5黑方块、较小的字母“a”和细颗粒噪声,与图像的其他部分相比,要更模糊一些。注意。噪声显著地降低了,字母的锯齿状边缘也令人满意地被平滑了;
  2. m=5时的结果基本与m=3类似,但模糊程度稍微有所增加;
  3. 在m=9时,可以明显地看出图像更加模糊,而且有 20%的黑色圆圈几乎不能像在前三幅图像中那样与背景明显地区分开来,这表明当目标的灰度与其相邻像素的灰度接近时,会导致模糊目标的混合效应;
  4. m=15和35时,就图像中目标物的尺寸来说,已属极端情况。这种极端类型的模糊处理通常用于去除图像中的一些小物体。例如,在图 3.35(f)中,三个小方框、两个小圆圈以及大部分噪声矩形区域已融入到背景中。注意,在这幅图中还有明显的黑的边界。这是我们用0(黑色)填充原图像的边界,经过滤波后再去除填充区域的结果。某些黑色混入了所有滤波后的图像,但对于使用较大滤波器平滑的图像,这就成为问题了。老猿认为这是因为滤波器比较大,导致滤波时黑色的边界对内部的像素产生了影响导致的。

正像早些时候提到的那样,空间均值处理的一个重要应用是为了对感兴趣的物体得到一个粗略的描述(gross representation)而模糊一幅图像,这样,那些较小物体的灰度就与背景混合在一起了,较大物体变得像“斑点”(bloblike)而易于检测。

空间均值处理模板的大小由那些即将融入背景中的物体尺寸来决定。作为实例,考虑图:
在这里插入图片描述

  • 虑图3.34(a)它是绕地轨道上的哈勃望远镜拍摄的一幅图像。
  • 图3.34(b)显示了应用15x15均值滤波器模板对该图像处理后的结果。我们可以看到,图像中的一些部分或者融入背景中,或者其亮度明显降低了。像这样利用阈值处理并基于物体亮度来消除某些物体是很典型的操作
  • 使用等于模糊图像最高亮度25%的阈值,并用图3.2(b)的阈值函数处理的结果示于图3.34©中。将该结果与原图像比较,我们看到,考虑图像中最大、最亮物体的表达方式是合理的。

五、统计排序(非线性)滤波器(Order-Statistic (Nonlinear) Filters)

5.1、定义

统计排序滤波器是一种非线性空间滤波器,这种滤波器的响应以滤波器包围的图像区域中所包含的像素的排序(排队ordering或ranking)为基础,然后使用统计排序结果决定的值代替中心像素的值。

5.2、中值滤波

统计排序滤波器中最知名的滤波器是中值滤波器(median filter),正如其名暗示的那样,它是将像素邻域内灰度的中值(在中值计算中包括原像索值)代替该像索的值。

一个数值集合的中值(median)ξ是这样的数值,即数值集合中有一半小于或等于ξ。还有一半大于或等干ξ。为了对一幅图像上的某个点进行中值滤波处理,首先将邻域内的像素分类排序。确定其中值,并将中值赋予滤波后图像中的相应像素点。

例如,对于一个3x3邻域。其中值是第5 个最大的值。而在一个5x5邻域中,中值就是第13个最大的值,等等。

当一个邻域中的一些像素值相同时,所有相等的值都可以作为中值。假如,在一个3x3邻域内有一系列像素值(10,20,20,20,15,20,20,25,100)。对这些值排序后为(10,15,20,20,20,20,20,25,100),那么其中值就是20。

中值滤波器的使用非常普遍,这是因为对于一定类型的随机噪声(random noise),它提供了一种优秀的去噪(noise-reduction)能力。而且比相同尺寸的线性平滑滤波器的模糊程度明显要低。

中值滤波器对处理脉冲噪声(impulse noise)非常有效,该种噪声也称为椒盐嗓声(salt-and-pepper noise),因为这种噪声是以黑白点的形式叠加在图像上的。

这样,中值滤波器的主要功能是使拥有不同于周边像素灰度级的点看起来更接近于它的相邻点。事实上,我们常使用m×m中值滤波器来去除那些相对于其邻域像素更亮或更暗并且其区域小于m²/2(滤波器区域的一半)的孤立像素族(isolated clusters),显然较大的像素簇(Larger clusters)所受到的影响明显较小。在这种情况下,“去除”(eliminated)的意思是强制为邻域的中值灰度(median intensity)。

例3.14 利用中值滤波降噪。
图3.35(a)显示了一幅被椒盐噪声污染的电路板的X射线图像。
在这里插入图片描述

为了说明这种情况下的中值滤波器处理效果比均值滤波器更好。在图3.35(b)中显示了用3x3邻域均值模板处理噪声图像的结果,而在图3.35©中显示了用3x3中值滤波器处理噪声图像的结果。均值滤波模糊了图像,并且噪声去除性能也很差。在这种情况下,中值滤波要远远优于均值滤波。通常中值滤波比均值滤波更适合去除椒盐噪声

5.3、其他统计排序滤波器

在图像处理中,尽管中值滤波器是使用得最为广泛的统计排序滤波器,但并不意味着它是唯一的。
中值象征一系列像素值排序后的第50%个值,但根据基本统计学可知,排序也适用于其他不同的情况。

例如,可以取第100%个值,即所谓的最大值滤波器(max filter)。这种滤波器在搜寻一幅图像中的最亮点时非常有用。一个3x3的最大值滤波器的响应可以由公式R=max{zk|k=1,2,···,9}给出。

相反,取第0%个值的滤波器就是所谓的最小值滤波器(min filter),它可用于相反的目的。

六、小结

本文介绍了线性滤波和非线性滤波的概念、作用以及应用示例,可以看到线性滤波和非线性滤波都有不错的应用场景,线性滤波器还可以有不同的系数,不同的波器的模板大小取决于要处理图像的目标,特定的模板对特定的噪声有比较好的作用,如线性滤波比较适合随机噪声,中值滤波适合椒盐噪声的处理。

更多图像处理请参考专栏《OpenCV-Python图形图像处理》、《图像处理基础知识》以及付费专栏《OpenCV-Python初学者疑难问题集》的介绍。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询:
老猿Python微信公号

也可以扫描博客左边栏目的微信公号二维码咨询。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░


http://chatgpt.dhexx.cn/article/iIw17Y6Y.shtml

相关文章

空间滤波(平滑滤波)

本实验所采用的空间滤波方法是平滑滤波,下图是两个3*3平滑(均值)滤波器模板,对图像进行平滑处理。 平滑线性空间滤波器的输出响应是包含在滤波器模板邻域内的像素的简单平均值。平滑滤波器多用于模糊处理和降低噪声。 第一个滤波…

群晖Synology Drive同步规则中过滤指定文件夹

学习Vue的过程中发现电脑上的Synology Drive同步文件时间变得超级长,检查发现是项目文件夹里的 node_modules 文件夹里文件非常多导致的,每个项目都有上万个文件,但是 Synology Drive 的文件过滤器并不能添加文件夹名 解决方案 进入这个路径…

Synology Drive 使用了哪些端口?

Drive的浏览器页面使用的是 5000/5001 DSM 端口 ,而同步使用的是 6690 端口。请您确认是否有将您的自定义端口转发到 6690 上。 DSM 服务使用的网络端口检查 TCP 端口的状态

修复群晖Synology Drive Client右键菜单缺失

1. 关闭Drive程序。 2. 进入控制面板 3. 选择用户账户 4. 选择用户账户 5. 更改用户帐户控制设置 6. 将滑块拨动到下图所示 7. 然后重启电脑。 8. 重启完毕后,关闭Drive程序和杀毒软件, 在文件资源管理器管理器地址栏中输入 %localappdata%\Synology…

群晖NAS同步阿里云盘

近期阿里云盘还是比较香的,不说别的,就“容量大、不限速”两个优点,已经足够比某度盘好多了。通过在群晖Docker里安装容器,可以让阿里云盘变成一台带webdav协议的文件服务器,群晖通过Cloud Sync套件实时地把文件同步到…

玩转群晖NAS套件系列二:synology Drive的安装使用保姆级教程!

本章介绍: 上一章节我们讲解《玩转群晖NAS套件系列一:cloud sync套件的安装与使用保姆级教程!》,此教程堪称史上手把手的保姆教程,受到广大网友的一致好评, 今天在这里介绍synology Drive,一款非…

群晖Cloud Station Serve/Drive登陆失败 解决方法

群晖Cloud Station Serve/Drive登陆失败 解决方法 内网登陆正常,外网登陆显示“连接失败。请检查您的网络设置并再设置一次。” 出现这种问题一般是端口没有映射导致,登陆路由器映射Cloud Station Serve插件的端口号6690,测试联机&#xff…

黑群晖drive套件的使用教程

黑群晖同步套件 前段时间心血来潮,组建了黑群晖。这个东西是早有耳闻,说的是文件管理的好东西。我组建本意是想作为一个云端存储个人文件的一个东西。但是要实现这个小小的目的,免不了一番折腾。 1、安装黑群晖 这个黑群晖是我花了90元在水…

群晖间备份Synology Drive ShareSync、Cloud Sync对比

两个群晖间的同步,目前有2种方式,Synology Drive ShareSync 和 CloudSync 。根据群晖的定位,Synology Drive ShareSync主要用于双群晖间的同步,而 CloudSync 主要用于群晖与各大网盘之间的同步。 Synology Drive ShareSync 的同步…

[NAS] Synology (群晖) DSM同步数据到阿里云盘

简介 群晖NAS通过webDAV同步阿里云盘的一些方法会因为某些开源项目的开发者放弃维护而失效,这里介绍一个最新同步到阿里云盘的方法 方法 / 步骤 一: 容器安装与配置 点击“注册表”,搜索aliyundrive,找到“messense/aliyundrive-webdav”…

群晖读取旧硬盘

无需格式化 解决文件系统 不支持 通过将旧硬盘挂载成为usb设备 1、进入系统后台 1.1开启群晖ssh功能 1.2 ssh连接到后台的liux系统 通过远程软件 我这边使用的是 mobaxterm 登录到群晖后台 在新页面中输入密码 1.2 切换为root用户 输入命令 sudo -i 回车后输入登录ssh的…

手把手教你创建群晖nas「共享文件夹」,从此告别 U 盘和低效传输

现如今,线上办公已经成为形势所趋,如何高效协作也成了职场人共同追求的目标📁 为了便于线上的文件管理与分发,我们可以在群晖nas上创建共享文件夹。将成员邀请到共享文件夹内,各成员可上传文件到在线文件夹中&#xff…

群晖挂载Unraid NFS文件夹

最近将黑群晖资料转移到了Unraid上,但群晖的Drive和Photo等套件还是比较好用。为了保持同步,计划在群晖上挂载Unraid的NFS共享文件夹。国内的教程基本上是教如何在Unraid挂载群晖的共享文件夹,查找相关页面后得到解决方法如下: Un…

synology群晖存储手机drive上传文件

1.电脑登录synology存储,选择桌面的套件中心 2.在搜索栏中输入"drive server",选择安装套件 synology Drive Server 3.手机上下载synology drive 这个应用,下载成功后出现如下页面 第一行是局域网,输入IP;外网和该存…

【群晖nas】raidrive 极简教程

1.群晖套件重心下载并配置 webDav server 2.raidrive连接群晖,本地化使用 网盘下载 链接:https://pan.baidu.com/s/1eP9zBjlPjmL2-0MlWUlS3A 提取码:7890 官网下载 레이드라이브 (naver.com) 蓝色按钮一直点,然后就下载了 …

【群晖Drive私有云】利用cpolar内网穿透实现公网远程群晖Drive

目录 前言 1.群晖Synology Drive套件的安装 1.1 安装Synology Drive套件 1.2 设置Synology Drive套件 1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive 2.1 Cpolar云端设置 2.2 Cpolar本地设置 2.3 测试和使用 3. 结语 前言 群晖作为专业的数据…

群晖NAS软件之:Drive你会用吗?带你装逼!

原文网址:https://www.toutiao.com/a6664790105338675715/ 原作者:sabayonlinux 我的NAS我的地盘 篇六:群晖NAS软件介绍与应用之Drive篇 安装Drive的理由 Drive是一款团队协作的多平台能共存储并共享的协同办公套件,包括WIndow…

【宇麦科技】群晖NAS套件之Drive的客户端安装与配置(二),新手必读!

Synology Drvie 随时存取,不限平台 可从浏览器、桌面客户端,和移动设备上随时存取数据。 同步和备份 通过实时同步、备份和计划备份重要文件夹,保护您的数据,并避免数据因误删或勒索软件威胁而无法挽回。 轻松、顺畅的协作 使用…

一元线性回归与多元线性回归理论及公式推导

一元线性回归 回归分析只涉及到两个变量的,称一元回归分析。一元回归的主要任务是从两个相关变量中的一个变量去估计另一个变量,被估计的变量,称因变量,可设为Y;估计出的变量,称自变量,设为X。…

线性回归理论说明及公式推导

一切从线性回归说起 线性回归的基本形式 对于一个给定的样本,有n个属性对样本进行描述,则该样本可用一下表达式进行描述: 其实x为输入,y为输出。而线性回归的主要任务,就是找出x,y之间的关系,我们可以想象…