使用低通低通滤波器可以达到图像模糊的目的,这对除去噪声有很大的帮助。opencv中提供了三种模糊技术:平均,高斯模糊,中值模糊。他们之间主要是卷积框的不同。
平均模糊的卷积框是由归一化卷积框完成,
高斯模糊就是把卷积核变成高斯核,
中值模糊是用与卷积框对应像素的中值来替代中心像素的值。
下面是代码演示:
import cv2
import numpy as np
def blur_demo(image):#平均模糊
dst = cv2.blur(image,(5,5))
cv2.imshow('dst',dst)
def median_blur_demo(image):#中值模糊
dst = cv2.medianBlur(image,5)
def custom_blur_demo(image):#自定义卷积核
# kernol = np.ones((5,5),np.float32)/25
kernol = np.array([[0,-1,0],[-1,5,-1],[0,-1,0]], np.float32)#总和等于0或者总和等于1
dst = cv2.filter2D(image,-1,kernol)
cv2.imshow('custom_blur',dst)
src = cv2.imread('E:\python\lena.jpg')
blur_demo(src)
custom_blur_demo(src)
cv2.imshow('src',src)
cv2.waitKey(0)
'''均值模糊通常是去随机噪声'''
'''中值模糊通常是去椒盐噪声'''