数据增强--高斯噪声和椒盐噪声

本文介绍如何使用高斯噪声和椒盐噪声提升模型泛化,通过Python代码展示噪声添加技术及其效果。
摘要由CSDN通过智能技术生成

适度增加高斯噪声和椒盐噪声可以提高模型的泛化能力

高斯噪声:

import numpy as np

def gaussian_noise(image, mean=0.1, sigma=0.1):
    """
    :param image:原图
    :param mean:均值
    :param sigma:标准差 值越大,噪声越多
    """
    image = np.asarray(image / 255, dtype=np.float32)  
    noise = np.random.normal(mean, sigma, image.shape).astype(dtype=np.float32)  # 产生高斯噪声
    output = image + noise  # 将噪声和图片叠加
    output = np.clip(output, 0, 1)
    output = np.uint8(output * 255)
    return output

椒盐噪声

import numpy as np


def add_salt_pepper_noise(image: np.ndarray, prob=0.02):
    """
    :param image:图像
    :param prob: 椒盐噪声噪声比例
    
    prob * 0.51 用于添加盐噪声;
    prob * 0.5 用于添加胡椒噪声
    希望盐的概率稍微比胡椒的概率略高。
    """
    image = add_uniform_noise(image, prob * 0.51, vaule=255)
    image = add_uniform_noise(image, prob * 0.5, vaule=0)
    return image


def add_uniform_noise(image: np.ndarray, prob=0.05, vaule=255):
    """
    随机生成一个0~1的mask,作为椒盐噪声
    :param image:图像
    :param prob: 噪声比例
    :param vaule: 噪声值
    :return:
    """
    h, w = image.shape[:2]
    noise = np.random.uniform(low=0.0, high=1.0, size=(h, w)).astype(dtype=np.float32)  # 产生高斯噪声
    mask = np.zeros(shape=(h, w), dtype=np.uint8) + vaule #盐噪声mask填充为255,胡椒噪声填充为0
    index = noise > prob ##确定添加噪声的位置
    mask = mask * (~index)
    output = image * index[:, :, np.newaxis] + mask[:, :, np.newaxis]
    output = np.clip(output, 0, 255)
    output = np.uint8(output)
    return output
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值