18 #ifndef PIC_COMPUTER_VISION_NELDER_MEAD_OPT_FUNDAMENTAL_HPP 19 #define PIC_COMPUTER_VISION_NELDER_MEAD_OPT_FUNDAMENTAL_HPP 21 #include "../util/eigen_util.hpp" 22 #include "../util/std_util.hpp" 23 #include "../util/matrix_3_x_3.hpp" 24 #include "../util/nelder_mead_opt_base.hpp" 26 #ifndef PIC_DISABLE_EIGEN 27 #ifndef PIC_EIGEN_NOT_BUNDLED 28 #include "../externals/Eigen/Dense" 30 #include <Eigen/Dense> 36 #ifndef PIC_DISABLE_EIGEN 41 std::vector< Eigen::Vector2f >
m0,
m1;
50 std::vector< Eigen::Vector2f > &
m1,
65 Eigen::Vector3d F_p0 = F * p0;
67 double norm = F_p0[0] * F_p0[0] + F_p0[1] * F_p0[1];
84 float function(
float *x,
unsigned int n)
87 Eigen::Matrix3d F_t = Eigen::Transpose<Eigen::Matrix3d>(F);
90 for(
unsigned int i = 0; i <
m0.size(); i++) {
92 Eigen::Vector3d p0 = Eigen::Vector3d(
m0[i][0],
m0[i][1], 1.0);
93 Eigen::Vector3d p1 = Eigen::Vector3d(
m1[i][0],
m1[i][1], 1.0);
99 err += tmp_err * tmp_err;
103 err += tmp_err * tmp_err;
113 #endif // PIC_COMPUTER_VISION_NELDER_MEAD_OPT_FUNDAMENTAL_HPP std::vector< Eigen::Vector2f > m0
Definition: nelder_mead_opt_fundamental.hpp:41
Definition: nelder_mead_opt_fundamental.hpp:38
std::vector< Eigen::Vector2f > m1
Definition: nelder_mead_opt_fundamental.hpp:41
double FundamentalDistance(Eigen::Matrix3d &F, Eigen::Vector3d &p0, Eigen::Vector3d &p1)
Fundamental.
Definition: nelder_mead_opt_fundamental.hpp:63
The NelderMeadOptBase class.
Definition: nelder_mead_opt_base.hpp:31
void filterInliers(std::vector< T > &vec, std::vector< unsigned int > &inliers, std::vector< T > &vecOut)
filterInliers
Definition: std_util.hpp:32
NelderMeadOptFundamental(std::vector< Eigen::Vector2f > &m0, std::vector< Eigen::Vector2f > &m1, std::vector< unsigned int > inliers)
NelderMeadOptFundamental.
Definition: nelder_mead_opt_fundamental.hpp:49
Definition: bilateral_separation.hpp:25
PIC_INLINE Eigen::MatrixXd getMatrixdFromLinearArray(float *array, int rows, int cols)
getMatrixFromLinearArray
Definition: eigen_util.hpp:469