djl234 commited on
Commit
3669afd
·
verified ·
1 Parent(s): fa9a418

Update app.py

Browse files

[fix] size aligns

Files changed (1) hide show
  1. app.py +18 -2
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
- return cv2.addWeighted(img, 0.7, mask, 0.3, 0)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: