《数字图像处理》空间滤波学习感悟1:空间滤波原理
Posted LaoYuanPython
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《数字图像处理》空间滤波学习感悟1:空间滤波原理相关的知识,希望对你有一定的参考价值。
一、引言
空间域图像处理(spatial processing)主要分为灰度变换(intensity transformations)和空间滤波(spatial filtering)两类。
空间滤波(Spatial Filtering)是图像处理领域应用广泛的主要工具之一,充分理解相关基本概念对于图像处理非常必要。
在《《数字图像处理》第三章学习总结感悟1:灰度变换与空间滤波概念及常用灰度变换方法介绍》介绍了空间滤波的概念及基本的原理,本节进一步据介绍空间滤波的详细机理。
二、空间滤概述
图像处理中既可以使用空间滤波来增强图像,也可以应用于其他方面。
滤波(filter)一词借用于频域处理(frequency domain processing),在频率域处理中。“滤波”是指接受(accepting)和通过(passing)或拒绝一定的频率分量(frequency components)。例如,通过低频的滤波器称为低通滤波器(lowpass filter)。低通滤波器的最终效果是模糊(blur)或平滑(smooth))一幅图像。我们可以用空间滤波器(spatial filters ,也称为空间掩模spatial masks、核kernels、模板templates和窗口windows)直接作于图像本身而完成类似的平滑。
事实上,线性空间滤波与频率域滤波之间存在一一对应的关系。空间滤波可提供频率域滤波一样多的功能,但空间滤波还可用于非线性滤波,而这在频率域中是做不到的。
三、空间滤波机理
在《《数字图像处理》第三章学习总结感悟1:灰度变换与空间滤波概念及常用灰度变换方法介绍》中简单解释过,空间滤波器由
(1)一个邻域(典型地是一个较小的矩形);
(2)对该邻域包围的图像像素执行的预定义操作(predefined operation)组成。
滤波产生一个新像素,新像素的坐标等于邻域中心的坐标(coordinates of the center of the neighborhood),像索的值是滤波操作(operation filtering)的结果。滤波器的中心访问输人图像中的每个像素,就生成了处理(滤波)后的图像。
如果在图像像素上执行的是线性操作(linear),则该滤波器称为线性空间滤波器(linear spatial filter)。否则,滤波器就称为非线性空间滤波器(nonlinear spatial filter)。
下图说明了使用3x3邻域的线性空间滤波的机理。
老猿理解上图表述的几层含义如下:
- 在图像中上图中包括三个部分,源图像、滤波器系数(the filter coefficients)和滤波器窗口(掩膜、模板)范围;
- 在图像中的任意一点(x,y),滤波器的响应(response)g(x,y)是滤波器系数与由该滤波器包含(encompassed)的图像像素的乘积(products)之和,即:
很明显,滤波器的中心系数 w(0,0)对准位置(x,y)的像素。对于一个大小为m×n的模板。我们假设m=2a+1且n=2b+1,其中a、b为正整数。这意味着在后续的讨论中,我们关注的是奇数尺寸的滤波器,其最小尺寸为3×3。
- 滤波器也可以使用偶数尺寸,或者长和宽中一个为偶数一个为奇数的混合模式,但使用奇数尺寸可以简化索引(simplifies indexing)和更直观(intuitive),因为滤波器的中心像素对应的坐标值落在整数值上,而如果是偶数值,在滤波器中心1个像素范围的坐标就不可能是整数,如4×4,则中心1个像素范围大小的坐标为 (1.5,1.5);
- 滤波器系数使用坐标形式来表述,可以简化线性滤波的表达式;
- 使用大小为m×n的滤波器,对大小为M×N的图像进行线性空间滤波,则该滤波操作可以由下式表达:
注意:滤波后的新像素值一般是赋值给输出图像中的对应位置,用滤波后的像素值替换输入图像中的对应位置的情形很少见,因为这会在执行滤波操作同时改变输入图像的内容。
四、小结
本文介绍了空间滤波的原理,空间滤波器由一个邻域和对该邻域包含的图像像素执行的预定义操作组成。空间滤波产生一个新像素,新像素的坐标等于邻域中心的坐标,像索的值是滤波操作的结果。通过滤波器的中心访问输人图像中的每个像素,就生成了处理(滤波)后的图像。
更多图像处理请参考专栏《OpenCV-Python图形图像处理》及《图像处理基础知识》的介绍。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。
如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,也可以扫描博客左边栏目的微信公号二维码咨询。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
关于老猿的付费专栏
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
- 付费专栏《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初学者疑难问题集专栏目录 》
- 付费专栏《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 ░
以上是关于《数字图像处理》空间滤波学习感悟1:空间滤波原理的主要内容,如果未能解决你的问题,请参考以下文章
《数字图像处理》第三章学习总结感悟1:灰度变换与空间滤波概念及常用灰度变换方法介绍