import cv2 import argparse from utils.detect_track import detect_yellow_track, visualize_track_detection def main(): # 创建命令行参数解析器 parser = argparse.ArgumentParser(description='黄色赛道检测测试程序') parser.add_argument('--image', type=str, required=True, help='要处理的图像路径') parser.add_argument('--save', type=str, help='保存结果图像的路径(可选)') parser.add_argument('--observe', action='store_true', help='显示中间处理步骤') parser.add_argument('--delay', type=int, default=500, help='步骤间延迟时间(毫秒)') # 解析命令行参数 args = parser.parse_args() # 检测赛道并估算距离 print("正在处理图像...") distance, path_info = detect_yellow_track(args.image, observe=args.observe, delay=args.delay) if distance is not None and path_info is not None: print("\n===== 赛道分析结果 =====") print(f"估算距离: {distance:.2f}米") print(f"赛道角度: {path_info['track_angle']:.2f}°") print(f"转向方向: {path_info['turn_direction']}") print(f"赛道是否笔直: {'是' if path_info['is_straight'] else '否'}") print(f"黄色区域占比: {path_info['area_ratio']:.4f}") print("========================\n") else: print("未能检测到黄色赛道,请检查图像或调整参数") # 可视化检测过程 print("开始可视化检测过程...") visualize_track_detection(args.image, save_path=args.save, observe=args.observe, delay=args.delay) print("处理完成") if __name__ == "__main__": main()