python&opencv 之图像模糊

使用低通低通滤波器可以达到图像模糊的目的,这对除去噪声有很大的帮助。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)
'''均值模糊通常是去随机噪声'''
'''中值模糊通常是去椒盐噪声'''

你可能感兴趣的:(python&opencv)