Improved accuracy for analytic undistortion
parent
a411b664a1
commit
66af0079ba
|
|
@ -110,7 +110,9 @@ Point2 Cal3Fisheye::calibrate(const Point2& uv, OptionalJacobian<2, 9> Dcal,
|
||||||
const double u = uv.x(), v = uv.y();
|
const double u = uv.x(), v = uv.y();
|
||||||
const double yd = (v - v0_) / fy_;
|
const double yd = (v - v0_) / fy_;
|
||||||
const double xd = (u - s_ * yd - u0_) / fx_;
|
const double xd = (u - s_ * yd - u0_) / fx_;
|
||||||
Point2 pi(xd, yd);
|
const double theta = sqrt(xd * xd + yd * yd);
|
||||||
|
const double scale = (theta > 0) ? tan(theta) / theta;
|
||||||
|
Point2 pi(scale * xd, scale * yd);
|
||||||
|
|
||||||
// Perform newtons method, break when solution converges past tol_,
|
// Perform newtons method, break when solution converges past tol_,
|
||||||
// throw exception if max iterations are reached
|
// throw exception if max iterations are reached
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue