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
-
Method Summary
Modifier and TypeMethodDescriptionboolean
process
(DMatrixRMaj F21, double x1, double y1, double x2, double y2, Point2D_F64 p1, Point2D_F64 p2) Minimizes the geometric errorboolean
solvePolynomial
(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)
-