Learning immediately: https://edu.csdn.net/course/play/26281/327075?utm_source=blogtoedu
OpenCV filter function: filter2D, blur, GaussianBlur, medianBlur, bilateralFilter (sigmaColor, sigmaSpace the like is generally set to a value greater than 150 or 200 150)
import cv2 as cv
import numpy as np
def gauss_noise(image, mean=0, var=0.001):
image=np.array(image/255, dtype=float)
noise=np.random.normal(mean, var ** 0.5, image.shape)
out=image+noise
if out.min() < 0:
low_clip = -1.
else:
low_clip = 0.
out=np.clip(out, low_clip, 1.0)
out=np.uint8(out*255)
return out
def main():
filename= "d:/lena.jpg"
img=cv.imread(filename)
img=gauss_noise(img)
blur=cv.blur(img, (5,5))
gauss=cv.GaussianBlur(img, (5,5), 0)
median=cv.medianBlur(img, 5)
bilateral=cv.bilateralFilter(img, 5, 150, 150)
cv.imshow("image", img)
cv.imshow("blur", blur)
cv.imshow("gauss", gauss)
cv.imshow("median", median)
cv.imshow("bi", bilateral)
cv.waitKey()
cv.destroyAllWindows()
if __name__ == '__main__':
main()