pytorch在图片张量中怎么添加高斯噪声
时间: 2024-05-11 13:18:44 浏览: 335
Python给图像添加噪声具体操作
可以使用`torch.randn()`函数生成高斯分布的噪声张量,然后将其加到原始图片张量上即可。
以下是一个示例代码:
```python
import torch
import torchvision.transforms.functional as TF
def add_gaussian_noise(img_tensor, mean=0, std=1):
noise = torch.randn(img_tensor.size()) * std + mean
noisy_image = img_tensor + noise
return noisy_image
# 读取图片并转换成张量
img = Image.open("example.jpg")
img_tensor = TF.to_tensor(img)
# 添加高斯噪声
noisy_img_tensor = add_gaussian_noise(img_tensor, mean=0, std=0.1)
# 将张量转换回图片并保存
noisy_img = TF.to_pil_image(noisy_img_tensor)
noisy_img.save("example_noisy.jpg")
```
在上述示例中,`add_gaussian_noise()`函数接收一个图片张量作为输入,以及高斯分布的均值和标准差。它使用`torch.randn()`函数生成一个与图片张量大小相同的张量,并将其乘以标准差后加上均值,得到一个高斯分布的噪声张量。最后,将噪声张量与原始图片张量相加,得到一个带有高斯噪声的图片张量。
阅读全文