Python怎么实现对图像添加高斯噪声或椒盐噪声
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要为大家展示了"Python怎么实现对图像添加高斯噪声或椒盐噪声",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Python怎么实现对图像添加高斯
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
关于新基建和互联网科技
互联网 卓越科技
安徽鑫晟辉互联网科技
狮子座互联网科技有限公司
百单互联网科技有限公司
科技创新互联网企业
四个字互联网科技公司取名
农村开互联网科技讲堂
济南华为互联网科技产业总部基地
南山科技园互联网公司有哪些
湖南诚度互联网科技有限公司
贵州叶脉互联网科技有限公司所属行业
河南猎农互联网科技有限公司
互联网保险科技创业
西安小鹰速贷互联网科技有限公司
互联网科技圈年度人物
合肥互联网科技公司公章图片
亚光科技低轨卫星互联网
保山浩联互联网科技有限公司
杭州科技互联网公司有哪些
今日互联网科技
互联网科技战争
广州千川互联网科技有限公司
广州富喜互联网络科技
广州互联网高科技取餐柜
济南小医互联网科技有限公司招聘
美国五大互联网科技公司市值多少
广西泛欧互联网科技有限公司
互联网企业和网络科技有限公司
科技发展第三阶段互联网时代