1 #ifndef __fovis_initial_homography_estimator_hpp__
2 #define __fovis_initial_homography_estimator_hpp__
16 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
23 void setTemplateImage(
const uint8_t * grayData,
int width,
int height,
int stride,
int downsampleFactor);
30 void setTestImage(
const uint8_t * grayData,
int width,
int height,
int stride,
int downsampleFactor);
37 Eigen::Matrix3f
track(
const Eigen::Matrix3f &init_H,
int nIters,
double *finalRMS);
40 int template_rows, template_cols;
41 Eigen::MatrixXf templateImage, testImage;
42 Eigen::MatrixXf warpedTestImage;
43 Eigen::MatrixXf errorIm;
44 Eigen::ArrayXf templateDxRow, templateDyRow;
45 Eigen::MatrixXf templatePoints;
46 Eigen::ArrayXf xx, yy;
53 static void computeGradient(
const Eigen::MatrixXf &image, Eigen::MatrixXf * dxp, Eigen::MatrixXf *dyp);
58 static double computeError(
const Eigen::MatrixXf &error);
63 Eigen::MatrixXf computeJacobian(
const Eigen::ArrayXf &dx,
const Eigen::ArrayXf &dy)
const;
68 Eigen::Matrix3f lieToH(
const Eigen::VectorXf &lie)
const;
73 Eigen::MatrixXf constructWarpedImage(
const Eigen::MatrixXf &srcImage,
const Eigen::MatrixXf &warpedPoints)
const;
78 static Eigen::ArrayXf flattenMatrix(Eigen::MatrixXf &m);
void setTestImage(const uint8_t *grayData, int width, int height, int stride, int downsampleFactor)
quick and dirty profiling tool.inspired by the matlab tic/toc command
Definition: camera_intrinsics.hpp:6
void setTemplateImage(const uint8_t *grayData, int width, int height, int stride, int downsampleFactor)
Estimates a rough 2D homography registering two images.
Definition: initial_homography_estimation.hpp:14
Eigen::Matrix3f track(const Eigen::Matrix3f &init_H, int nIters, double *finalRMS)