marclelarge commited on
Commit
e53dbad
1 Parent(s): e88c58c

encoder-decoder

Browse files
Files changed (2) hide show
  1. app.py +30 -6
  2. utils.py +16 -10
app.py CHANGED
@@ -1,11 +1,35 @@
1
  import gradio as gr
2
  from utils import encoder, decoder
3
 
4
- source_img = gr.Image(source="upload", type="filepath", label="init_img")
5
- encoded_img = gr.Image()
6
 
7
 
8
- iface = gr.Interface(fn=encoder, inputs=[source_img,
9
- gr.Slider(label='noise', minimum = 0.5, maximum = 1, step = .005, value = .95)],
10
- outputs=encoded_img)
11
- iface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from utils import encoder, decoder
3
 
 
 
4
 
5
 
6
+ demo = gr.Blocks()
7
+
8
+ with demo:
9
+ with gr.Row():
10
+ with gr.Column():
11
+ source_img = gr.Image(source="upload", type="filepath", label="init_img")
12
+
13
+ noise = gr.Slider(label='noise', minimum = 0.5, maximum = 1, step = .005, value = .95)
14
+ with gr.Row():
15
+ b1 = gr.Button("Encoder")
16
+ with gr.Column():
17
+ encoded_img = gr.Image()
18
+
19
+
20
+
21
+ with gr.Row():
22
+ with gr.Column():
23
+ noise_img = gr.Image(source="upload", type="filepath", label="init_img")
24
+ k = gr.Slider(label='k', minimum = 1, maximum = 10, step = 1, value = 1)
25
+ with gr.Row():
26
+ b2 = gr.Button("Decoder")
27
+ with gr.Column():
28
+ decoded_img = gr.Image()
29
+
30
+
31
+ b1.click(encoder, inputs=[source_img, noise], outputs=encoded_img)
32
+ b2.click(decoder, inputs=[noise_img,k], outputs=decoded_img)
33
+
34
+
35
+ demo.launch()
utils.py CHANGED
@@ -61,17 +61,23 @@ def restore(img, k, color_points, noise_points):
61
  r_m = []
62
  v_m = []
63
  b_m = []
64
- for np in [color_points[j] for j in knn_p]:
65
- t = img.getpixel((np[0],np[1]))
66
- r_m.append(t[0])
67
- v_m.append(t[1])
68
- b_m.append(t[2])
69
- r_m = int(sum(r_m)/k)
70
- v_m = int(sum(v_m)/k)
71
- b_m = int(sum(b_m)/k)
72
- img.putpixel((p[0],p[1]),(r_m,v_m,b_m))
 
 
 
 
 
73
  return img
74
 
75
  def decoder(img,k):
 
76
  c_p, n_p = get_points(img)
77
- return restore(img,k,c_p,n_p)
 
61
  r_m = []
62
  v_m = []
63
  b_m = []
64
+ if k == 1:
65
+ c_p = color_points[knn_p]
66
+ t = img.getpixel((c_p[0],c_p[1]))
67
+ img.putpixel((p[0],p[1]),(t[0],t[1],t[2]))
68
+ else:
69
+ for c_p in [color_points[j] for j in list(knn_p)]:
70
+ t = img.getpixel((c_p[0],c_p[1]))
71
+ r_m.append(t[0])
72
+ v_m.append(t[1])
73
+ b_m.append(t[2])
74
+ r_m = int(sum(r_m)/k)
75
+ v_m = int(sum(v_m)/k)
76
+ b_m = int(sum(b_m)/k)
77
+ img.putpixel((p[0],p[1]),(r_m,v_m,b_m))
78
  return img
79
 
80
  def decoder(img,k):
81
+ img = Image.open(img)
82
  c_p, n_p = get_points(img)
83
+ return restore(img,int(k),c_p,n_p)