Go to the documentation of this file.00001 #ifndef _PEH_H_
00002 #define _PEH_H_
00003
00004 #include <frame_common/frame.h>
00005 #include <boost/shared_ptr.hpp>
00006 #include <posest/pe.h>
00007 #include <posest/howardMatcher.h>
00008 #include <cv.h>
00009 #include <cstdlib>
00010 #include <math.h>
00011
00012 namespace fc = frame_common;
00013 using namespace std;
00014 namespace pe
00015 {
00016 class PoseEstimatorH : public PoseEstimator
00017 {
00018 public:
00019 using PoseEstimator::estimate;
00020
00021 PoseEstimatorH(int NRansac, bool LMpolish, double mind,
00022 double maxidx, double maxidd, float matcherThreshold, int minMatchesCount, int descriptorSize) :
00023 PoseEstimator(NRansac, LMpolish, mind, maxidx, maxidd), minMatchesCount(minMatchesCount)
00024 {
00025 usedMethod = Stereo;
00026 howardMatcher = new HowardStereoMatcher(matcherThreshold, descriptorSize);
00027 };
00028 ~PoseEstimatorH() { };
00029
00030 virtual int estimate(const fc::Frame& frame1, const fc::Frame& frame2);
00031
00032 virtual int estimate(const fc::Frame& frame1, const fc::Frame& frame2,
00033 const std::vector<cv::DMatch> &matches);
00034
00035 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00036 private:
00037 cv::Ptr<HowardStereoMatcher> howardMatcher;
00038 int minMatchesCount;
00039 std::vector<int> filteredIndices;
00040 };
00041
00042 }
00043 #endif // _PEH_H_