s6.vision.stereo_spotsΒΆ

Stereo spot detection, matching, and reconstruction helpers.

class s6.vision.stereo_spots.StereoSpotMatch(*, index_0: int, index_1: int, detection_0: Circle2D, detection_1: Circle2D, point_world: Vector3D, point_camera_0: Vector3D, epipolar_error_px: float, reprojection_error_0_px: float, reprojection_error_1_px: float, plane_distance_camera_0: float)

Bases: BaseModel

One matched stereo spot observation and its 3D reconstruction.

index_0: int
index_1: int
detection_0: Circle2D
detection_1: Circle2D
point_world: Vector3D
point_camera_0: Vector3D
epipolar_error_px: float
reprojection_error_0_px: float
reprojection_error_1_px: float
plane_distance_camera_0: float
class s6.vision.stereo_spots.StereoSpotResult(*, detections_0: list[Circle2D] = None, detections_1: list[Circle2D] = None, matches: list[StereoSpotMatch] = None, unmatched_indices_0: list[int] = None, unmatched_indices_1: list[int] = None, plane_point_camera_0: Vector3D | None = None, plane_normal_camera_0: Vector3D | None = None)

Bases: BaseModel

Detection and stereo reconstruction result for one image pair.

detections_0: list[Circle2D]
detections_1: list[Circle2D]
matches: list[StereoSpotMatch]
unmatched_indices_0: list[int]
unmatched_indices_1: list[int]
plane_point_camera_0: Vector3D | None
plane_normal_camera_0: Vector3D | None
s6.vision.stereo_spots.detect_spots(image: ndarray, *, max_spot_fraction: float = 0.02) list[Circle2D]

Detect small bright circular blobs in an image.

s6.vision.stereo_spots.match_and_triangulate_spots(camera_0: Camera, camera_1: Camera, detections_0: list[Circle2D], detections_1: list[Circle2D], *, max_epipolar_error_px: float = 4.0, max_reprojection_error_px: float = 3.0, plane_weight: float = 0.2, max_iterations: int = 3) StereoSpotResult

Match stereo spots between two views and triangulate their 3D positions.

s6.vision.stereo_spots.reconstruct_stereo_spots(camera_0: Camera, image_0: ndarray, camera_1: Camera, image_1: ndarray, *, max_spot_fraction: float = 0.02, max_epipolar_error_px: float = 4.0, max_reprojection_error_px: float = 3.0, plane_weight: float = 0.2, max_iterations: int = 3) StereoSpotResult

Detect, match, and triangulate stereo spots from a stereo image pair.