1.引言
上一节讲述了均值模糊、中值模糊、自定义模糊。
均值模糊有两种方式:基于平均值(均值模糊)、基于权重(高斯模糊)
高斯模糊去噪效果比均值模糊更好。
2.高斯模糊
2.1 高斯分布
上图将高斯滤波,拆分为两个一维的滤波,加快计算。
2.2 高斯模糊cv.GaussianBlur
import cv2 as cv
import numpy as np
def clamp(pv):
if pv>255:
return 255
if pv<0:
return 0
else:
return pv
"给图片添加高斯噪声"
def gaussian_noise(image):
''''''
h,w,h=image.shape
for row in range(h):
for col in range(w):
s=np.random.normal(0,50,3)#产生3个噪声值
#获取原图像素值
b=image[row,col,0]#blue
g = image[row, col, 1] # green
r = image[row, col, 2] # red
#为原图像素添加噪声
image[row,col,0]=clamp(b+s[0])
image[row, col, 1] = clamp(g + s[1])
image[row, col, 2] = clamp(r + s[2])
cv.imshow('noise image',image)
src=cv.imread(r'D:\Project\Opencv\Learning01\lina.png')
"""高斯模糊"""
gaussian_noise(src)#给图片添加噪声
dst=cv.GaussianBlur(src,(0,0),10)#高斯模糊
cv.imshow("origin image",src)
cv.imshow("Gaussian image",dst)
gaussian_noise(src)
cv.waitKey(0)