This commit is contained in:
gcw_4spBpAfv
2026-01-23 11:28:40 +08:00
parent 42bfdd033c
commit 28fb62e5d6
12 changed files with 648 additions and 67 deletions

View File

@@ -608,35 +608,35 @@ def save_shot_image(result_img, center, radius, method, ellipse_params,
# 转换图像为 OpenCV 格式以便绘制
img_cv = image.image2cv(result_img, False, False)
# # 确保激光十字线被绘制使用OpenCV在图像上绘制确保可见性
# laser_color = (config.LASER_COLOR[0], config.LASER_COLOR[1], config.LASER_COLOR[2])
# thickness = max(config.LASER_THICKNESS, 2) # 至少2像素宽确保可见
# length = max(config.LASER_LENGTH, 10) # 至少10像素长
# # 绘制激光十字线(水平线)
# cv2.line(img_cv,
# (int(x - length), int(y)),
# (int(x + length), int(y)),
# laser_color, thickness)
# # 绘制激光十字线(垂直线)
# cv2.line(img_cv,
# (int(x), int(y - length)),
# (int(x), int(y + length)),
# laser_color, thickness)
# # 绘制激光点
# cv2.circle(img_cv, (int(x), int(y)), max(thickness, 3), laser_color, -1)
# 在 vision.py 的 save_shot_image 函数中替换第598-614行的代码
# 绘制激光点标注(使用空心圆圈,类似校准时的标注方式
# 绘制激光十字线(保存图像时统一绘制,避免影响检测
laser_color = (config.LASER_COLOR[0], config.LASER_COLOR[1], config.LASER_COLOR[2])
thickness = 1 # 圆圈线宽
# 绘制外圈半径10空心
cv2.circle(img_cv, (int(x), int(y)), 10, laser_color, thickness)
# 绘制中圈半径5空心
cv2.circle(img_cv, (int(x), int(y)), 5, laser_color, thickness)
# 绘制中心点半径2实心用于精确定位
cross_thickness = int(max(getattr(config, "LASER_THICKNESS", 1), 1))
cross_length = int(max(getattr(config, "LASER_LENGTH", 10), 10))
# 水平线
cv2.line(
img_cv,
(int(x - cross_length), int(y)),
(int(x + cross_length), int(y)),
laser_color,
cross_thickness,
)
# 垂直线
cv2.line(
img_cv,
(int(x), int(y - cross_length)),
(int(x), int(y + cross_length)),
laser_color,
cross_thickness,
)
# 小点(与原 main.py 行为一致)
cv2.circle(img_cv, (int(x), int(y)), 1, laser_color, cross_thickness)
# 额外的激光点标注(空心圆圈,便于肉眼查看)
ring_thickness = 1
cv2.circle(img_cv, (int(x), int(y)), 10, laser_color, ring_thickness)
cv2.circle(img_cv, (int(x), int(y)), 5, laser_color, ring_thickness)
cv2.circle(img_cv, (int(x), int(y)), 2, laser_color, -1)
# 如果检测到靶心,绘制靶心标注