Python怎么实现对图像添加高斯噪声或椒盐噪声
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要为大家展示了"Python怎么实现对图像添加高斯噪声或椒盐噪声",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Python怎么实现对图像添加高斯
千家信息网最后更新 2025年11月15日Python怎么实现对图像添加高斯噪声或椒盐噪声
这篇文章主要为大家展示了"Python怎么实现对图像添加高斯噪声或椒盐噪声",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Python怎么实现对图像添加高斯噪声或椒盐噪声"这篇文章吧。
加噪声的代码(高斯噪声,椒盐噪声)
add_noise.py
#代码中的noisef为信号等级,例如我需要0.7的噪声,传入参数我传入的是1-0.7from PIL import Imageimport numpy as npimport randomimport torchvision.transforms as transformsnorm_mean = (0.5, 0.5, 0.5)norm_std = (0.5, 0.5, 0.5)class AddPepperNoise(object): """增加椒盐噪声 Args: snr (float): Signal Noise Rate p (float): 概率值,依概率执行该操作 """ def __init__(self, snr, p=0.9): assert isinstance(snr, float) and (isinstance(p, float)) # 2020 07 26 or --> and self.snr = snr self.p = p def __call__(self, img): """ Args: img (PIL Image): PIL Image Returns: PIL Image: PIL image. """ if random.uniform(0, 1) < self.p: img_ = np.array(img).copy() h, w, c = img_.shape signal_pct = self.snr noise_pct = (1 - self.snr) mask = np.random.choice((0, 1, 2), size=(h, w, 1), p=[signal_pct, noise_pct/2., noise_pct/2.]) mask = np.repeat(mask, c, axis=2) img_[mask == 1] = 255 # 盐噪声 img_[mask == 2] = 0 # 椒噪声 return Image.fromarray(img_.astype('uint8')).convert('RGB') else: return imgclass Gaussian_noise(object): """增加高斯噪声 此函数用将产生的高斯噪声加到图片上 传入: img : 原图 mean : 均值 sigma : 标准差 返回: gaussian_out : 噪声处理后的图片 """ def __init__(self, mean, sigma): self.mean = mean self.sigma = sigma def __call__(self, img): """ Args: img (PIL Image): PIL Image Returns: PIL Image: PIL image. """ # 将图片灰度标准化 img_ = np.array(img).copy() img_ = img_ / 255.0 # 产生高斯 noise noise = np.random.normal(self.mean, self.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 Image.fromarray(gaussian_out).convert('RGB')def image_transform(noisef): """对训练集和测试集的图片作预处理转换 train_transform:加噪图 _train_transform:原图(不加噪) test_transform:测试图(不加噪) """ train_transform = transforms.Compose([ transforms.Resize((256, 256)), # 重设大小 #transforms.RandomCrop(32,padding=4), AddPepperNoise(noisef, p=0.9), #加椒盐噪声 #Gaussian_noise(0, noisef), # 加高斯噪声 transforms.ToTensor(), # 转换为张量 # transforms.Normalize(norm_mean,norm_std), ]) _train_transform = transforms.Compose([ transforms.Resize((256, 256)), #transforms.RandomCrop(32,padding=4), transforms.ToTensor(), # transforms.Normalize(norm_mean,norm_std), ]) test_transform = transforms.Compose([ transforms.Resize((256, 256)), #transforms.RandomCrop(32,padding=4), transforms.ToTensor(), # transforms.Normalize(norm_mean,norm_std), ]) return train_transform, _train_transform, test_transform在pytorch中如何使用
# 图像变换和加噪声train_transform为加噪图,_train_transform为原图,test_transform为测试图 noisef为传入的噪声等级train_transform,_train_transform,test_transform = image_transform(noisef)training_data=FabricDataset_file(data_dir=train_dir,transform=train_transform)_training_data=FabricDataset_file(data_dir=_train_dir,transform=_train_transform)testing_data=FabricDataset_file(data_dir=test_dir,transform=test_transform)
以上是"Python怎么实现对图像添加高斯噪声或椒盐噪声"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
噪声
高斯
椒盐
图片
图像
内容
原图
篇文章
测试
代码
标准
概率
灰度
等级
范围
学习
帮助
信号
函数
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手机媒体服务器耗电快怎么回事
和平精英高端服务器在哪里
手机联通服务器地址
数据库防火墙管理员
数据库视图怎么开放
web服务器上的安全性
应用软件开发的行业税负率
安徽直播软件开发
服务器坏了怎么调试
泰安市网络安全和信息化办
真实软件开发案例
杭州融宽网络技术有限公司
软件开发李良召
艾尔登法环服务器互通吗
常德智能软件开发公司
软件开发计划属于什么基线
软件开发需要招投标
软件开发和项目排期
软件开发公司产品创新
湖南管理系统软件开发费用
要怎么学习软件开发
tbc哪些服务器属于一区二组
数据库目录名无效怎么处理
利用ajax获取数据库
提升中小学生网络安全意识
mgctoken软件开发
数据库表中增加两个字段
黑龙江省大学网络安全
计算机网络技术培训课程
韩百川哪个服务器