47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
#!/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() |