赞
踩
高斯模糊使用函数cv.GaussianBlur()完成。
cv.GaussianBlur(src, ksize, sigmaX)
我们应该指定应该是正数和奇数的内核的宽度和高度。我们还应该分别指定X和Y方向的标准差,sigmaX和sigmaY。如果只指定sigmaX,则sigmaY与sigmaX相同。如果两者都是零,则它们是从内核大小计算的。
如果你愿意,你可以用函数cv.getGaussianKernel()创建一个高斯内核。
1, 给一张图片增加高斯噪声
def gaussian_noise(image):
h, w, c = image.shape
for row in range(0, h):
for col in range(0, w):
noise = np.random.normal(0, 20, 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 + noise[0])
image[row, col, 1] = clamp(g + noise[1])
image[row, col, 2] = clamp(r + noise[2])
cv.imshow("noise image", image)
2, 对一张图片进行高斯模糊:
dst = cv.GaussianBlur(src=src, ksize=(5, 5), sigmaX=0)
其中各参数所表达的意义:
src:原图像;
ksize:高斯核的大小,其中的数值必须为正奇数
sigmaX:x方向标准方差
高斯模糊应用场景:去高斯噪声
Tips:
保证像素值在0——255之间
def clamp(pv): # 保证像素值在0——255之间
if pv > 255:
return 255
if pv < 0:
return 0
else:
return pv
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。