00001 /******************************************************************************* 00002 * CvFundamentalMat.h 00003 * 00004 * (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de> 00005 * Universitaet Koblenz-Landau 00006 *******************************************************************************/ 00007 00008 #ifndef CvFundamentalMat_H 00009 #define CvFundamentalMat_H 00010 00011 #include <vector> 00012 #include <list> 00013 #include <ros/ros.h> 00014 #include "../KeyPointExtraction/KeyPointMatch.h" 00015 #include "../KeyPointExtraction/KeyPoint.h" 00016 // #include "Workers/Math/Homography.h" 00017 #include <cv.h> 00018 00024 class CvFundamentalMat 00025 { 00026 public: 00027 00029 CvFundamentalMat( std::vector< KeyPoint >* keyPoints1, std::vector< KeyPoint >* keyPoints2, std::list< KeyPointMatch >& matches ); 00030 00032 ~CvFundamentalMat(); 00033 00034 bool computeFundamentalMat(); 00035 00037 std::list< KeyPointMatch > getMatches() { return m_Matches; } 00038 00039 void eliminateBadMatches(); 00040 00041 private: 00042 00043 std::vector< KeyPoint >* m_KeyPoints1; 00044 std::vector< KeyPoint >* m_KeyPoints2; 00045 00046 std::list< KeyPointMatch > m_Matches; 00047 00048 int m_Success; 00049 00050 int m_MaxReprojectionError; 00051 00052 CvMat m_FundMatCv; 00053 00054 CvMat m_Points1CvMat; 00055 CvMat m_Points2CvMat; 00056 }; 00057 00058 #endif