一、方和滤波
使用API --- boxFiter(src, ddepth, ksize[,dst[,anchor[, normalize[, borderType]]]])方盒滤波
方盒滤波的卷积核如下所示:
--- normalize = Ture时, a = 1 / (W*H)滤波器的宽高
--- normalize = False时, a = 1 相当于什么都没做
一般情况使用normalize = Ture的情况,这时方盒滤波等价于均值滤波。
二、均值滤波
使用API---blur(src,ksize[, dst[, anchor[, borderType]]])
blur(模糊不清的事物,模糊的)
示例代码如下:
import cv2
import numpy as npdog = cv2.imread("dog.png")
NEW_DOG = cv2.resize(dog, (640, 480))
# 不需要手动创建卷积核, 只需要告诉方盒滤波,卷积核的大小是多少
# 创建方盒滤波
# new_dog = cv2.boxFilter(NEW_DOG, -1, (5, 5), normalize=True)
# 创建均值滤波
new_dog = cv2.blur(NEW_DOG, (5, 5))
cv2.imshow("Dog", np.hstack((NEW_DOG, new_dog)))
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果如下:
可以得到:
1)均值滤波会将图片变得模糊。
2)均值滤波和方和滤波在normalize = True的效果一样。