import cv2
import numpy as np
# 添加高斯噪聲
def GaessNoisy(src, sigma):
NoiseImg = src.copy()
s = np.random.normal(0, 1, size=src.shape)*sigma
NoiseImg = np.add(NoiseImg, s)
NoiseImg.astype(dtype=np.uint8)
return NoiseImg
def readImage2Data():
img = cv2.imread('./VOC2012/2007_000027.jpg')
# 添加高斯噪聲
noisyImage = GaessNoisy(img, 20)
# 添加椒鹽噪聲
# noisyImage = SaltAndPepper(img, 0.2)
img = img/255.0
noisyImage = noisyImage/255.0
cv2.imshow('i', img)
cv2.imshow('img', noisyImage)
cv2.waitKey()
cv2.imwrite('./VOC2012/2007_000027_noisy.jpg', noisyImage*255, [int(cv2.IMWRITE_JPEG_QUALITY), 100]) # 保存圖片
if __name__ == '__main__':
readImage2Data()
1.要注意把圖片文件放在當前的文件夾下。
2.此處的代碼是添加了20個高斯噪聲的情況。
3.添加椒鹽噪聲的代碼如下:
# 添加椒鹽噪聲
def SaltAndPepper(src, percetage):
NoiseImg = src.copy()
NoiseNum = int(percetage*src.shape[0]*src.shape[1])
for i in range(NoiseNum):
randX = np.random.random_integers(0, src.shape[0]-1)
randY = np.random.random_integers(0, src.shape[1]-1)
if np.random.random_integers(0, 1) == 0:
NoiseImg[randX, randY] = 0
else:
NoiseImg[randX, randY] = 255
return NoiseImg
4.關於高斯噪聲和椒鹽噪聲。
5.如果沒有cv2和numpy庫,需要下載,如果使用的Anaconda直接下載就可以了,如果是別的,搜一下下載的命令。