This commit is contained in:
HuangHai
2026-01-18 13:44:51 +08:00
parent bdbc6f46d1
commit 6688daa446
9 changed files with 61 additions and 35 deletions

View File

@@ -93,7 +93,7 @@ def save_image(path, img):
logger.error(f"Error saving image {path}: {e}")
return False
def draw_rectangles(image_path, bboxes=None, click_points=None):
def draw_rectangles(image_path, bboxes=None, click_points=None, save_vl=True):
"""
使用 OpenCV 在图片上绘制矩形框和点击点,生成 _vl.jpg 和 _flag.jpg
- _vl.jpg: 仅包含矩形框,供视觉模型参考
@@ -108,18 +108,18 @@ def draw_rectangles(image_path, bboxes=None, click_points=None):
if img is None:
return image_path
# 1. 先绘制矩形框 (VL 版)
vl_img = img.copy()
if bboxes:
for box in bboxes:
if len(box) == 4:
cv2.rectangle(vl_img, (int(box[0]), int(box[1])), (int(box[2]), int(box[3])), DEBUG_BOX_COLOR, DEBUG_BOX_THICKNESS)
vl_path = image_path.replace(".jpg", "_vl.jpg")
save_image(vl_path, vl_img)
# 2. 在 VL 版基础上绘制点击点 (Flag 版)
flag_img = vl_img.copy()
base_img = img.copy()
if bboxes:
for box in bboxes:
if len(box) == 4:
cv2.rectangle(base_img, (int(box[0]), int(box[1])), (int(box[2]), int(box[3])), DEBUG_BOX_COLOR, DEBUG_BOX_THICKNESS)
vl_path = None
if save_vl:
vl_path = image_path.replace(".jpg", "_vl.jpg")
save_image(vl_path, base_img)
flag_img = base_img.copy()
if click_points:
for p in click_points:
if len(p) == 2:
@@ -131,7 +131,7 @@ def draw_rectangles(image_path, bboxes=None, click_points=None):
flag_path = image_path.replace(".jpg", "_flag.jpg")
save_image(flag_path, flag_img)
return vl_path, flag_path
return vl_path or flag_path, flag_path
except Exception as e:
logger.error(f"绘制诊断图片失败: {e}")
return image_path, image_path