常见的噪声种类有:椒盐噪声、高斯噪声
常见的去噪声方法有:均值滤波,中值滤波、高斯滤波
import cv2 as cv
import numpy as np
import random as r
a=cv.imread('img2_01.png')
print(a.shape)
t1=cv.getTickCount()
# ----------------------------椒盐噪声
for i in range(a.shape[0]*a.shape[1]//10): # 100/10=10% 100/5=20%变成5就是添加了20%的椒盐噪声
r1=r.randint(0,a.shape[0]-1)
c1=r.randint(0,1)*255
r2=r.randint(0,a.shape[1]-1)
c2=r.randint(0,1)*255
a[r1,r2]=(c1,c1,c1)
t2=cv.getTickCount()
t=(t2-t1)/cv.getTickFrequency()
print("生成椒盐噪声图片经历的时间:",t)
cv.imwrite('salt_pepper_image.png', a)# save image
# ----------------------------高斯噪声
for i in range(a.shape[0]):
for j in range(a.shape[1]):
g=r.gauss(0,10)
r1=np.where((g+a[i,j])>255,255,(g+a[i,j]))
r2=np.where(r1<0,0,r1)
a[i,j]=np.round(r2)
t2=cv.getTickCount()
t=(t2-t1)/cv.getTickFrequency()
print("生成高斯噪声图片经历的时间:",t)
cv.imwrite('gaussion_image.png', a)