Spaces:
Running
Running
Update app.py
Browse files[fix] size aligns
app.py
CHANGED
|
@@ -36,8 +36,24 @@ def generate_mask(img, coord):
|
|
| 36 |
return overlay_mask(img, mask)
|
| 37 |
|
| 38 |
def overlay_mask(img, mask):
|
| 39 |
-
#
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
def create_mode2_interface():
|
| 43 |
with gr.Blocks() as mode2:
|
|
|
|
| 36 |
return overlay_mask(img, mask)
|
| 37 |
|
| 38 |
def overlay_mask(img, mask):
|
| 39 |
+
# 尺寸对齐
|
| 40 |
+
mask_resized = cv2.resize(mask, (img.shape[1], img.shape[0])) # 匹配原图尺寸
|
| 41 |
+
|
| 42 |
+
# 通道数转换
|
| 43 |
+
if len(mask_resized.shape) == 2:
|
| 44 |
+
mask_rgb = cv2.cvtColor(mask_resized, cv2.COLOR_GRAY2BGR)
|
| 45 |
+
else:
|
| 46 |
+
mask_rgb = mask_resized
|
| 47 |
+
|
| 48 |
+
# 归一化处理(参考网页5的医学图像处理方案)
|
| 49 |
+
mask_normalized = mask_rgb.astype(np.float32) / 255.0
|
| 50 |
+
img_normalized = img.astype(np.float32) / 255.0
|
| 51 |
+
|
| 52 |
+
# 带透明度叠加(根据网页3的工业标准)
|
| 53 |
+
alpha = 0.7 # 原图可见度
|
| 54 |
+
blended = cv2.addWeighted(img_normalized, alpha,
|
| 55 |
+
mask_normalized, 1-alpha, 0)
|
| 56 |
+
return (blended * 255).astype(np.uint8)
|
| 57 |
|
| 58 |
def create_mode2_interface():
|
| 59 |
with gr.Blocks() as mode2:
|