Estimate 3D lines

Robust estimation of a 3D line segment from multi-view observations, from a depth map, or from a 3D point cloud.

limap.estimators.line3d.estimate_line3d_robust(points: collections.abc.Sequence[Annotated[numpy.typing.ArrayLike, numpy.float64, '[3, 1]']], max_error: SupportsFloat | SupportsIndex, options: limap._limap._estimators.PoseLibRansacOptions) tuple[limap._limap._geometry.Line3d | None, limap._limap._estimators.PoseLibRansacStats]
limap.estimators.line3d.estimate_seg3d(points: ndarray, ransac_th: float = 0.75, min_inlier_ratio: float = 0.6) Line3d | None

Fit a 3D line segment to a set of 3D points using RANSAC.

Parameters:
  • points – 3D points as (3, N) array

  • ransac_th – RANSAC inlier threshold

  • min_inlier_ratio – Minimum inlier ratio for valid fit

Returns:

Line3d object, or None if fitting fails

limap.estimators.line3d.estimate_seg3d_from_depth(seg2d: ndarray, depth: ndarray, image: Image, ransac_th: float = 0.75, min_inlier_ratio: float = 0.6, var2d: float = 5.0) Line3d | None

Estimate 3D segment from 2D segment and depth map.

Parameters:
  • seg2d – 2D segment endpoints (x1, y1, x2, y2)

  • depth – Depth map (H, W)

  • image – pycolmap.Image with camera and pose

  • ransac_th – RANSAC threshold multiplier

  • min_inlier_ratio – Minimum inlier ratio for valid fit

  • var2d – 2D variance for uncertainty estimation

Returns:

Line3d object, or None if fitting fails

limap.estimators.line3d.estimate_seg3d_from_points3d(seg2d: ndarray, p3ds: ndarray, image: Image, ransac_th: float = 0.75, min_inlier_ratio: float = 0.6, var2d: float = 5.0) Line3d | None

Estimate 3D segment from 2D segment and point cloud.

Parameters:
  • seg2d – 2D segment endpoints (x1, y1, x2, y2)

  • p3ds – Point cloud in world coordinates (H, W, 3)

  • image – pycolmap.Image with camera and pose

  • ransac_th – RANSAC threshold multiplier

  • min_inlier_ratio – Minimum inlier ratio for valid fit

  • var2d – 2D variance for uncertainty estimation

Returns:

Line3d object, or None if fitting fails