freealise commited on
Commit
73d7a38
1 Parent(s): d9a6897

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -6
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] == [0.0,0.0,0.0]:
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, -1, 1)
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=3, scale=scale, delta=delta, borderType=cv2.BORDER_DEFAULT))
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, 32, 32, (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,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();}