freealise commited on
Commit
79610f5
·
verified ·
1 Parent(s): bfcdeab

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -8
app.py CHANGED
@@ -576,10 +576,11 @@ def draw_mask(l, t, b, v, d, evt: gr.EventData):
576
  else:
577
  gradient = cv2.imread('./gradient_small.png').astype(np.uint8)
578
 
579
- bg = cv2.cvtColor(d["background"], cv2.COLOR_RGBA2RGB)
580
- bg = cv2.cvtColor(bg, cv2.COLOR_RGB2HSV)
581
- bg[:,:,0] = clrs[:,:,0]
582
- bg = cv2.cvtColor(bg, cv2.COLOR_HSV2RGB)
 
583
 
584
  diff = np.abs(cv2.cvtColor(d["background"], cv2.COLOR_RGBA2GRAY).astype(np.int16)-cv2.cvtColor(gradient, cv2.COLOR_RGBA2GRAY).astype(np.int16)).astype(np.uint8)
585
  mask = cv2.inRange(diff, 0, t)
@@ -598,20 +599,21 @@ def draw_mask(l, t, b, v, d, evt: gr.EventData):
598
  # bg[(bg >= i*255/l) & (bg < (i+1)*255/l)] = i*255/(l-1)
599
  #bg = cv2.convertScaleAbs(palette[bg]).astype(np.uint8) # Converting image back to uint
600
 
601
- res = np.float32(bg.reshape((-1,3)))
602
  criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 4, 1.0)
603
  ret,label,center=cv2.kmeans(res,l,None,criteria,4,cv2.KMEANS_PP_CENTERS)
604
  center = np.uint8(center)
605
  res = center[label.flatten()]
606
  bg = res.reshape((bg.shape))
607
 
608
- bg[mask>0] = (0,0,0)
609
- bg[bg[:,:,2]==255] = (0,0,0)
 
610
 
611
  params["fnum"] = frame_selected
612
  params["l"] = l
613
 
614
- d["layers"][0] = cv2.cvtColor(bg, cv2.COLOR_RGB2RGBA)
615
  edge = bg.copy()
616
  else:
617
  bg = edge.copy()
 
576
  else:
577
  gradient = cv2.imread('./gradient_small.png').astype(np.uint8)
578
 
579
+ bg = cv2.cvtColor(d["background"], cv2.COLOR_RGBA2GRAY)
580
+ #bg = cv2.cvtColor(bg, cv2.COLOR_RGB2HSV)
581
+ #bg[:,:,0] = clrs[:,:,0]
582
+ #bg = cv2.cvtColor(bg, cv2.COLOR_HSV2RGB)
583
+ bd = cv2.convertScaleAbs(cv2.Laplacian(bg, cv2.CV_64F, 5)).astype(np.uint8)
584
 
585
  diff = np.abs(cv2.cvtColor(d["background"], cv2.COLOR_RGBA2GRAY).astype(np.int16)-cv2.cvtColor(gradient, cv2.COLOR_RGBA2GRAY).astype(np.int16)).astype(np.uint8)
586
  mask = cv2.inRange(diff, 0, t)
 
599
  # bg[(bg >= i*255/l) & (bg < (i+1)*255/l)] = i*255/(l-1)
600
  #bg = cv2.convertScaleAbs(palette[bg]).astype(np.uint8) # Converting image back to uint
601
 
602
+ res = np.float32(bg.reshape((-1,1)))
603
  criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 4, 1.0)
604
  ret,label,center=cv2.kmeans(res,l,None,criteria,4,cv2.KMEANS_PP_CENTERS)
605
  center = np.uint8(center)
606
  res = center[label.flatten()]
607
  bg = res.reshape((bg.shape))
608
 
609
+ bg[bd>b] = 0
610
+ bg[mask>0] = 0
611
+ bg[bg==255] = 0
612
 
613
  params["fnum"] = frame_selected
614
  params["l"] = l
615
 
616
+ d["layers"][0] = cv2.cvtColor(bg, cv2.COLOR_GRAY2RGBA)
617
  edge = bg.copy()
618
  else:
619
  bg = edge.copy()