yrosenbloom commited on
Commit
e3f5c27
·
verified ·
1 Parent(s): a2fd20a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -2
app.py CHANGED
@@ -54,14 +54,19 @@ def process_image(image: Image.Image):
54
  # two extremes: no blur for near, heavy blur for far
55
  near_blur = img_np
56
  far_blur = cv2.GaussianBlur(img_np, (81,81), 20)
57
- # invert so 0→near, 1→far
 
58
  inv_d = 1.0 - depth_norm
59
  alpha = inv_d[...,None]
 
60
  # now near (inv_d≈1) stays sharp, far (inv_d≈0) becomes far_blur
61
  combined = img_np * alpha + far_blur * (1.0 - alpha)
62
  lens_blur = Image.fromarray(np.clip(combined,0,255).astype(np.uint8))
63
 
64
- return image, output_blur, lens_blur
 
 
 
65
 
66
  iface = gr.Interface(
67
  fn=process_image,
 
54
  # two extremes: no blur for near, heavy blur for far
55
  near_blur = img_np
56
  far_blur = cv2.GaussianBlur(img_np, (81,81), 20)
57
+
58
+ # invert so 0 -> near, 1 -> far
59
  inv_d = 1.0 - depth_norm
60
  alpha = inv_d[...,None]
61
+
62
  # now near (inv_d≈1) stays sharp, far (inv_d≈0) becomes far_blur
63
  combined = img_np * alpha + far_blur * (1.0 - alpha)
64
  lens_blur = Image.fromarray(np.clip(combined,0,255).astype(np.uint8))
65
 
66
+ # 6) composite to keep foreground sharp, invert the binary segmentation mask:
67
+ bg_mask = Image.fromarray((mask==0).astype(np.uint8)*255)
68
+ final_lens_blur = Image.composite(lens_blur, image, mask=bg_mask)
69
+ return image, output_blur, final_lens_blur
70
 
71
  iface = gr.Interface(
72
  fn=process_image,