python中添加高斯噪声_高斯噪声与椒盐噪声简介及Python实现给图片添加噪声(一)...

高斯噪声,是指服从高斯分布(正态分布)的一类噪声,通常是因为不良照明和高温引起的传感器噪声,如下图:

左上角第一个图是原图,其余图片分别是参数sigma取不同值时的图片:

这是其噪声图片可视化:

椒盐噪声,也称为脉冲噪声,成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。如下图所示:

左上角第一个图是原图,其余图片分别是参数噪声比例取不同值时的图片:

这是其噪声图片可视化:

添加椒盐噪声代码

def saltpepper_noise(image, proportion):

'''

此函数用于给图片添加椒盐噪声

image : 原始图片

proportion : 噪声比例

'''

image_copy = image.copy()

# 求得其高宽

img_Y, img_X = 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]

return image_copy, sp_noise_plate

添加高斯噪声代码

def gaussian_noise(img, mean, sigma):

'''

此函数用将产生的高斯噪声加到图片上

传入:

img : 原图

mean : 均值

sigma : 标准差

返回:

gaussian_out : 噪声处理后的图片

noise : 对应的噪声

'''

# 将图片灰度标准化

img = img / 255

# 产生高斯 noise

noise = np.random.normal(mean, sigma, img.shape)

# 将噪声和图片叠加

gaussian_out = img + noise

# 将超过 1 的置 1,低于 0 的置 0

gaussian_out = np.clip(gaussian_out, 0, 1)

# 将图片灰度范围的恢复为 0-255

gaussian_out = np.uint8(gaussian_out*255)

# 将噪声范围搞为 0-255

# noise = np.uint8(noise*255)

return gaussian_out, noise

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值