Julián Tachella commited on
Commit
a983c72
·
1 Parent(s): 7f74cd7
Files changed (1) hide show
  1. app.py +13 -7
app.py CHANGED
@@ -2,24 +2,28 @@ import gradio as gr
2
  import deepinv as dinv
3
  import torch
4
  import numpy as np
 
5
 
6
  def pil_to_torch(image):
7
  image = np.array(image)
8
  image = image.transpose((2, 0, 1))
9
- image = torch.tensor(image).float()
10
  return image.unsqueeze(0)
11
 
 
12
  def torch_to_pil(image):
13
- image = image.squeeze(0)
14
- image = image.numpy()
15
  image = image.transpose((1, 2, 0))
 
 
16
  return image
17
 
18
- def image_mod(image):
 
19
  image = pil_to_torch(image)
20
  denoiser = dinv.models.MedianFilter()
21
- noisy = image + torch.randn_like(image) * 0.1
22
- estimated = denoiser(image, 0.1)
23
  return torch_to_pil(noisy), torch_to_pil(estimated)
24
 
25
 
@@ -28,10 +32,12 @@ output_images = gr.Image(label='Denoised Image')
28
  noise_image = gr.Image(label='Noisy Image')
29
  input_image_output = gr.Image(label='Input Image')
30
 
 
 
31
 
32
  demo = gr.Interface(
33
  image_mod,
34
- inputs=input_image,
35
  outputs=[noise_image, output_images],
36
  title="Image Denoising with DeepInverse",
37
  )
 
2
  import deepinv as dinv
3
  import torch
4
  import numpy as np
5
+ import PIL.Image
6
 
7
  def pil_to_torch(image):
8
  image = np.array(image)
9
  image = image.transpose((2, 0, 1))
10
+ image = torch.tensor(image).float() / 255
11
  return image.unsqueeze(0)
12
 
13
+
14
  def torch_to_pil(image):
15
+ image = image.squeeze(0).cpu().detach().numpy()
 
16
  image = image.transpose((1, 2, 0))
17
+ image = (image * 255).astype(np.uint8)
18
+ image = PIL.Image.fromarray(image)
19
  return image
20
 
21
+
22
+ def image_mod(image, noise_level):
23
  image = pil_to_torch(image)
24
  denoiser = dinv.models.MedianFilter()
25
+ noisy = image + torch.randn_like(image) * noise_level
26
+ estimated = denoiser(image, noise_level)
27
  return torch_to_pil(noisy), torch_to_pil(estimated)
28
 
29
 
 
32
  noise_image = gr.Image(label='Noisy Image')
33
  input_image_output = gr.Image(label='Input Image')
34
 
35
+ noise_levels = gr.Dropdown(choices=[0.1, 0.2, 0.3, 0.4, 0.5], value=0.1, label='Noise Level')
36
+
37
 
38
  demo = gr.Interface(
39
  image_mod,
40
+ inputs=[input_image, noise_levels],
41
  outputs=[noise_image, output_images],
42
  title="Image Denoising with DeepInverse",
43
  )