python+opencv 模糊操作

模糊操作基本原理:

1、基于离散卷积

2、定义好每个卷积核

3、不同卷积核得到不同的卷积效果

4、模糊是卷积的一种表象

均值模糊:用来去除随机噪声

dst = cv.blur(image, (15, 1))  # 15*1的卷积核,水平方向

中值模糊:用来去除椒盐噪声

dst = cv.medianBlur(image, 5)  # 5*5的卷积核

自定义模糊:

kernel = np.ones([5, 5], np.float32) / 25  # 除以25是因为卷积核大小是5*5的
dst = cv.filter2D(image, -1, kernel = kernel)
import cv2 as cv
import numpy as np


# 均值模糊
def blur_demo(image):
    dst = cv.blur(image, (5, 5))  # 15*1的卷积核(水平方向的均值模糊)
    cv.imshow('blur_demo', dst)


def median_blur_demo(image):
    dst = cv.medianBlur(image, 5)  # 卷积核为5*5
    cv.imshow('median_blur_demo', dst)


def custom_blur_demo(image):
    # 像素值在0-255之间,最大是5*5个255,这时会溢出,防止溢出,应除以25
    # kernel = np.ones([5, 5], np.float32) / 25
    kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)  # 锐化算子
    dst = cv.filter2D(image, -1, kernel=kernel)
    cv.imshow('custom_blur_demo', dst)

src = cv.imread('C:/Users/Y/Pictures/Saved Pictures/lenanoise.png')
cv.namedWindow('input image', cv.WINDOW_AUTOSIZE)
cv.imshow('input image', src)
# blur_demo(src)
custom_blur_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()
发布了70 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Acmer_future_victor/article/details/104126726