yusir4200 commited on
Commit
6a91f98
·
verified ·
1 Parent(s): 204296f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -0
app.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app.py
2
+ import numpy as np
3
+ from medsam import MedSAM
4
+ import SimpleITK as sitk
5
+ from flask import Flask, request, jsonify
6
+
7
+ app = Flask(__name__)
8
+ model = MedSAM.load_from_checkpoint("/app/medsam_vit_b.pth")
9
+
10
+ @app.route('/segment', methods=['POST'])
11
+ def segment():
12
+ # 接收前端数据
13
+ data = request.json
14
+ image = np.array(data['image'])
15
+ prompt = data['prompt'] # 格式: [{'type':'point','data':[x,y]}, ...]
16
+
17
+ # 预处理图像 (HxW -> HxWx3)
18
+ img_3c = np.repeat(image[:,:,None], 3, axis=-1)
19
+
20
+ # 转换提示格式
21
+ medsam_prompt = []
22
+ for p in prompt:
23
+ if p['type'] == 'point':
24
+ medsam_prompt.append({'point': p['data'], 'label': 1})
25
+ elif p['type'] == 'box':
26
+ medsam_prompt.append({'box': p['data']})
27
+
28
+ # 模型推理
29
+ mask = model.predict(img_3c, medsam_prompt)
30
+
31
+ return jsonify({"mask": mask.tolist()})
32
+
33
+ if __name__ == '__main__':
34
+ app.run(host='0.0.0.0', port=7860)