Package boofcv.alg.geo.f
Class EpipolarMinimizeGeometricError
java.lang.Object
boofcv.alg.geo.f.EpipolarMinimizeGeometricError
Given point correspondences x[1] and x[2] and a fundamental matrix F, compute the
correspondences x'[1] and x'[2] which minimize the geometric error
subject to x'[2] F' x'[1] = 0
Page 318 in: R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanprocess(DMatrixRMaj F21, double x1, double y1, double x2, double y2, Point2D_F64 p1, Point2D_F64 p2) Minimizes the geometric errorbooleansolvePolynomial(double f1, double f2, double a, Double b, double c, double d) Solves for the roots of an ugly polynomial defined in 12.7 in book [1] Coefficients found using Sage Matha,b,c,d,f1,f2,t = var('a,b,c,d,f1,f2,t') g = t*((a*t+b)^2 + f2^2*(c*t+d)^2)^2 - (a*d-b*c)*(1+f1^2*t^2)^2*(a*t+b)*(c*t+d) g.expand().collect(t)
-
Constructor Details
-
EpipolarMinimizeGeometricError
public EpipolarMinimizeGeometricError()
-
-
Method Details
-
process
public boolean process(DMatrixRMaj F21, double x1, double y1, double x2, double y2, Point2D_F64 p1, Point2D_F64 p2) Minimizes the geometric error- Parameters:
F21- (Input) Fundamental matrix x2 * F21 * x1 == 0x1- (Input) Point 1 x-coordinate. Pixelsy1- (Input) Point 1 y-coordinate. Pixelsx2- (Input) Point 2 x-coordinate. Pixelsy2- (Input) Point 2 y-coordinate. Pixelsp1- (Output) Point 1. Pixelsp2- (Output) Point 2. Pixels- Returns:
- true if a solution was found or false if it failed
-
solvePolynomial
Solves for the roots of an ugly polynomial defined in 12.7 in book [1] Coefficients found using Sage Matha,b,c,d,f1,f2,t = var('a,b,c,d,f1,f2,t') g = t*((a*t+b)^2 + f2^2*(c*t+d)^2)^2 - (a*d-b*c)*(1+f1^2*t^2)^2*(a*t+b)*(c*t+d) g.expand().collect(t)
-