Files
RapidPoseTriangulation/src/rpt/__init__.py
T

90 lines
2.1 KiB
Python

from __future__ import annotations
from collections.abc import Sequence
from typing import TYPE_CHECKING
from ._core import (
Camera,
CameraModel,
TriangulationConfig,
TriangulationOptions,
CoreProposalDebug,
FullProposalDebug,
GroupingDebug,
MergeDebug,
PairCandidate,
PreviousPoseFilterDebug,
PreviousPoseMatch,
ProposalGroupDebug,
TriangulationTrace,
build_pair_candidates,
filter_pairs_with_previous_poses,
make_camera,
triangulate_debug,
triangulate_poses,
)
if TYPE_CHECKING:
import numpy as np
import numpy.typing as npt
from ._helpers import CameraLike, PoseViewLike
def convert_cameras(cameras: "Sequence[CameraLike]") -> list[Camera]:
from ._helpers import convert_cameras as _convert_cameras
return _convert_cameras(cameras)
def pack_poses_2d(
views: "Sequence[PoseViewLike]", *, joint_count: int | None = None
) -> "tuple[npt.NDArray[np.float32], npt.NDArray[np.uint32]]":
from ._helpers import pack_poses_2d as _pack_poses_2d
return _pack_poses_2d(views, joint_count=joint_count)
def make_triangulation_config(
cameras: "Sequence[CameraLike]",
roomparams: "npt.NDArray[np.generic] | Sequence[Sequence[float]]",
joint_names: "Sequence[str]",
*,
min_match_score: float = 0.95,
min_group_size: int = 1,
) -> TriangulationConfig:
from ._helpers import make_triangulation_config as _make_triangulation_config
return _make_triangulation_config(
cameras,
roomparams,
joint_names,
min_match_score=min_match_score,
min_group_size=min_group_size,
)
__all__ = [
"Camera",
"CameraModel",
"TriangulationConfig",
"TriangulationOptions",
"CoreProposalDebug",
"FullProposalDebug",
"GroupingDebug",
"MergeDebug",
"PairCandidate",
"PreviousPoseFilterDebug",
"PreviousPoseMatch",
"ProposalGroupDebug",
"TriangulationTrace",
"build_pair_candidates",
"convert_cameras",
"filter_pairs_with_previous_poses",
"make_camera",
"make_triangulation_config",
"pack_poses_2d",
"triangulate_debug",
"triangulate_poses",
]