一:数字图像噪声来源
图像的获取(数字化过程)和传输过程,当使用相机获取图像时,光照程度和传感器温度是生成图像大量噪点的主要因素。
二:灰度图加入高斯噪声(正态噪声)
def GaussianNoise(src,mean,sigma):
NoiseImg=src
rows,cols=NoiseImg.shape
for i in range(rows):
for j in range(cols):
NoiseImg[i,j]=NoiseImg[i,j]+random.gauss(mean,sigma)
if NoiseImg[i,j]<0:
NoiseImg[i,j]=0
elif NoiseImg[i,j]>255:
NoiseImg[i,j]=255
return NoiseImg
img=cv2.imread('IMG_4470.JPG',0)
img=GaussianNoise(img,2,4)
cv2.imwrite('IMG_4470_GaussianNoise.jpg',img)
cv2.imshow('IMG_4470_GaussianNoise',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
输出结果为:
原图为:
三:彩色图加入高斯噪声
def GaussianNoise_color(src,mean,sigma):
NoiseImg=src
rows,cols,_=NoiseImg.shape
for i in range(rows):
for j in range(cols):
NoiseImg[i,j]=NoiseImg[i,j]+random.gauss(mean,sigma)
return NoiseImg
img=cv2.imread('IMG_4470.JPG')
img=GaussianNoise_color_percentage(img,2,4)
cv2.imwrite('IMG_4470_GaussianNoise_color_1.jpg',img)
cv2.imshow('IMG_4470_GaussianNoise_color_1',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
输出为: