Make triangulation a zero-copy pure function
This commit is contained in:
+2
-2
@@ -3,7 +3,7 @@ from __future__ import annotations
|
||||
from collections.abc import Sequence
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from ._core import Camera, Triangulator
|
||||
from ._core import Camera, triangulate_poses
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import numpy as np
|
||||
@@ -28,7 +28,7 @@ def pack_poses_2d(
|
||||
|
||||
__all__ = [
|
||||
"Camera",
|
||||
"Triangulator",
|
||||
"convert_cameras",
|
||||
"pack_poses_2d",
|
||||
"triangulate_poses",
|
||||
]
|
||||
|
||||
+19
-8
@@ -1,19 +1,30 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Mapping, Sequence
|
||||
from typing import Any, TypeAlias
|
||||
from collections.abc import Sequence
|
||||
from typing import TypeAlias, TypedDict
|
||||
|
||||
import numpy as np
|
||||
import numpy.typing as npt
|
||||
|
||||
from ._core import Camera
|
||||
|
||||
CameraLike = Camera | Mapping[str, Any]
|
||||
PoseViewLike: TypeAlias = (
|
||||
npt.NDArray[np.generic]
|
||||
| Sequence[Sequence[Sequence[float]]]
|
||||
| Sequence[Sequence[float]]
|
||||
)
|
||||
Matrix3x3Like: TypeAlias = Sequence[Sequence[float]]
|
||||
VectorLike: TypeAlias = Sequence[float]
|
||||
PoseViewLike: TypeAlias = npt.NDArray[np.generic] | Sequence[Sequence[Sequence[float]]] | Sequence[Sequence[float]]
|
||||
|
||||
|
||||
class CameraDict(TypedDict, total=False):
|
||||
name: str
|
||||
K: Matrix3x3Like
|
||||
DC: VectorLike
|
||||
R: Matrix3x3Like
|
||||
T: Sequence[Sequence[float]]
|
||||
width: int
|
||||
height: int
|
||||
type: str
|
||||
|
||||
|
||||
CameraLike = Camera | CameraDict
|
||||
|
||||
|
||||
def convert_cameras(cameras: Sequence[CameraLike]) -> list[Camera]:
|
||||
|
||||
Reference in New Issue
Block a user