Package boofcv.alg.geo.pose
Class PRnPDirectLinearTransform
java.lang.Object
boofcv.alg.geo.pose.PRnPDirectLinearTransform
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 Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
boolean
boolean
process
(List<Point4D_F64> worldPts, List<Point2D_F64> observed, DMatrixRMaj solutionModel) Computes projective camera matrix.void
setNormalize3D
(boolean normalize3D)
-
Field Details
-
N1
-
solverNullspace
-
-
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 modifiedsolutionModel
- (Output) 3x4 camera matrix- Returns:
- true if succesfull
-
getMinimumPoints
public int getMinimumPoints() -
isNormalize3D
public boolean isNormalize3D() -
setNormalize3D
public void setNormalize3D(boolean normalize3D)
-