OpenCV&图像处理_2:平滑smoothing模糊blurring操作

如之前所述,我个人在这个栏目下的所有文章大都是拷贝,拷贝和粘贴,有需要请阅读原文:

OpenCV,OpenCV中文论坛,和Richard Szeliski写的Computer Vision: Algorithms and Applications

这里谈谈我对OpenCV上平滑的理解:

就一幅数字图像来说,大多区域内都是较为平坦的,如果领域内有一两个点像素突然变化,一般认为是噪点。如果一些连续相近的点变化,认为是边缘。而滤波旨在消除噪声对于图像的影响,例如取中值或者均值不就能较好的消除椒盐噪声的影响吗?但是问题又来了,这样边缘的变化不就也被模糊了吗?所以就用到双边滤波(Bilateral Filter)


首先一个函数式,如图1所示:

OpenCV&图像处理_2:平滑smoothing模糊blurring操作_第1张图片

图1 平滑操作的理论基础


OpenCV上的几个列子:

一:中值滤波

中值滤波是用中值像素代替核内所有像素。

void medianBlur(InputArray src, OutputArray dst, int ksize)

ksize为正方形核大小,必须奇数(如果偶数中值在哪?)。

如果是多通道图像则每个通道单独滤波,同时支持原地(in_place)滤波。

二:归一化滤波:

用核内所有像素的均值替换核内所有像素值

blur( src, dst, Size( i, i ), Point(-1,-1)

size指定核大小,Point(-1,-1)指定锚点位置(我个人认为就是中心点),默认(-1,-1)是核的中心。

归一化滤波的加权公式,如图2所示:

OpenCV&图像处理_2:平滑smoothing模糊blurring操作_第2张图片

图2 均值滤波的公式

三:高斯滤波:

公式如下图3所示:

OpenCV&图像处理_2:平滑smoothing模糊blurring操作_第3张图片

图3 高斯滤波

那么高斯滤波干什么事呢?这里有两个链接大家可以看看:

http://www.cnblogs.com/pegasus/archive/2011/05/20/2052031.html

http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm

四:最后就是双边滤波:

双边滤波就会很好的保留边缘信息,具体附上一个链接:

http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html


你可能感兴趣的:(OpenCV&图像处理,OpenCV,图像处理)