freealise commited on
Commit
c20e124
1 Parent(s): 9525e4e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -6
app.py CHANGED
@@ -134,7 +134,7 @@ def make_video(video_path, outdir='./vis_video_depth', encoder='vits'):
134
  if not ret:
135
  break
136
 
137
- frame = cv2.cvtColor(raw_frame, cv2.COLOR_BGR2RGB) / 255.0
138
  frame_pil = Image.fromarray((frame * 255).astype(np.uint8))
139
  frame = transform({'image': frame})['image']
140
 
@@ -464,6 +464,7 @@ def reset_mask():
464
  return masks[frame_selected], f"f{frame_selected}_dmap.png"
465
 
466
  def apply_mask(d, b):
 
467
  global frame_selected
468
  global masks
469
  global depths
@@ -477,17 +478,23 @@ def apply_mask(d, b):
477
  dilation = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (2 * b + 1, 2 * b + 1), (b, b))
478
  dmask = cv2.dilate(mask, dilation)
479
 
480
- d["background"][mask==255] = (255,255,255,255)
481
- mask = cv2.inRange(d["background"], np.array([255,255,255,255]), np.array([255,255,255,255]))
482
 
483
  for k, mk in enumerate(masks):
484
  if k != frame_selected and k < len(depths):
485
  masks[k] = cv2.imread(depths[k]).astype(np.uint8)
486
- masks[k][dmask<255] = (255,255,255)
487
 
 
 
 
 
 
 
488
  masks[frame_selected] = d["background"]
489
  cv2.imwrite(f"f{frame_selected}_dmap.png", masks[frame_selected])
490
- return masks[frame_selected], f"f{frame_selected}_dmap.png"
491
 
492
  def draw_mask(l, t, v, d, evt: gr.EventData):
493
  global params
@@ -786,7 +793,7 @@ with gr.Blocks(css=css, js=js) as demo:
786
  bsize = gr.Slider(label="Border size", value=15, maximum=256, minimum=1, step=2)
787
  mouse = gr.Textbox(elem_id="mouse", value="""[]""", interactive=False)
788
  mouse.input(fn=draw_mask, show_progress="minimal", inputs=[levels, tolerance, mouse, output_mask], outputs=[output_mask])
789
- apply.click(fn=apply_mask, inputs=[output_mask, bsize], outputs=[output_mask, depth_file])
790
  reset.click(fn=reset_mask, inputs=None, outputs=[output_mask, depth_file])
791
  with gr.Column():
792
  model_type = gr.Dropdown([("small", "vits"), ("base", "vitb"), ("large", "vitl")], type="value", value="vits", label='Model Type')
 
134
  if not ret:
135
  break
136
 
137
+ frame = cv2.cvtColor(raw_frame, cv2.COLOR_BGR2RGBA) / 255.0
138
  frame_pil = Image.fromarray((frame * 255).astype(np.uint8))
139
  frame = transform({'image': frame})['image']
140
 
 
464
  return masks[frame_selected], f"f{frame_selected}_dmap.png"
465
 
466
  def apply_mask(d, b):
467
+ global frames
468
  global frame_selected
469
  global masks
470
  global depths
 
478
  dilation = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (2 * b + 1, 2 * b + 1), (b, b))
479
  dmask = cv2.dilate(mask, dilation)
480
 
481
+ d["background"][mask==255] = (0,0,0,0)
482
+ mask = cv2.inRange(d["background"], np.array([0,0,0,0]), np.array([0,0,0,0]))
483
 
484
  for k, mk in enumerate(masks):
485
  if k != frame_selected and k < len(depths):
486
  masks[k] = cv2.imread(depths[k]).astype(np.uint8)
487
+ masks[k][dmask<255] = (0,0,0)
488
 
489
+ ksize = np.sqrt(np.sum(mask) / 255)
490
+ frame = cv2.imread(frames[frame_selected]).astype(np.uint8)
491
+ dmask = cv2.GaussianBlur(dmask, (ksize,ksize), 0)
492
+ frame[3] = 255 - dmask
493
+ cv2.imwrite(frames[frame_selected], frame)
494
+
495
  masks[frame_selected] = d["background"]
496
  cv2.imwrite(f"f{frame_selected}_dmap.png", masks[frame_selected])
497
+ return masks[frame_selected], f"f{frame_selected}_dmap.png", frames
498
 
499
  def draw_mask(l, t, v, d, evt: gr.EventData):
500
  global params
 
793
  bsize = gr.Slider(label="Border size", value=15, maximum=256, minimum=1, step=2)
794
  mouse = gr.Textbox(elem_id="mouse", value="""[]""", interactive=False)
795
  mouse.input(fn=draw_mask, show_progress="minimal", inputs=[levels, tolerance, mouse, output_mask], outputs=[output_mask])
796
+ apply.click(fn=apply_mask, inputs=[output_mask, bsize], outputs=[output_mask, depth_file, output_frame])
797
  reset.click(fn=reset_mask, inputs=None, outputs=[output_mask, depth_file])
798
  with gr.Column():
799
  model_type = gr.Dropdown([("small", "vits"), ("base", "vitb"), ("large", "vitl")], type="value", value="vits", label='Model Type')