bool ExpectFundamentalProperties(const TMat &F, const Mat &ptsA, const Mat &ptsB, double precision) { bool bOk = true; bOk &= F.determinant() < precision; assert(ptsA.cols() == ptsB.cols()); Mat hptsA, hptsB; EuclideanToHomogeneous(ptsA, &hptsA); EuclideanToHomogeneous(ptsB, &hptsB); for (int i = 0; i < ptsA.cols(); ++i) { double residual = hptsB.col(i).dot(F * hptsA.col(i)); bOk &= residual < precision; } return bOk; }