椒盐噪声(包含椒噪声和盐噪声)
import random
import numpy as np
def sp_noise(img, prob, sp):
'''
添加椒盐噪声
:param img: 原始图片
:param prob: 噪声比例
:param sp: 0: 椒噪声, 1: 盐噪声, 2: 椒盐噪声
:return: resultImg
'''
resultImg = np.zeros(img.shape, np.uint8)
thres = 1 - prob
for i in range(img.shape[0]):
for j in range(img.shape[1]):
rdn = random.random() # 随机生成0-1之间的数字
if sp == 0:
if rdn < prob: # 如果生成的随机数小于噪声比例则将该像素点添加黑点,即椒噪声
resultImg[i][j] = 0
else:
resultImg[i][j] = img[i][j] # 其他情况像素点不变
if sp == 1:
if rdn > thres: # 如果生成的随机数大于(1-噪声比例)则将该像素点添加白点,即盐噪声
resultImg[i][j] = 255
else:
resultImg[i][j] = img[i][j] # 其他情况像素点不变