模糊操作基本原理:
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()
版权声明:本文为Acmer_future_victor原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。