使用Opencv(Python)实现图像模糊
2020-07-07 本文已影响0人
小小老书童
图像模糊的方法
- 均值滤波(对高斯随机噪声有一定的抑制作用)---cv.blur()
- 中值滤波(对椒盐噪声有很好的抑制作用)---cv.median_blur()
- 高斯滤波(对高斯随机噪声有很好的抗性)---cv.gaussian_blur()
实现部分(均值滤波)
- 均值滤波cv.blur()
image = cv.blur(image,(5,5)) #cv.blur(src, ksize, dst=None, anchor=None, borderType=None)
效果(均值滤波)
image.pngimage.png
实现部分(中值滤波)
cv.median_blur(image, 5) #medianBlur(src, ksize, dst=None)
效果(中值滤波)
image.pngimage.png
实现部分(高斯滤波)
cv.GaussianBlur(image,(5,5),0) #GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
高斯噪声的制作
def clamp(pv):
if pv > 255 :
return 255
if pv <0
return 0
else :
return pv
def Gaussian_noise_demo(image):
h, w, c = image.shape
for row in range(h):
for col in range(w):
gn = np.random.normal(0,30,4)
b = image[row, col, 0]
g = image[row, col, 1]
r = image[row, col, 2]
image[row, col, 0] = clamp(b + gn[0])
image[row, col, 1] = clamp(g + gn[1])
image[row, col, 2] = clamp(r + gn[2])
cv.imshow("Gaussian_noise",image)
高斯噪声的制作的效果:
原图:
image.png
高斯噪声图:
image.png