__all__: list[str] = [] import cv2.typing import os import typing as _typing # Classes class ICP: # Functions @_typing.overload def __init__(self) -> None: ... @_typing.overload def __init__(self, iterations: int, tolerence: float = ..., rejectionScale: float = ..., numLevels: int = ..., sampleType: int = ..., numMaxCorr: int = ...) -> None: ... @_typing.overload def registerModelToScene(self, srcPC: cv2.typing.MatLike, dstPC: cv2.typing.MatLike) -> tuple[int, float, cv2.typing.Matx44d]: ... @_typing.overload def registerModelToScene(self, srcPC: cv2.typing.MatLike, dstPC: cv2.typing.MatLike, poses: _typing.Sequence[Pose3D]) -> tuple[int, _typing.Sequence[Pose3D]]: ... class Pose3D: @property def alpha(self) -> float: ... @property def residual(self) -> float: ... @property def modelIndex(self) -> int: ... @property def numVotes(self) -> int: ... @property def pose(self) -> cv2.typing.Matx44d: ... @property def angle(self) -> float: ... @property def t(self) -> cv2.typing.Vec3d: ... @property def q(self) -> cv2.typing.Vec4d: ... # Functions @_typing.overload def __init__(self) -> None: ... @_typing.overload def __init__(self, Alpha: float, ModelIndex: int = ..., NumVotes: int = ...) -> None: ... @_typing.overload def updatePose(self, NewPose: cv2.typing.Matx44d) -> None: ... @_typing.overload def updatePose(self, NewR: cv2.typing.Matx33d, NewT: cv2.typing.Vec3d) -> None: ... def updatePoseQuat(self, Q: cv2.typing.Vec4d, NewT: cv2.typing.Vec3d) -> None: ... def appendPose(self, IncrementalPose: cv2.typing.Matx44d) -> None: ... def printPose(self) -> None: ... class PoseCluster3D: ... class PPF3DDetector: # Functions @_typing.overload def __init__(self) -> None: ... @_typing.overload def __init__(self, relativeSamplingStep: float, relativeDistanceStep: float = ..., numAngles: float = ...) -> None: ... def trainModel(self, Model: cv2.typing.MatLike) -> None: ... def match(self, scene: cv2.typing.MatLike, relativeSceneSampleStep: float = ..., relativeSceneDistance: float = ...) -> _typing.Sequence[Pose3D]: ... # Functions def addNoisePC(pc: cv2.typing.MatLike, scale: float) -> cv2.typing.MatLike: ... def computeNormalsPC3d(PC: cv2.typing.MatLike, NumNeighbors: int, FlipViewpoint: bool, viewpoint: cv2.typing.Vec3f, PCNormals: cv2.typing.MatLike | None = ...) -> tuple[int, cv2.typing.MatLike]: ... def getRandomPose(Pose: cv2.typing.Matx44d) -> None: ... def loadPLYSimple(fileName: str | os.PathLike[str], withNormals: int = ...) -> cv2.typing.MatLike: ... def samplePCByQuantization(pc: cv2.typing.MatLike, xrange: cv2.typing.Vec2f, yrange: cv2.typing.Vec2f, zrange: cv2.typing.Vec2f, sample_step_relative: float, weightByCenter: int = ...) -> cv2.typing.MatLike: ... def transformPCPose(pc: cv2.typing.MatLike, Pose: cv2.typing.Matx44d) -> cv2.typing.MatLike: ... def writePLY(PC: cv2.typing.MatLike, fileName: str | os.PathLike[str]) -> None: ... def writePLYVisibleNormals(PC: cv2.typing.MatLike, fileName: str | os.PathLike[str]) -> None: ...