def run_dataset(data: DataSet, binary): """ Export reconstruction to COLMAP format.""" export_folder = os.path.join(data.data_path, "colmap_export") io.mkdir_p(export_folder) database_path = os.path.join(export_folder, "colmap_database.db") images_path = os.path.join(data.data_path, "images") if os.path.exists(database_path): os.remove(database_path) db = COLMAPDatabase.connect(database_path) db.create_tables() images_map, camera_map = export_cameras(data, db) features_map = export_features(data, db, images_map) export_matches(data, db, features_map, images_map) if data.reconstruction_exists(): export_ini_file(export_folder, database_path, images_path) export_cameras_reconstruction(data, export_folder, camera_map, binary) points_map = export_points_reconstruction(data, export_folder, images_map, binary) export_images_reconstruction( data, export_folder, camera_map, images_map, features_map, points_map, binary, ) db.commit() db.close()
def run_dataset(data: DataSet, binary: bool) -> None: """Export reconstruction to COLMAP format.""" export_folder = os.path.join(data.data_path, "colmap_export") data.io_handler.mkdir_p(export_folder) database_path = os.path.join(export_folder, "colmap_database.db") with tempfile.TemporaryDirectory() as tmp_dir: tmp_database_path = os.path.join(tmp_dir, "colmap_database.db") images_path = os.path.join(data.data_path, "images") db = COLMAPDatabase.connect(tmp_database_path) db.create_tables() images_map, camera_map = export_cameras(data, db) features_map = export_features(data, db, images_map) export_matches(data, db, features_map, images_map) if data.reconstruction_exists(): export_ini_file(export_folder, database_path, images_path, data.io_handler) export_cameras_reconstruction(data, export_folder, camera_map, binary) points_map = export_points_reconstruction(data, export_folder, images_map, binary) export_images_reconstruction( data, export_folder, camera_map, images_map, features_map, points_map, binary, ) db.commit() db.close() data.io_handler.rm_if_exist(database_path) with data.io_handler.open(tmp_database_path, "rb") as f: with data.io_handler.open(database_path, "wb") as fwb: fwb.write(f.read())