Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -38,33 +38,21 @@ def fn(image):
|
|
| 38 |
pred_score_thr=instance_thres
|
| 39 |
)
|
| 40 |
|
| 41 |
-
|
| 42 |
-
|
| 43 |
|
| 44 |
# instances.bboxes, instances.masks will be None, None if no obj is detected
|
| 45 |
if instances.bboxes is None:
|
| 46 |
-
return Image.fromarray(
|
| 47 |
|
| 48 |
for ii, (xywh, mask) in enumerate(zip(instances.bboxes, instances.masks)):
|
| 49 |
-
|
|
|
|
| 50 |
|
| 51 |
-
|
| 52 |
-
|
| 53 |
|
| 54 |
-
|
| 55 |
-
p1, p2 = (int(xywh[0]), int(xywh[1])), (int(xywh[2] + xywh[0]), int(xywh[3] + xywh[1]))
|
| 56 |
-
cv2.rectangle(drawed, p1, p2, color, thickness=linewidth, lineType=cv2.LINE_AA)
|
| 57 |
-
|
| 58 |
-
# draw mask
|
| 59 |
-
p = mask.astype(np.float32)
|
| 60 |
-
blend_mask = np.full((im_h, im_w, 3), color, dtype=np.float32)
|
| 61 |
-
alpha_msk = (mask_alpha * p)[..., None]
|
| 62 |
-
alpha_ori = 1 - alpha_msk
|
| 63 |
-
drawed = drawed * alpha_ori + alpha_msk * blend_mask
|
| 64 |
-
|
| 65 |
-
drawed = drawed.astype(np.uint8)
|
| 66 |
-
|
| 67 |
-
return Image.fromarray(drawed[..., ::-1])
|
| 68 |
|
| 69 |
iface = gr.Interface(
|
| 70 |
# design titles and text descriptions
|
|
|
|
| 38 |
pred_score_thr=instance_thres
|
| 39 |
)
|
| 40 |
|
| 41 |
+
# 创建一个空白的白色图像,和原图大小一致
|
| 42 |
+
white = np.full_like(img, 255)
|
| 43 |
|
| 44 |
# instances.bboxes, instances.masks will be None, None if no obj is detected
|
| 45 |
if instances.bboxes is None:
|
| 46 |
+
return Image.fromarray(white)
|
| 47 |
|
| 48 |
for ii, (xywh, mask) in enumerate(zip(instances.bboxes, instances.masks)):
|
| 49 |
+
# 把mask转换为bool类型,方便后续操作
|
| 50 |
+
mask = mask.astype(np.bool)
|
| 51 |
|
| 52 |
+
# 用原图中对应的区域替换白色图像中的区域,实现去除背景的效果
|
| 53 |
+
white[mask] = img[mask]
|
| 54 |
|
| 55 |
+
return Image.fromarray(white[..., ::-1])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
iface = gr.Interface(
|
| 58 |
# design titles and text descriptions
|