高斯噪声,椒盐噪声的思想及多种噪声的实现

您所在的位置:网站首页 椒盐比例一般是多少 高斯噪声,椒盐噪声的思想及多种噪声的实现

高斯噪声,椒盐噪声的思想及多种噪声的实现

2024-07-12 13:38| 来源: 网络整理| 查看: 265

图像噪声: 概念:

• 图像噪声是图像在获取或是传输过程中受到随机信号干扰,妨碍人们对图像理解及分析处理 的信号。 • 很多时候将图像噪声看做多维随机过程,因而描述噪声的方法完全可以借用随机过程的描述, 也就是使用随机过程的描述,也就是用它的高斯分布函数和概率密度分布函数。 • 图像噪声的产生来自图像获取中的环境条件和传感元器件自身的质量,图像在传输过程中产 生图像噪声的主要因素是所用的传输信道受到了噪声的污染。

信噪比:

在噪声的概念中,通常采用信噪比(Signal-Noise Rate, SNR)衡量图像噪声。 通俗的讲就是信号占多少,噪声占多少,SNR越小,噪声占比越大。 在信号系统中,计量单位为dB,为10lg(PS/PN), PS和PN分别代表信号和噪声的有效功率。 在这里,采用信号像素点的占比充当SNR,以衡量所添加噪声的多少。 举个例,假设一张图像的宽x高 = 10x10 ,共计100个像素,想让其中20个像素点变为噪声,其余80 个像素点保留原值,则这里定义的SNR=80/100 = 0.8 。

高斯噪声: 概念:

• 高斯噪声(Gaussian noise)是指它的概率密度函数服从高斯分布的一类噪声。 • 特别的,如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称 它为高斯白噪声。 • 必须区分高斯噪声和白噪声两个不同的概念。高斯噪声是指噪声的概率密度函数服从高斯分布, 白噪声是指噪声的任意两个采样样本之间不相关,两者描述的角度不同。白噪声不必服从高斯分 布,高斯分布的噪声不一定是白噪声。

产生原因:

1)图像传感器在拍摄时不够明亮、亮度不够均匀; 2)电路各元器件自身噪声和相互影响; 3)图像传感器长期工作,温度过高

实现方法:

一个正常的高斯采样分布公式G(d), 得到输出像素 *Pout. Pout = Pin + XMeans + sigma G(d) 其中d为一个线性的随机数,G(d)是随机数的高斯分布随机值。

给一副数字图像加上高斯噪声的处理顺序如下: a. 输入参数sigma 和 X mean b. 以系统时间为种子产生一个伪随机数 c. 将伪随机数带入G(d)得到高斯随机数 d. 根据输入像素计算出输出像素 e. 重新将像素值放缩在[0 ~ 255]之间 f. 循环所有像素 g. 输出图像

手动代码实现: #随机生成符合正态(高斯)分布的随机数,means,sigma为两个参数 import numpy as np import cv2 from numpy import shape import random def GaussianNoise(src,means,sigma,percetage): #means是均值,percetage是信噪比 NoiseImg=src NoiseNum=int(percetage*src.shape[0]*src.shape[1]) for i in range(NoiseNum): #每次取一个随机点 #把一张图片的像素用行和列表示的话,randX 代表随机生成的行,randY代表随机生成的列 #random.randint生成随机整数 #高斯噪声图片边缘不处理,故-1 randX=random.randint(0,src.shape[0]-1) randY=random.randint(0,src.shape[1]-1) #此处在原有像素灰度值上加上随机数 NoiseImg[randX,randY]=NoiseImg[randX,randY]+random.gauss(means,sigma) #若灰度值小于0则强制为0,若灰度值大于255则强制为255 if NoiseImg[randX, randY]255: NoiseImg[randX, randY]=255 return NoiseImg img = cv2.imread('lenna.png',0) img1 = GaussianNoise(img,2,4,0.5) img = cv2.imread('lenna.png') img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #cv2.imwrite('lenna_GaussianNoise.png',img1) cv2.imshow('source',img2) cv2.imshow('lenna_GaussianNoise',img1) cv2.waitKey(0) 实现结果展示:

