高斯模糊和高斯双边滤波

import cv2 as cv
import numpy as np
def clamp(x):
    if x >255:
        return 255
    if x <0 :
        return 0
    return x
def gussian_noise(image):
    h, w, c = image.shape[:3]
    for h_each in range(h):
        for w_each in range(w):
            noise = np.random.normal(0, 20, 3)
            image[h_each, w_each, 0] = clamp(image[h_each, w_each, 0] + noise[0])
            image[h_each, w_each, 1] = clamp(image[h_each, w_each, 1] + noise[1])
            image[h_each, w_each, 2] = clamp(image[h_each, w_each, 2] + noise[2])


src = cv.imread("d:/a.jfif")
cv.imshow("src", src)
gussian_noise(src)


cv.imshow("noise", src)
dst = cv.GaussianBlur(src, (0, 0), 3)
cv.imshow("result", dst)
dst2 = cv.bilateralFilter(src,0,100, 5)
cv.imshow("dst2", dst2)
cv.waitKey(0)
cv.GaussianBlur(src, (0, 0), 3)是高斯滤波,
cv.bilateralFilter(src,0,100, 5)是高斯双边滤波,可以保留边缘


猜你喜欢

转载自www.cnblogs.com/loubin/p/12296468.html