🐛 Add support for additional detection function versions in horizontal line alignment. Implement version checks for functions 3 and 4, and handle errors for unspecified detection versions. Improve code clarity and maintainability.

This commit is contained in:
havoc420ubuntu 2025-05-31 12:53:50 +00:00
parent e427be6cb9
commit 8ef996ee94

View File

@ -144,6 +144,23 @@ def align_to_horizontal_line(ctrl, msg, observe=False, max_attempts=3, detect_fu
delay=1000 if observe else 0,
save_log=True
)
elif detect_func_version == 3:
edge_point_after, edge_info_after = detect_horizontal_track_edge_v3(
ctrl.image_processor.get_current_image(),
observe=observe,
delay=1000 if observe else 0,
save_log=True
)
elif detect_func_version == 4:
edge_point_after, edge_info_after = detect_furthest_horizontal_intersection(
ctrl.image_processor.get_current_image(),
observe=observe,
delay=1000 if observe else 0,
save_log=True
)
else:
error("未指定检测版本,请检查参数", "失败")
return False
if edge_info_after and "slope" in edge_info_after:
current_slope = edge_info_after["slope"]
@ -187,6 +204,7 @@ def align_to_horizontal_line(ctrl, msg, observe=False, max_attempts=3, detect_fu
return aligned
def calculate_distance_to_line(edge_info, camera_height, camera_tilt_angle_deg=0, observe=False):
"""
根据相机参数和图像中横线位置计算相机到横线的实际距离