简述:对于椒盐噪声,官方写的是两边处理,temp<prod 设为0,temp>prod 设为255,那么在噪声比例为0.5时,则图像全为噪声,因此我认为椒盐噪声应一共在prod即可,不用在区分,各占prod/2的比例即可。应该是我的有问题,以后有了新的理解再改正。
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from skimage.metrics import peak_signal_noise_ratio,structural_similarity
import os
plt.rcParams['font.sans-serif']=['simhei']
plt.rcParams['axes.unicode_minus'] =False
#加入椒盐噪声
def salt_noise(img,prod):
'''
:param img: 图像
:param prod: 噪声比例
:return: 噪声图片
'''
img = img.copy()
for i in range(img.shape[0]):
for j in range(img.shape[1]):
temp = np.random.random()
if temp <= prod/2 :
img[i,j] = 0
elif temp <prod:
img[i,j] = 255
return img
#加入高斯噪声
def gasuss_noise(img,sigma):
'''
:param img: 原始图片
:param sigma: 标准差
:return:
'''
img = img.copy()
img = img/255
mean = 0
gasuss_img = np.random.normal(mean,sigma,img.shape)
img = img +gasuss_img*0.5
img = np.uint8(np.clip(img,0,1)*255)
return img
或者
from skimage.util import random_noise
noise_gs_img = random_noise(img,mode=‘gaussian’)
noise_sp_img = random_noise(img,mode=‘s&p’)