这篇文章主要讲解了“PyTorch怎么实现椒盐噪声效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PyTorch怎么实现椒盐噪声效果”吧!
1. 将介绍的transforms方法一一地,单独地实现对图片的变换,并且通过plt.savefig将图片保存下来
略
2. 自定义一个增加椒盐噪声的transforms方法,使得其能正确运行
见下面代码
3. 用手机将自己钱包中的100元人民币正面进行拍照,并且放到hello pytorch/lesson/lesson-09/test_data/100文件夹下,通过修改不同的数据增强方法,使得模型在10个epoch之后能正确区分你钱包中的100元
peper noise
import torch
import numpy as np
from PIL import Image
from torchvision import datasets, models, transforms
np.random.seed(1234)
image_path = 'a.jpg'
class AddPepperNoise(object):
def __init__(self, snr, p):
self.snr = snr
self.p = p
def __call__(self, img):
p1 = np.random.uniform(low = 0.0, high = 1.0)
if p1 > self.p:
return img
else:
out_img = np.asarray(img).copy()
h, w, c = out_img.shape
for i in range(h):
for j in range(w):
for k in range(c):
p2 = np.random.uniform(low = 0.0, high = 1.0)
if p2 < self.snr:
out_img[i][j][k] = out_img[i][j][k]
elif p2 < self.snr + (1 - self.snr) / 2:
out_img[i][j][k] = 0
else:
out_img[i][j][k] = 255
# print(out_img[i][j][k])
print(out_img)
tmp = Image.fromarray(out_img.astype('uint8')).convert('RGB')
print('tmp:', tmp, np.asarray(tmp))
return tmp
def main():
img = Image.open(image_path)
now_transforms = transforms.Compose([
transforms.Resize((224, 224)),
AddPepperNoise(snr = 0.9, p = 1.0),
# transforms.ToTensor(),
])
img_transformed = now_transforms(img)
print(img_transformed, np.asarray(img_transformed))
img_transformed.save('a_pepperNoise.jpg')
if __name__ == '__main__':
main()
感谢各位的阅读,以上就是“PyTorch怎么实现椒盐噪声效果”的内容了,经过本文的学习后,相信大家对PyTorch怎么实现椒盐噪声效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4853575/blog/4974423