Interface P3PLineDistance

All Known Implementing Classes:
P3PFinsterwalder, P3PGrunert

public interface P3PLineDistance

A related problem to the full P3P problem is to estimate the distance between the camera center and each of the 3 points being viewed. Once those distances are known the full 3D rigid body transform can be computed.

More formally states the problem is: Three points (P1,P2,P3) in 3D space are observed in the image plane in normalized image coordinates (obs1,obs2,obs3). The distance in 3D space between pairs of points (P1,P3), (P1,P2), and (P2,P3) is known. Solve for the distance between the camera's origin and each of the three points.

  • Method Summary

    Modifier and Type
    Method
    Description
    Returns a set of solutions.
    boolean
    process(Point2D_F64 obs1, Point2D_F64 obs2, Point2D_F64 obs3, double length23, double length13, double length12)
    Solve for the distance between the camera's origin and each of the 3 points in 3D space.
  • Method Details

    • process

      boolean process(Point2D_F64 obs1, Point2D_F64 obs2, Point2D_F64 obs3, double length23, double length13, double length12)
      Solve for the distance between the camera's origin and each of the 3 points in 3D space.
      Parameters:
      obs1 - Observation of P1 in normalized image coordinates
      obs2 - Observation of P2 in normalized image coordinates
      obs3 - Observation of P3 in normalized image coordinates
      length23 - Distance between points P2 and P3
      length13 - Distance between points P1 and P3
      length12 - Distance between points P1 and P2
      Returns:
      true if successful or false if it failed to generate any solutions
    • getSolutions

      DogArray<PointDistance3> getSolutions()
      Returns a set of solutions. Each solution contains the distance to the respective point.
      Returns:
      List of solutions.