首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

OpenCV 中模模糊糊算法 集合讨论

2012-08-31 
OpenCV 中模糊算法 集合讨论模糊算法在图像处理时的使用再平常不过,有必要彻底的了解OpenCV中自带的所有模

OpenCV 中模糊算法 集合讨论

模糊算法在图像处理时的使用再平常不过,有必要彻底的了解OpenCV中自带的所有模糊算法。

OpenCV中自带了4种模糊算法:

blur(均值模糊)GaussianBlur(高斯模糊)
medianBlur(中值模糊)
bilateralFilter(双边滤波)
原理上都是简单的,前3种算法分别使用了均值模型、高斯模型、中值模型进行滤波,非常直观易懂。最后一种双边滤波值得拿出来讨论,双边滤波可以说是效果最好的模糊算法,相对于传统的高斯滤波,双边滤波的一个重要特点就是能够保持物体的边缘。它们之间最直观的区别就是:高斯模糊之后感觉整个照片都是模糊的,而双边滤波之后整体的区域信息还是清晰,眼是眼鼻子是鼻子。
双边滤波的原理与其它的模糊算法有些不同:其它的模糊算法中目标点上的像素值通常是由其所在位置上的周围的一个小局部邻居像素的值所决定;而双边滤波中权重因子是利用两个像素之间的空间距离(在图像中为2D)关系来生成。高斯滤波在低通滤波算法中有不错的表现,但是其却有另外一个问题,那就是只考虑了像素间的空间位置上的关系,因此滤波的结果会丢失边缘的信息。这里的边缘主要是指图像中主要的不同颜色区域(比如蓝色的天空,黑色的头发等),而Bilateral就是在Gaussian blur中加入了另外的一个权重分部来解决这一问题。

下面简要、直观的用代码来看看各种模糊算法的效果吧:

使用核大小为17时的效果对比:OpenCV 中模模糊糊算法 集合讨论


可以很清楚的看到,双边滤波的效果非常棒,在模糊掉细节的同时,还能很好地保持着边缘。也可以想象,在PS MM照片的时候,双边滤波是很有效的,能够把皮肤变得看起来非常好。嘿嘿~~

热点排行