7.2 方框滤波

 

 

 

 

 

 

一、方块滤波的使用

处理结果= cv2.boxFilter(原始图像,目标图像深度,核大小,normalize属性)      //目标图像深度。一般设为-1,表示与原始图像深度一样。

                                                                                                                       //核大小,一般是(3,3)或(5,5)

                                                                                                                       //normalize属性,归一化属性。省略不写默认为true。

二、方框滤波与均值滤波的关系

当归一化属性取true时,进行归一化处理,这时与均值滤波效果相同。

当归一化属性取false时,不进行归一化处理,直接求周围N*N范围内的和,不再求平均。这时候就与均值滤波不同了,不过很容易发生溢出。当超过255时,就取255。

 

7.2 方框滤波

 

 

 

三、使用举例

r = cv2.boxFilter(image,-1,(5,5),normalize=1)        #这时方框滤波等价于均值滤波:r = cv2.blur(image,(5,5))。【例1】

r = cv2.boxFilter(iamge,-1,(5,5),normalize=0)        #不进行归一化处理。【例2】【例3】

 

例1:

'''
方框滤波
'''

import cv2

 

image = cv2.imread("image\\lenaNoise.png")            #经过椒盐攻击的图像


result = cv2.boxFilter(image,-1,(5,5),normalize=1)     #方框滤波

 

cv2.imshow("image", image)
cv2.imshow("result", result)

cv2.waitKey()
cv2.destroyAllWindows()

 

结果:

7.2 方框滤波

 

与均值滤波效果相同。

 

 

 

例2:

'''
方框滤波
'''

import cv2

image = cv2.imread("image\\lenaNoise.png")           #经过椒盐攻击的图像


result = cv2.boxFilter(image,-1,(5,5),normalize=0)   #方框滤波
result2 = cv2.boxFilter(image,-1,(2,2),normalize=0)  #方框滤波

 

cv2.imshow("image", image)
cv2.imshow("result", result)
cv2.imshow("result2", result2)

cv2.waitKey()
cv2.destroyAllWindows()

 

 

结果:

7.2 方框滤波

 

不进行归一化处理,采用5*5的核,周围25个像素值的和很可能超过255,导致像素点为白色。

不进行归一化处理,采用2*2的核,周围4个像素点的和有可能不超过255。

 

 

 

 

总结:

方框滤波如果进行归一化处理,就是均值滤波。

如果不进行归一化处理,就是求周围所有像素值的和,很可能全都是白色。