Update app.py
Browse files
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 |
-
|
187 |
-
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
)
|