python + opencv图像处理(八)——模糊操作

模糊操作基本原理:
1、基于离散卷积
2、定义好每个卷积核
3、不同卷积核得到不同的卷积效果
4、模糊是卷积的一种表象
分别有:均值模糊、中值模糊、自定义模糊

from cv2 import cv2 as cv
import numpy as np 

# 均值模糊 可以去噪
def blur_demo(image):
    dst = cv.blur(image,(5,5))  # 水平和垂直方向进行操作 常用(5,,5)
    cv.imshow("blur_demo",dst)

# 中值模糊 可以去噪  对于椒盐去噪效果比均值模糊好
def median_blur_demo(image):
    dst = cv.medianBlur(image,5)
    cv.imshow("median_blur_demo",dst)

# 自定义模糊
def custom_blur_demo(image):
    # kernel = np.ones([5,5],np.float32)/25
    # 根据前面知识进行修改
    # 可修改数组中的值  # 锐化
    kernel = np.array([[1,1,1],[1,1,1],[1,1,1]],np.float32)/9  # 这是3*3的数组,故为9
    dst = cv.filter2D(image,-1,kernel=kernel)
    cv.imshow('custom_demo',dst)

if __name__ == "__main__":
    filepath = "C:\\pictures\\person.jpg"
    img = cv.imread(filepath)       # blue green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",img)

    blur_demo(img)
    median_blur_demo(img)
    custom_blur_demo(img)

    cv.waitKey(0)
    cv.destroyAllWindows()

各个模糊后的结果以及原图
左:中值模糊
右:自定义模糊

python + opencv图像处理(八)——模糊操作_第1张图片
左:均值模糊
右:原图
python + opencv图像处理(八)——模糊操作_第2张图片

你可能感兴趣的:(opencv)