当前位置: 首页 > 后端技术 > Python

高斯噪声和椒盐噪声介绍及给图片加噪声的Python实现(一)

时间:2023-03-25 20:28:25 Python

高斯噪声指的是一类服从高斯分布(正态分布)的噪声,通常是由于光线不好导致的传感器噪声和高温,如下图:左上角第一张图是原图,其余图片是参数sigma取不同值时的图片:这是噪声图片可视化:椒盐噪声,也称为脉冲噪声,可能是由突发的强图像信号干扰、模数转换器或比特传输错误等引起的。例如,传感器故障导致像素值最小,而饱和传感器导致像素值最大像素值。如下图:左上角第一张图为原图,其他图片为参数噪声比取不同值时的图片:这是噪声图片可视化:添加椒盐噪声代码defsaltpepper_noise(image,proportion):'''这个函数是用来给图像添加椒盐噪声的image.shape#噪声点的X坐标X=np.random.randint(img_X,size=(int(proportion*img_X*img_Y),))#噪声点的Y坐标Y=np.random.randint(img_Y,size=(int(proportion*img_X*img_Y),))#噪声点坐标赋值image_copy[Y,X]=np.random.choice([0,255],size=(int(proportion*img_X*img_Y),))#噪声容器sp_noise_plate=np.ones_like(image_copy)*127#添加噪声到噪声容器sp_noise_plate[Y,X]=image_copy[Y,X]returnimage_copy,sp_noise_plate添加高斯噪声代码defgaussian_noise(img,mean,sigma):'''此函数使用将生成的高斯噪声添加到图像中输入:img:原始图像mean:meansigma:标准差return:gaussian_out:噪声处理图像noise:对应噪声'''#归一化图像灰度img=img/255#生成高斯噪声noise=np.random.normal(mean,sigma,img.shape)#叠加噪声和图像gaussian_out=img+noise#设置大于1为1,小于0为0gaussian_out=np.clip(gaussian_out,0,1)#灰度图像范围恢复to0-255gaussian_out=np.uint8(gaussian_out*255)#使噪声范围为0-255#noise=np.uint8(noise*255)returngaussian_out,noise