立即学习:https://edu.csdn.net/course/play/26281/327075?utm_source=blogtoedu
OpenCV滤波函数:filter2D,blur,GaussianBlur,medianBlur,bilateralFilter(sigmaColor,sigmaSpace一般设置为150或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()