1. remove a redundant constructor of PinholeCamera
2. remove a "backproject_from_camera" function from PinholeCamera, please use "backproject" directlyrelease/4.3a0
parent
615cfee44c
commit
9cb903fe08
|
@ -46,7 +46,7 @@ public:
|
||||||
/// evaluate the error
|
/// evaluate the error
|
||||||
virtual Vector evaluateError(const Pose3& pose, boost::optional<Matrix&> H =
|
virtual Vector evaluateError(const Pose3& pose, boost::optional<Matrix&> H =
|
||||||
boost::none) const {
|
boost::none) const {
|
||||||
SimpleCamera camera(*K_, pose);
|
SimpleCamera camera(pose, *K_);
|
||||||
Point2 reprojectionError(camera.project(P_, H) - p_);
|
Point2 reprojectionError(camera.project(P_, H) - p_);
|
||||||
return reprojectionError.vector();
|
return reprojectionError.vector();
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,9 +56,6 @@ namespace gtsam {
|
||||||
/** constructor with pose and calibration */
|
/** constructor with pose and calibration */
|
||||||
PinholeCamera(const Pose3& pose, const Calibration& K):pose_(pose),K_(K) {}
|
PinholeCamera(const Pose3& pose, const Calibration& K):pose_(pose),K_(K) {}
|
||||||
|
|
||||||
/** alternative constructor with pose and calibration */
|
|
||||||
PinholeCamera(const Calibration& K, const Pose3& pose):pose_(pose),K_(K) {}
|
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
/// @name Named Constructors
|
/// @name Named Constructors
|
||||||
/// @{
|
/// @{
|
||||||
|
@ -290,11 +287,6 @@ namespace gtsam {
|
||||||
return pose_.transform_from(pc);
|
return pose_.transform_from(pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// backproject a 2-dimensional point to a 3-dimensional point at given depth
|
|
||||||
inline Point3 backproject_from_camera(const Point2& p, double depth) const {
|
|
||||||
return backproject(p, depth);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate range to a landmark
|
* Calculate range to a landmark
|
||||||
* @param point 3D location of landmark
|
* @param point 3D location of landmark
|
||||||
|
|
|
@ -35,7 +35,7 @@ const Pose3 pose1(Matrix_(3,3,
|
||||||
),
|
),
|
||||||
Point3(0,0,0.5));
|
Point3(0,0,0.5));
|
||||||
|
|
||||||
const SimpleCamera camera(K, pose1);
|
const SimpleCamera camera(pose1, K);
|
||||||
|
|
||||||
const Point3 point1(-0.08,-0.08, 0.0);
|
const Point3 point1(-0.08,-0.08, 0.0);
|
||||||
const Point3 point2(-0.08, 0.08, 0.0);
|
const Point3 point2(-0.08, 0.08, 0.0);
|
||||||
|
@ -106,7 +106,7 @@ TEST( SimpleCamera, backproject2)
|
||||||
{
|
{
|
||||||
Point3 origin;
|
Point3 origin;
|
||||||
Rot3 rot(1., 0., 0., 0., 0., 1., 0., -1., 0.); // a camera looking down
|
Rot3 rot(1., 0., 0., 0., 0., 1., 0., -1., 0.); // a camera looking down
|
||||||
SimpleCamera camera(K, Pose3(rot, origin));
|
SimpleCamera camera(Pose3(rot, origin), K);
|
||||||
|
|
||||||
Point3 actual = camera.backproject(Point2(), 1.);
|
Point3 actual = camera.backproject(Point2(), 1.);
|
||||||
Point3 expected(0., 1., 0.);
|
Point3 expected(0., 1., 0.);
|
||||||
|
@ -119,7 +119,7 @@ TEST( SimpleCamera, backproject2)
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
Point2 project2(const Pose3& pose, const Point3& point) {
|
Point2 project2(const Pose3& pose, const Point3& point) {
|
||||||
return SimpleCamera(K,pose).project(point);
|
return SimpleCamera(pose,K).project(point);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST( SimpleCamera, Dproject_point_pose)
|
TEST( SimpleCamera, Dproject_point_pose)
|
||||||
|
|
|
@ -93,7 +93,7 @@ namespace gtsam {
|
||||||
Vector evaluateError(const Pose3& pose, const Point3& point,
|
Vector evaluateError(const Pose3& pose, const Point3& point,
|
||||||
boost::optional<Matrix&> H1 = boost::none, boost::optional<Matrix&> H2 = boost::none) const {
|
boost::optional<Matrix&> H1 = boost::none, boost::optional<Matrix&> H2 = boost::none) const {
|
||||||
try {
|
try {
|
||||||
PinholeCamera<CALIBRATION> camera(*K_, pose);
|
PinholeCamera<CALIBRATION> camera(pose, *K_);
|
||||||
Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
|
Point2 reprojectionError(camera.project(point, H1, H2) - measured_);
|
||||||
return reprojectionError.vector();
|
return reprojectionError.vector();
|
||||||
} catch( CheiralityException& e) {
|
} catch( CheiralityException& e) {
|
||||||
|
|
|
@ -524,9 +524,9 @@ TEST (testNonlinearEqualityConstraint, stereo_constrained ) {
|
||||||
0.0, 0.0, 1.0,
|
0.0, 0.0, 1.0,
|
||||||
0.0, -1.0, 0.0));
|
0.0, -1.0, 0.0));
|
||||||
Pose3 pose1(faceDownY, Point3()); // origin, left camera
|
Pose3 pose1(faceDownY, Point3()); // origin, left camera
|
||||||
SimpleCamera camera1(K, pose1);
|
SimpleCamera camera1(pose1, K);
|
||||||
Pose3 pose2(faceDownY, Point3(2.0, 0.0, 0.0)); // 2 units to the left
|
Pose3 pose2(faceDownY, Point3(2.0, 0.0, 0.0)); // 2 units to the left
|
||||||
SimpleCamera camera2(K, pose2);
|
SimpleCamera camera2(pose2, K);
|
||||||
Point3 landmark(1.0, 5.0, 0.0); //centered between the cameras, 5 units away
|
Point3 landmark(1.0, 5.0, 0.0); //centered between the cameras, 5 units away
|
||||||
|
|
||||||
// keys
|
// keys
|
||||||
|
|
Loading…
Reference in New Issue