57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
|
#!/usr/bin/env python3
|
|||
|
|
|||
|
import os
|
|||
|
import sys
|
|||
|
import cv2
|
|||
|
import numpy as np
|
|||
|
import argparse
|
|||
|
|
|||
|
# 添加父目录到路径,以便能够导入utils
|
|||
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|||
|
|
|||
|
from utils.decode_arrow import detect_arrow_direction, visualize_arrow_detection
|
|||
|
|
|||
|
def main():
|
|||
|
# 创建参数解析器
|
|||
|
parser = argparse.ArgumentParser(description='测试箭头方向检测')
|
|||
|
parser.add_argument('image_path', help='图像文件路径')
|
|||
|
parser.add_argument('--save', help='保存可视化结果的路径', default=None)
|
|||
|
parser.add_argument('--show', help='显示可视化结果', action='store_true')
|
|||
|
parser.add_argument('--debug', help='输出详细的调试信息', action='store_true')
|
|||
|
|
|||
|
args = parser.parse_args()
|
|||
|
|
|||
|
# 检查文件是否存在
|
|||
|
if not os.path.exists(args.image_path):
|
|||
|
print(f"错误: 文件 '{args.image_path}' 不存在")
|
|||
|
sys.exit(1)
|
|||
|
|
|||
|
print(f"正在处理图像: {args.image_path}")
|
|||
|
|
|||
|
# 加载图像
|
|||
|
img = cv2.imread(args.image_path)
|
|||
|
if img is None:
|
|||
|
print(f"错误: 无法加载图像 '{args.image_path}'")
|
|||
|
sys.exit(1)
|
|||
|
|
|||
|
# 如果需要,显示原始图像
|
|||
|
if args.debug:
|
|||
|
cv2.imshow('Original Image', img)
|
|||
|
cv2.waitKey(0)
|
|||
|
|
|||
|
# 检测箭头方向
|
|||
|
direction = detect_arrow_direction(img)
|
|||
|
print(f"检测到的箭头方向: {direction}")
|
|||
|
|
|||
|
# 如果需要,显示可视化结果
|
|||
|
if args.show or args.save:
|
|||
|
visualize_arrow_detection(img, args.save)
|
|||
|
|
|||
|
# 如果不需要显示可视化结果但需要保存
|
|||
|
if args.save and not args.show:
|
|||
|
print(f"可视化结果已保存到: {args.save}")
|
|||
|
|
|||
|
return direction
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
main()
|