import argparse from datetime import timedelta from main import ProcessConfig, ODM_Plugin def parse_args(): parser = argparse.ArgumentParser(description='ODM预处理工具') # 必需参数 # parser.add_argument('--image_dir', required=True, help='输入图片目录路径') # parser.add_argument('--output_dir', required=True, help='输出目录路径') parser.add_argument( '--image_dir', default=r'E:\datasets\UAV\199', help='输入图片目录路径') parser.add_argument( '--output_dir', default=r'G:\ODM_output\test2', help='输出目录路径') # 可选参数 parser.add_argument('--mode', default='三维模式', choices=['快拼模式', '三维模式'], help='处理模式') parser.add_argument('--accuracy', default='medium', choices=['high', 'medium', 'low'], help='精度') parser.add_argument('--grid_size', type=float, default=800, help='网格大小(米)') parser.add_argument('--grid_overlap', type=float, default=0.05, help='网格重叠率') args = parser.parse_args() return args def main(): args = parse_args() # 创建配置 config = ProcessConfig( image_dir=args.image_dir, output_dir=args.output_dir, mode=args.mode, accuracy=args.accuracy, grid_size=args.grid_size, grid_overlap=args.grid_overlap, # 其他参数使用默认值 cluster_eps=0.01, cluster_min_samples=5, time_group_overlap_threshold=0.7, time_group_interval=timedelta(minutes=5), filter_distance_threshold=0.001, filter_min_neighbors=6, filter_grid_size=0.001, filter_dense_distance_threshold=10, filter_time_threshold=timedelta(minutes=5), ) # 创建处理器并执行 processor = ODM_Plugin(config) processor.process() if __name__ == '__main__': main()