Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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())