41 #ifndef VP_HOMOGRAPHY_H
42 #define VP_HOMOGRAPHY_H
47 #include <visp3/core/vpCameraParameters.h>
48 #include <visp3/core/vpHomogeneousMatrix.h>
49 #include <visp3/core/vpImagePoint.h>
50 #include <visp3/core/vpMatrix.h>
51 #include <visp3/core/vpPlane.h>
52 #include <visp3/core/vpPoint.h>
193 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
307 vpHomography inverse(
double sv_threshold = 1e-16,
unsigned int *rank =
nullptr)
const;
324 void load(std::ifstream &f);
419 void resize(
unsigned int nrows,
unsigned int ncols,
bool flagNullify =
true)
434 void save(std::ofstream &f)
const;
503 static void DLT(
const std::vector<double> &xb,
const std::vector<double> &yb,
const std::vector<double> &xa,
504 const std::vector<double> &ya,
vpHomography &aHb,
bool normalization =
true);
530 static void HLM(
const std::vector<double> &xb,
const std::vector<double> &yb,
const std::vector<double> &xa,
531 const std::vector<double> &ya,
bool isplanar,
vpHomography &aHb);
560 static bool ransac(
const std::vector<double> &xb,
const std::vector<double> &yb,
const std::vector<double> &xa,
561 const std::vector<double> &ya,
vpHomography &aHb, std::vector<bool> &inliers,
double &residual,
562 unsigned int nbInliersConsensus,
double threshold,
bool normalization =
true);
625 static void robust(
const std::vector<double> &xb,
const std::vector<double> &yb,
const std::vector<double> &xa,
626 const std::vector<double> &ya,
vpHomography &aHb, std::vector<bool> &inliers,
double &residual,
627 double weights_threshold = 0.4,
unsigned int niter = 4,
bool normalization =
true);
629 #ifndef DOXYGEN_SHOULD_SKIP_THIS
638 static void computeDisplacement(
const vpHomography &H,
double x,
double y, std::list<vpRotationMatrix> &vR,
639 std::list<vpTranslationVector> &vT, std::list<vpColVector> &vN);
649 static bool degenerateConfiguration(
const vpColVector &x,
unsigned int *ind);
650 static bool degenerateConfiguration(
const vpColVector &x,
unsigned int *ind,
double threshold_area);
651 static bool degenerateConfiguration(
const std::vector<double> &xb,
const std::vector<double> &yb,
652 const std::vector<double> &xa,
const std::vector<double> &ya);
653 static void hartleyNormalization(
unsigned int n,
const double *x,
const double *y,
double *xn,
double *yn,
double &xg,
654 double &yg,
double &coef);
655 static void hartleyNormalization(
const std::vector<double> &x,
const std::vector<double> &y, std::vector<double> &xn,
656 std::vector<double> &yn,
double &xg,
double &yg,
double &coef);
658 double xg2,
double yg2,
double coef2);
663 static const double m_sing_threshold;
664 static const double m_threshold_rotation;
665 static const double m_threshold_displacement;
704 static void initRansac(
unsigned int n,
double *xb,
double *yb,
double *xa,
double *ya,
vpColVector &x);
Implementation of a generic 2D array used as base class for matrices and vectors.
void insert(const vpArray2D< Type > &A, unsigned int r, unsigned int c)
static bool load(const std::string &filename, vpArray2D< Type > &A, bool binary=false, char *header=nullptr)
vpArray2D< Type > & operator=(Type x)
Set all the elements of the array to x.
static bool save(const std::string &filename, const vpArray2D< Type > &A, bool binary=false, const char *header="")
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
error that can be emitted by ViSP classes.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Implementation of an homography and operations on homographies.
void resize(unsigned int nrows, unsigned int ncols, bool flagNullify=true)
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Implementation of a matrix and operations on matrices.
This class defines the container for a plane geometrical structure.
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Implementation of a pose vector and operations on poses.
Implementation of a rotation matrix and operations on such kind of matrices.
Implementation of a rotation vector as axis-angle minimal representation.
Class that consider the case of a translation vector.
vpMatrix operator*(const double &x, const vpMatrix &A)