模糊,即离散卷积
所以卷积通俗话语是:模糊操作
一维卷积原理:
image.png多维卷积原理:即每个通道进行一维卷积
模糊:均值模糊、中值模糊、自定义模糊
均值模糊
def blur_function(image):
"""
均值模糊:用于去除随机噪声
"""
horizontal_blur = cv.blur(image, (15, 1)) # 水平模糊
cv.imshow("horizontal_blur", horizontal_blur)
vertical_blur = cv.blur(image, (1, 15)) # 垂直模糊
cv.imshow("vertical_blur", vertical_blur)
均值模糊
中值模糊
def media_blur_function(image):
"""
中值模糊:用于去除椒盐噪声,即一粒粒的噪音
"""
media_blur = cv.medianBlur(image, 5)
cv.imshow("media_blur", media_blur)
除椒盐噪音
自定义模糊
def custom_blur_function(image):
"""
自定义模糊:可以进行模糊和锐化
"""
kernel = np.ones([5, 5], np.float32)/25 # 5*5 = 25
#kernel = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]], np.float32) /9 # 这个9要注意,何时求取整看总和吧,可能
dst = cv.filter2D(image, -1, kernel=kernel)
cv.imshow("custom_blur", dst)
自定义模糊
#锐化
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)
#总和 = 0:表示做边缘梯度
#总和 = 1:表示做增强的工作
dst = cv.filter2D(image, -1, kernel=kernel)
cv.imshow("custom_blur", dst)
锐化,图像增强
kernel = np.array([[0, -1, 0], [-1, 5, -1], [-1, -1, 0]], np.float32)
#总和 = 0:表示做边缘梯度
dst = cv.filter2D(image, -1, kernel=kernel)
cv.imshow("custom_blur", dst)
边缘梯度
网友评论