38 lines
1.6 KiB
Python
38 lines
1.6 KiB
Python
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() |