Unify camera model into immutable factory-built type
This commit is contained in:
@@ -19,6 +19,7 @@ from ._core import (
|
||||
TriangulationTrace,
|
||||
build_pair_candidates,
|
||||
filter_pairs_with_previous_poses,
|
||||
make_camera,
|
||||
triangulate_debug,
|
||||
triangulate_poses,
|
||||
)
|
||||
@@ -80,6 +81,7 @@ __all__ = [
|
||||
"build_pair_candidates",
|
||||
"convert_cameras",
|
||||
"filter_pairs_with_previous_poses",
|
||||
"make_camera",
|
||||
"make_triangulation_config",
|
||||
"pack_poses_2d",
|
||||
"triangulate_debug",
|
||||
|
||||
+13
-11
@@ -6,7 +6,7 @@ from typing import Literal, TypeAlias, TypedDict
|
||||
import numpy as np
|
||||
import numpy.typing as npt
|
||||
|
||||
from ._core import Camera, CameraModel, TriangulationConfig, TriangulationOptions
|
||||
from ._core import Camera, CameraModel, TriangulationConfig, TriangulationOptions, make_camera
|
||||
|
||||
Matrix3x3Like: TypeAlias = Sequence[Sequence[float]]
|
||||
VectorLike: TypeAlias = Sequence[float]
|
||||
@@ -64,17 +64,19 @@ def convert_cameras(cameras: Sequence[CameraLike]) -> list[Camera]:
|
||||
converted.append(cam)
|
||||
continue
|
||||
|
||||
camera = Camera()
|
||||
camera.name = str(cam["name"])
|
||||
camera.K = cam["K"]
|
||||
camera_model = _coerce_camera_model(cam.get("model", cam.get("type", "pinhole")))
|
||||
camera.DC = _coerce_distortion(cam["DC"], camera_model)
|
||||
camera.R = cam["R"]
|
||||
camera.T = cam["T"]
|
||||
camera.width = int(cam["width"])
|
||||
camera.height = int(cam["height"])
|
||||
camera.model = camera_model
|
||||
converted.append(camera)
|
||||
converted.append(
|
||||
make_camera(
|
||||
str(cam["name"]),
|
||||
cam["K"],
|
||||
_coerce_distortion(cam["DC"], camera_model),
|
||||
cam["R"],
|
||||
cam["T"],
|
||||
int(cam["width"]),
|
||||
int(cam["height"]),
|
||||
camera_model,
|
||||
)
|
||||
)
|
||||
return converted
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user