Class PRnPDirectLinearTransform

java.lang.Object
boofcv.alg.geo.pose.PRnPDirectLinearTransform

public class PRnPDirectLinearTransform
extends Object
Estimates a projective camera given N points, i.e. Projective N Point (PRnP). This is the projective equivalent of the perspective N Point (PnP) problem. Each point consists of a 2D pixel observations and 3D homogenous coordinate. Pixels are normalized to have zero means and standard deviation of 1. 3D points are scaled to have a f-norm of 1. See [1] for details. Each point provides 2 linearly independent equations, requiring a minimum of 6 points. More points are allowed.

WARNING: Planar surfaces are critical and it will fail on those.

[1] Peter Abeles, "Scene Reconstruction Notes: BoofCV Technical Report" 2019

  • Field Details

  • Constructor Details

    • PRnPDirectLinearTransform

      public PRnPDirectLinearTransform()
  • Method Details

    • process

      public boolean process​(List<Point4D_F64> worldPts, List<Point2D_F64> observed, DMatrixRMaj solutionModel)
      Computes projective camera matrix.
      Parameters:
      worldPts - points in homogenous 3D coordinates in world frame. Might be modified.
      observed - pixel coordinates of points. not modified
      solutionModel - (Output) 3x4 camera matrix
      Returns:
      true if succesfull
    • getMinimumPoints

      public int getMinimumPoints()
    • isNormalize3D

      public boolean isNormalize3D()
    • setNormalize3D

      public void setNormalize3D​(boolean normalize3D)