Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -300,7 +300,7 @@ def get_mesh(image, depth, blur_data, loadall):
|
|
300 |
i = i+1
|
301 |
|
302 |
for i in range(0,len(verts)):
|
303 |
-
if verts[i] ==
|
304 |
verts.pop(i)
|
305 |
clrs.pop(i)
|
306 |
i=i+1
|
@@ -374,7 +374,7 @@ def apply_mask(d):
|
|
374 |
cv2.imwrite(f"f{frame_selected}_dmap.png", masks[frame_selected])
|
375 |
return masks[frame_selected], f"f{frame_selected}_dmap.png"
|
376 |
|
377 |
-
def draw_mask(l, v, d, evt: gr.EventData):
|
378 |
global params
|
379 |
global frame_selected
|
380 |
global masks
|
@@ -396,10 +396,10 @@ def draw_mask(l, v, d, evt: gr.EventData):
|
|
396 |
bg = cv2.cvtColor(d["background"], cv2.COLOR_RGBA2GRAY)
|
397 |
|
398 |
diff = (bg-cv2.cvtColor(gradient, cv2.COLOR_RGBA2GRAY)).astype(np.uint8)
|
399 |
-
mask = cv2.inRange(diff, -
|
400 |
#kernel = np.ones((c,c),np.float32)/(c*c)
|
401 |
#mask = cv2.filter2D(mask,-1,kernel)
|
402 |
-
grad = cv2.convertScaleAbs(cv2.Sobel(mask, ddepth, 1, 1, ksize=
|
403 |
|
404 |
mask = mask + cv2.inRange(grad, 1, 255)
|
405 |
|
@@ -425,7 +425,7 @@ def draw_mask(l, v, d, evt: gr.EventData):
|
|
425 |
x = points[len(points)-1][0]
|
426 |
y = points[len(points)-1][1]
|
427 |
|
428 |
-
mask = cv2.floodFill(bg, None, (x, y), 1,
|
429 |
# 255 << 8 tells to fill with the value 255)
|
430 |
mask = mask[1:mask.shape[0]-1, 1:mask.shape[1]-1]
|
431 |
|
@@ -488,8 +488,9 @@ with gr.Blocks(css=css) as demo:
|
|
488 |
output_mask.apply(fn=apply_mask, inputs=[output_mask], outputs=[output_mask, depth_file])
|
489 |
with gr.Accordion(label="Edge", open=False):
|
490 |
levels = gr.Slider(label="Color levels", value=16, maximum=32, minimum=2, step=1)
|
|
|
491 |
mouse = gr.Textbox(elem_id="mouse", value="""[]""", interactive=False)
|
492 |
-
mouse.input(fn=draw_mask, show_progress="minimal", inputs=[levels, mouse, output_mask], outputs=[output_mask])
|
493 |
selector = gr.HTML(value="""
|
494 |
<a href='#' id='selector' onclick='this.style.fontWeight=\"bold\";
|
495 |
document.getElementById(\"image_edit\").getElementsByTagName(\"canvas\")[0].oncontextmenu = function(e){e.preventDefault();}
|
|
|
300 |
i = i+1
|
301 |
|
302 |
for i in range(0,len(verts)):
|
303 |
+
if verts[i][0] == 0.0 and verts[i][1] == 0.0 and verts[i][2] == 0.0:
|
304 |
verts.pop(i)
|
305 |
clrs.pop(i)
|
306 |
i=i+1
|
|
|
374 |
cv2.imwrite(f"f{frame_selected}_dmap.png", masks[frame_selected])
|
375 |
return masks[frame_selected], f"f{frame_selected}_dmap.png"
|
376 |
|
377 |
+
def draw_mask(l, t, v, d, evt: gr.EventData):
|
378 |
global params
|
379 |
global frame_selected
|
380 |
global masks
|
|
|
396 |
bg = cv2.cvtColor(d["background"], cv2.COLOR_RGBA2GRAY)
|
397 |
|
398 |
diff = (bg-cv2.cvtColor(gradient, cv2.COLOR_RGBA2GRAY)).astype(np.uint8)
|
399 |
+
mask = cv2.inRange(diff, -t, t)
|
400 |
#kernel = np.ones((c,c),np.float32)/(c*c)
|
401 |
#mask = cv2.filter2D(mask,-1,kernel)
|
402 |
+
grad = cv2.convertScaleAbs(cv2.Sobel(mask, ddepth, 1, 1, ksize=15-(t*2), scale=scale, delta=delta, borderType=cv2.BORDER_DEFAULT))
|
403 |
|
404 |
mask = mask + cv2.inRange(grad, 1, 255)
|
405 |
|
|
|
425 |
x = points[len(points)-1][0]
|
426 |
y = points[len(points)-1][1]
|
427 |
|
428 |
+
mask = cv2.floodFill(bg, None, (x, y), 1, int(t*256/l), int(t*256/l), (4 | cv2.FLOODFILL_FIXED_RANGE))[2] #(4 | cv2.FLOODFILL_FIXED_RANGE | cv2.FLOODFILL_MASK_ONLY | 255 << 8)
|
429 |
# 255 << 8 tells to fill with the value 255)
|
430 |
mask = mask[1:mask.shape[0]-1, 1:mask.shape[1]-1]
|
431 |
|
|
|
488 |
output_mask.apply(fn=apply_mask, inputs=[output_mask], outputs=[output_mask, depth_file])
|
489 |
with gr.Accordion(label="Edge", open=False):
|
490 |
levels = gr.Slider(label="Color levels", value=16, maximum=32, minimum=2, step=1)
|
491 |
+
tolerance = gr.Slider(label="Tolerance", value=1, maximum=7, minimum=0, step=1)
|
492 |
mouse = gr.Textbox(elem_id="mouse", value="""[]""", interactive=False)
|
493 |
+
mouse.input(fn=draw_mask, show_progress="minimal", inputs=[levels, tolerance, mouse, output_mask], outputs=[output_mask])
|
494 |
selector = gr.HTML(value="""
|
495 |
<a href='#' id='selector' onclick='this.style.fontWeight=\"bold\";
|
496 |
document.getElementById(\"image_edit\").getElementsByTagName(\"canvas\")[0].oncontextmenu = function(e){e.preventDefault();}
|