from PIL import Image
import torch
import torchvision
img = Image.open("test-image.jpg")
from torchvision.transforms import Compose, PILToTensor, ToPILImage
# Tensor GN pipeline
def gauss_noise_tensor(img):
assert isinstance(img, torch.Tensor)
dtype = img.dtype
if not img.is_floating_point():
img = img.to(torch.float32)
sigma = 25.0
out = img + sigma * torch.randn_like(img)
if out.dtype != dtype:
out = out.to(dtype)
return out
t1 = Compose([
PILToTensor(),
gauss_noise_tensor,
# For visualization purposes
ToPILImage()
])
o1 = t1(img)
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize=(14, 7))
plt.subplot(121)
plt.title("Pillow")
plt.imshow(img)
plt.subplot(122)
plt.title("Tensor GN")
plt.imshow(o1)