在这里插入图片描述

椒盐噪声 椒盐噪声概念:

• 椒盐噪声又称为脉冲噪声,它是一种随机出现的白点或者黑点。 • 椒盐噪声 = 椒噪声 (pepper noise)+ 盐噪声(salt noise)。 椒盐噪声的值为0(椒)或者255(盐)。 • 前者是低灰度噪声,后者属于高灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。 • 对于彩色图像,也有可能表现为在单个像素BGR三个通道随机出现的255或0。 • 如果通信时出错,部分像素的值在传输时丢失,就会发生这种噪声。 • 盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生等。例如失效的感应器导致像 素值为最小值,饱和的感应器导致像素值为最大值。

实现方法:

给一副数字图像加上椒盐噪声的处理顺序: 1.指定信噪比 SNR ,其取值范围在[0, 1]之间 2.计算总像素数目 SP, 得到要加噪的像素数目 NP = SP * (1-SNR) 3.随机获取要加噪的每个像素位置P(i, j) 4.指定像素值为255或者0。 5.重复3, 4两个步骤完成所有NP个像素的加噪

手动代码实现: import numpy as np import cv2 #pip install opencv_python from numpy import shape import random def fun1(src,percetage): NoiseImg=src NoiseNum=int(percetage*src.shape[0]*src.shape[1]) for i in range(NoiseNum): #返还一个迭代器 #每次取一个随机点 #把一张图片的像素用行和列表示的话,randX 代表随机生成的行,randY代表随机生成的列 #random.randint生成随机整数 #椒盐噪声图片边缘不处理,故-1 randX=random.randint(0,src.shape[0]-1) randY=random.randint(0,src.shape[1]-1) #random.random生成随机浮点数,随意取到一个像素点有一半的可能是白点255,一半的可能是黑点0 if random.random()1时通过若干个指数噪声叠 加,得到伽马噪声)

多种噪声接口代码实现: import cv2 as cv import numpy as np from PIL import Image from skimage import util ''' def random_noise(image, mode='gaussian', seed=None, clip=True, **kwargs): 功能:为浮点型图片添加各种随机噪声 参数: image:输入图片(将会被转换成浮点型),ndarray型 mode: 可选择,str型,表示要添加的噪声类型 gaussian:高斯噪声 localvar:高斯分布的加性噪声,在“图像”的每个点处具有指定的局部方差。 poisson:泊松噪声 salt:盐噪声,随机将像素值变成1 pepper:椒噪声,随机将像素值变成0或-1,取决于矩阵的值是否带符号 s&p:椒盐噪声 speckle:均匀噪声(均值mean方差variance),out=image+n*image seed: 可选的,int型,如果选择的话,在生成噪声前会先设置随机种子以避免伪随机 clip: 可选的,bool型,如果是True,在添加均值,泊松以及高斯噪声后,会将图片的数据裁剪到合适范围内。如果谁False,则输出矩阵的值可能会超出[-1,1] mean: 可选的,float型,高斯噪声和均值噪声中的mean参数,默认值=0 var: 可选的,float型,高斯噪声和均值噪声中的方差,默认值=0.01(注:不是标准差) local_vars:可选的,ndarry型,用于定义每个像素点的局部方差,在localvar中使用 amount: 可选的,float型,是椒盐噪声所占比例,默认值=0.05 salt_vs_pepper:可选的,float型,椒盐噪声中椒盐比例,值越大表示盐噪声越多,默认值=0.5,即椒盐等量 -------- 返回值:ndarry型,且值在[0,1]或者[-1,1]之间,取决于是否是有符号数 ''' img = cv.imread("lenna.png") noise_gs_img=util.random_noise(img,mode='gaussian') #自由选择想要的噪声 cv.imshow("source", img) cv.imshow("lenna",noise_gs_img) #cv.imwrite('lenna_noise.png',noise_gs_img) cv.waitKey(0) cv.destroyAllWindows()

根据mode的不同,可自由实现多种噪声~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3