【原】python+opencv图像处理(二十一)
上篇介绍了用opencv中的函数blur()实现邻域平均,除了用此函数外,还有其他可实现均值滤波的方法,如下。(1)根据数学公式,实现像素点的运算以实现领域平均。(2)用opencv带的2D滤波器filter2D()可以实现滤波。此函数在滤波中会经常用到。我把几种的代码放在一起,截图如下,代码中的红色注释说明了使用的是哪种方法。  上图中,第1张是原图,后三张都是均值滤波后的图。从图可以看出,不管用哪一种代码,实现的结果都是一模一样的。对于均值滤波,主要是用于去噪,但是在去噪的过程中可能会产生模糊,如上图所示,当选用的模板越大时,图像可能越模糊。以下图像分别是模板选择为(5,5)和(10,10)时的图像,可以看到图像噪声消除明显,但图像也越模糊。 模板的大小也不一定非要是3*3这类的,也可以是2*10,5*2这样不规则的,如果这样做的话主要就是模糊图像了,一种是水平模糊,一种是垂直模糊,如下图所示: 上图分别是(1,10)和(10,1)时的运行结果。
|