freealise commited on
Commit
f5e6c30
·
verified ·
1 Parent(s): 47c2914

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -9
app.py CHANGED
@@ -136,7 +136,7 @@ def infer(f_in, interpolation, fps_output):
136
  return final_vid, files
137
 
138
 
139
- def remove_bg(fl, s, l, v, h):
140
  frame = cv2.imread(fl).astype(np.uint8)
141
 
142
  b = 5
@@ -169,6 +169,7 @@ def remove_bg(fl, s, l, v, h):
169
  d = hsv[i-2:i+2, j-2:j+2, 0].var()
170
  hue_s[i,j] = d.astype(np.uint8)
171
 
 
172
  print("hue variance")
173
  print(np.average(hue_s))
174
  print(np.median(hue_s))
@@ -183,9 +184,20 @@ def remove_bg(fl, s, l, v, h):
183
  print("lightness")
184
  print(np.average(hsv_[:,:,2]))
185
  print(np.median(hsv_[:,:,2]))
186
- m = cv2.inRange(hsv_, np.array([0,0,0]), np.array([180,s,l]))
187
- m_ = cv2.inRange(hue_s, 0, h)
188
- mask = cv2.inRange(blur_s, 0, v)
 
 
 
 
 
 
 
 
 
 
 
189
  masks = np.bitwise_and(m, mask)
190
  masks = np.bitwise_and(m_, masks)
191
  frame_[masks==0] = (0,0,0)
@@ -278,7 +290,7 @@ def sortFiles(e):
278
  e = e.split('/')
279
  return e[len(e)-1]
280
 
281
- def loadf(f, s, l, v, h, r_bg):
282
  if f != None and f[0] != None:
283
  f.sort(key=sortFiles)
284
  fnew = []
@@ -289,7 +301,7 @@ def loadf(f, s, l, v, h, r_bg):
289
  fl = sharpest(fl, i)
290
 
291
  if r_bg == True:
292
- fl = remove_bg(fl, s, l, v, h)
293
 
294
  fnew.append(fl)
295
 
@@ -335,8 +347,9 @@ with gr.Blocks() as demo:
335
  max_l = gr.Slider(minimum=0, maximum=255, step=1, value=64, label="Lightness")
336
  max_v = gr.Slider(minimum=0, maximum=255, step=1, value=16, label="Texture")
337
  max_h = gr.Slider(minimum=0, maximum=255, step=1, value=127, label="Hue variance")
 
338
  rbg = gr.Checkbox(label="Remove background", value=True)
339
- files_input.upload(fn=loadf, inputs=[files_input, max_s, max_l, max_v, max_h, rbg], outputs=[files_input, gallery_input])
340
  with gr.Row():
341
  interpolation_slider = gr.Slider(minimum=1, maximum=5, step=1, value=1, label="Interpolation Steps: ")
342
  interpolation = gr.Number(value=1, show_label=False, interactive=False)
@@ -354,10 +367,10 @@ with gr.Blocks() as demo:
354
  gr.Examples(
355
  examples=[[
356
  ["./examples/0.png", "./examples/1.png", "./examples/2.png", "./examples/3.png", "./examples/4.png"],
357
- 32, 64, 16, 127, True
358
  ]],
359
  fn=loadf,
360
- inputs=[files_input, max_s, max_l, max_v, max_h, rbg],
361
  outputs=[files_input, gallery_input],
362
  cache_examples=True
363
  )
 
136
  return final_vid, files
137
 
138
 
139
+ def remove_bg(fl, s, l, v, h, l_t):
140
  frame = cv2.imread(fl).astype(np.uint8)
141
 
142
  b = 5
 
169
  d = hsv[i-2:i+2, j-2:j+2, 0].var()
170
  hue_s[i,j] = d.astype(np.uint8)
171
 
172
+ print(fl)
173
  print("hue variance")
174
  print(np.average(hue_s))
175
  print(np.median(hue_s))
 
184
  print("lightness")
185
  print(np.average(hsv_[:,:,2]))
186
  print(np.median(hsv_[:,:,2]))
187
+
188
+ if l_t == "slider":
189
+ m = cv2.inRange(hsv_, np.array([0,0,0]), np.array([180,s,l]))
190
+ m_ = cv2.inRange(hue_s, 0, h)
191
+ mask = cv2.inRange(blur_s, 0, v)
192
+ elif l_t == "average":
193
+ m = cv2.inRange(hsv_, np.array([0,0,0]), np.array([180, int(np.average(hsv_[:,:,1])), int(np.average(hsv_[:,:,2]))]))
194
+ m_ = cv2.inRange(hue_s, 0, int(np.average(hue_s)))
195
+ mask = cv2.inRange(blur_s, 0, int(np.average(blur_s)))
196
+ elif l_t == "median":
197
+ m = cv2.inRange(hsv_, np.array([0,0,0]), np.array([180, int(np.median(hsv_[:,:,1])), int(np.median(hsv_[:,:,2]))]))
198
+ m_ = cv2.inRange(hue_s, 0, int(np.median(hue_s)))
199
+ mask = cv2.inRange(blur_s, 0, int(np.median(blur_s)))
200
+
201
  masks = np.bitwise_and(m, mask)
202
  masks = np.bitwise_and(m_, masks)
203
  frame_[masks==0] = (0,0,0)
 
290
  e = e.split('/')
291
  return e[len(e)-1]
292
 
293
+ def loadf(f, s, l, v, h, l_t, r_bg):
294
  if f != None and f[0] != None:
295
  f.sort(key=sortFiles)
296
  fnew = []
 
301
  fl = sharpest(fl, i)
302
 
303
  if r_bg == True:
304
+ fl = remove_bg(fl, s, l, v, h, l_t)
305
 
306
  fnew.append(fl)
307
 
 
347
  max_l = gr.Slider(minimum=0, maximum=255, step=1, value=64, label="Lightness")
348
  max_v = gr.Slider(minimum=0, maximum=255, step=1, value=16, label="Texture")
349
  max_h = gr.Slider(minimum=0, maximum=255, step=1, value=127, label="Hue variance")
350
+ lt = gr.Radio(label="Maximum is", choices=["average", "median", "slider"], value="slider")
351
  rbg = gr.Checkbox(label="Remove background", value=True)
352
+ files_input.upload(fn=loadf, inputs=[files_input, max_s, max_l, max_v, max_h, lt, rbg], outputs=[files_input, gallery_input])
353
  with gr.Row():
354
  interpolation_slider = gr.Slider(minimum=1, maximum=5, step=1, value=1, label="Interpolation Steps: ")
355
  interpolation = gr.Number(value=1, show_label=False, interactive=False)
 
367
  gr.Examples(
368
  examples=[[
369
  ["./examples/0.png", "./examples/1.png", "./examples/2.png", "./examples/3.png", "./examples/4.png"],
370
+ 32, 64, 16, 127, "slider", True
371
  ]],
372
  fn=loadf,
373
+ inputs=[files_input, max_s, max_l, max_v, max_h, lt, rbg],
374
  outputs=[files_input, gallery_input],
375
  cache_examples=True
376
  )