Spaces:
Sleeping
Sleeping
File size: 1,215 Bytes
af9162a 52893ae 501b516 a983c72 af9162a 501b516 a983c72 501b516 a983c72 501b516 a983c72 501b516 a983c72 501b516 af9162a a983c72 501b516 c771378 a983c72 501b516 7f74cd7 501b516 a983c72 744ad2f a983c72 501b516 744ad2f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import gradio as gr
import deepinv as dinv
import torch
import numpy as np
import PIL.Image
def pil_to_torch(image):
image = np.array(image)
image = image.transpose((2, 0, 1))
image = torch.tensor(image).float() / 255
return image.unsqueeze(0)
def torch_to_pil(image):
image = image.squeeze(0).cpu().detach().numpy()
image = image.transpose((1, 2, 0))
image = (image * 255).astype(np.uint8)
image = PIL.Image.fromarray(image)
return image
def image_mod(image, noise_level):
image = pil_to_torch(image)
denoiser = dinv.models.MedianFilter()
noisy = image + torch.randn_like(image) * noise_level
estimated = denoiser(image, noise_level)
return torch_to_pil(noisy), torch_to_pil(estimated)
input_image = gr.Image(label='Input Image')
output_images = gr.Image(label='Denoised Image')
noise_image = gr.Image(label='Noisy Image')
input_image_output = gr.Image(label='Input Image')
noise_levels = gr.Dropdown(choices=[0.1, 0.2, 0.3, 0.4, 0.5], value=0.1, label='Noise Level')
demo = gr.Interface(
image_mod,
inputs=[input_image, noise_levels],
outputs=[noise_image, output_images],
title="Image Denoising with DeepInverse",
)
demo.launch() |