torch和numpy的normal函数略有不同,虽然可以直接使用numpy生成噪声再通过pytorch的numpy桥转换成tensor,但是这样会使得CPU使用率过高。直接使用torch可以把所有的运算都放到gpu上

import torch
import cv2

raw = cv2.imread('./Set5/3.bmp')
s1,s2,s3 = raw.shape
means=torch.zeros(s1,s2,s3)
std = torch.ones(s1,s2,s3)
sigma = 15
std = std*sigma
noise = torch.normal(means, std)
print(std)
nnoise = noise.numpy()
mix = raw+nnoise
cv2.imwrite('mix.jpg',mix)