本系列文章由@浅墨_毛星云出品,转载请注明出处。
文章链接:
作者:毛星云(浅墨)
写作当前博文时配套使用的OpenCV版本:2.4.8
本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作。图像滤波系列文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了“方框滤波“,”均值滤波“和”高斯滤波“三种常见线性滤波操作。而作为非线性滤波的“中值滤波”和“双边滤波”,留待我们下次剖析。
先上一张精彩截图:
浅墨其实很希望把这篇文章写得精简和简明扼要,发现越深入写进去,需要讲的周边内容越多,于是文章越写越长,最后在word中字数统计突破了一万。。。。。。。
因为文章很长,如果详细啃的话,或许会消化不良。在这里给大家一个指引,如果是单单想要掌握这篇文章中讲解的OpenCV线性滤波相关的三个函数:boxFilter,blur和GaussianBlur的使用方法的话,直接看第三部分“浅出”和第四部分“实例”就行。
在以后写的OpenCV系列文章中,浅墨暂且准备将每篇博文中知识点都分成原理、深入、浅出和实例四大部分来讲解,
第一部分为和图像处理中线性滤波相关的理论,第二部分“深入”部分主要深入OpenCV内部,带领大家领略OpenCV的开源魅力,进行OpenCV相关源码的剖析,做到对OpenCV理解深刻,做一个高端大气的OpenCV使用者。第三部分“浅出”主要教会大家如何快速上手当前文章中介绍的相关OpenCV API函数。而在第四部分,浅墨会为大家准备一个和本篇文章相关的详细注释的综合实例程序。
这样的话呢,文章既不失深度,也不失快速入门的良方。希望浅墨按这样的新思路写出来的文章,无论是新手还是高手,看了都能有所收获。
给出本篇万字文章的结构脉络:
一、理论——相关图像处理概念介绍
二、深入——OpenCV源码讲解
三、浅出——API函数讲解
四、实例——详细注释的博文配套程序
OK,我们开始吧。
一、理论与概念讲解
1.关于平滑处理
“平滑处理“(smoothing)也称“模糊处理”(bluring),是一项简单且使用频率很高的图像处理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分辨率时,平滑处理是非常好用的方法。
2.滤波与滤波器
首先看一下滤波的概念,滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。
而滤波器就是建立的一个数学模型,通过这个模型来将图像数据进行能量转化,能量低的就排除掉,噪声就是属于低能量部分。
一种形象的比喻法是:我们可以把滤波器想象