高斯噪声、椒盐噪声及其在python中的实现(1),与,简介,Python,一

发表时间:2020-03-10

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

左上角第一个图是原图,其余图片分别是参数 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

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free