00001 /******************************************************************************* 00002 * CvHomography.h 00003 * 00004 * (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de> 00005 * Universitaet Koblenz-Landau 00006 *******************************************************************************/ 00007 00008 #ifndef CvHomography_H 00009 #define CvHomography_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 00023 class CvHomography 00024 { 00025 public: 00026 00028 CvHomography( std::vector< KeyPoint >* keyPoints1, std::vector< KeyPoint >* keyPoints2, std::list< KeyPointMatch >& matches ); 00029 00031 ~CvHomography(); 00032 00033 bool computeHomography(); 00034 00035 void eliminateBadMatches(); 00036 00038 std::list< KeyPointMatch > getMatches() { return m_Matches; } 00039 00040 Homography getHomography() { return m_Homography; } 00041 00042 private: 00043 00044 Homography m_Homography; 00045 00046 std::vector< KeyPoint >* m_KeyPoints1; 00047 std::vector< KeyPoint >* m_KeyPoints2; 00048 00049 std::list< KeyPointMatch > m_Matches; 00050 00051 bool m_Success; 00052 00053 int m_MaxReprojectionError; 00054 }; 00055 00056 #endif