平均模糊:过度模糊图像并忽略重要的边缘
blurred = cv2.blur(image, (kX, kY))
参数1:模糊对象
参数2:矩阵大小
高斯模糊:保留更多的图像边缘
blurred = cv2.GaussianBlur(image, (kX, kY), 0)
参数1:模糊对象
参数2:矩阵大小
参数3:标准方差
中位数模糊:图像中去除盐椒点,图像中的杂质点
blurred = cv2.medianBlur(image, k)
参数1:模糊对象
参数2:中位数值,为整型数据,数据越大图像越模糊
双边模糊:减少噪音同时仍然保持边缘,我们可以使用双边模糊。双边模糊通过引入两个高斯分布来实现
blurred =cv2.bilateralFilter(image, diameter, sigmaColor, sigmaSpace)
参数1:想要模糊的图像。
参数2:像素邻域的直径 - 这个直径越大,模糊计算中包含的像素越多。
参数3:颜色标准差,模糊时将考虑邻域中的更多颜色,相似颜色的像素才能显
着地影响模糊
参数4:空间标准偏差,更大的值意味着像素越远离中心像素直径将影响模糊计算。后面3个参数都为整型参数
下面我们就利用中值滤波做个示例,代码如下:
#!/usr/bin/env python3
import cv2
image = cv2.imread(r"blurdemo.jpg")
cv2.imshow("Input Image", image)
blurred = cv2.medianBlur(image, 3)
cv2.imshow("Result Image", blurred)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果图片如下: