mi-task/test/test_dual_track.py

47 lines
1.6 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cv2
import os
import sys
# 添加项目根目录到Python路径
current_dir = os.path.dirname(os.path.abspath(__file__))
project_root = os.path.dirname(current_dir)
sys.path.append(project_root)
from utils.detect_dual_track_lines import auto_detect_dual_track_lines
def test_images():
test_dir = 'res/path/dual'
results = []
for img_file in sorted(os.listdir(test_dir)):
if img_file.endswith('.png'):
img_path = os.path.join(test_dir, img_file)
print(f'\n处理图片: {img_path}')
img = cv2.imread(img_path)
result = auto_detect_dual_track_lines(img, observe=False, save_log=True)
if result[0] is not None:
print(f' 检测成功! 偏差: {result[0]["deviation"]}px, 石板路模式: {result[0]["stone_path_mode"]}')
results.append((img_file, True, result[0]["deviation"]))
else:
print(f' 检测失败!')
results.append((img_file, False, None))
print('\n检测结果汇总:')
success_count = 0
for img_file, success, deviation in results:
status = '成功' if success else '失败'
if success:
success_count += 1
dev_info = f'偏差: {deviation}px' if deviation is not None else ''
print(f'{img_file}: {status} {dev_info}')
success_rate = (success_count / len(results)) * 100 if results else 0
print(f'\n总成功率: {success_rate:.2f}% ({success_count}/{len(results)})')
if __name__ == "__main__":
test_images()