'commit'
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user