29 #include "testing/testing.h"
33 using namespace libmv;
41 vector<Mat34> Ps(nviews);
42 for (
int j = 0; j < nviews; ++j) {
46 for (
int i = 0; i < npoints; ++i) {
49 for (
int j = 0; j < nviews; ++j) {
50 xs.col(j) =
d.x[j].col(i);
56 for (
int j = 0; j < nviews; ++j) {
57 Vec3 x_reprojected = Ps[j] *
X;
58 x_reprojected /= x_reprojected(2);
59 double error = (x_reprojected.head(2) - xs.col(j)).
norm();
60 EXPECT_NEAR(
error, 0.0, 1
e-9);
71 vector<Mat34> Ps(nviews);
72 for (
int j = 0; j < nviews; ++j) {
76 for (
int i = 0; i < npoints; ++i) {
79 for (
int j = 0; j < nviews; ++j) {
80 xs.col(j) =
d.x[j].col(i);
86 for (
int j = 0; j < nviews; ++j) {
87 Vec3 x_reprojected = Ps[j] *
X;
88 x_reprojected /= x_reprojected(2);
89 double error = (x_reprojected.head<2>() - xs.col(j)).
norm();
90 EXPECT_NEAR(
error, 0.0, 1
e-9);
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
SIMD_FORCE_INLINE btScalar norm() const
Return the norm (length) of the vector.
static void error(const char *str)
void NViewTriangulateAlgebraic(const Matrix< T, 2, Dynamic > &x, const vector< Matrix< T, 3, 4 >> &Ps, Matrix< T, 4, 1 > *X)
TEST(PolynomialCameraIntrinsics2, ApplyOnFocalCenter)
void NViewTriangulate(const Matrix< T, 2, Dynamic > &x, const vector< Matrix< T, 3, 4 >> &Ps, Matrix< T, 4, 1 > *X)
NViewDataSet NRealisticCamerasFull(int nviews, int npoints, const nViewDatasetConfigator config)
Eigen::Matrix< double, 2, Eigen::Dynamic > Mat2X