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 "Workers/KeyPointExtraction/KeyPointMatch.h" 00014 #include "Workers/KeyPointExtraction/KeyPoint.h" 00015 #include "Workers/Math/Homography.h" 00016 00022 class CvHomography 00023 { 00024 public: 00025 00027 CvHomography( std::vector< KeyPoint >* keyPoints1, std::vector< KeyPoint >* keyPoints2, std::list< KeyPointMatch >& matches ); 00028 00030 ~CvHomography(); 00031 00032 bool computeHomography(); 00033 00034 void eliminateBadMatches(); 00035 00037 std::list< KeyPointMatch > getMatches() { return m_Matches; } 00038 00039 Homography getHomography() { return m_Homography; } 00040 00041 private: 00042 00043 Homography m_Homography; 00044 00045 std::vector< KeyPoint >* m_KeyPoints1; 00046 std::vector< KeyPoint >* m_KeyPoints2; 00047 00048 std::list< KeyPointMatch > m_Matches; 00049 00050 bool m_Success; 00051 00052 int m_MaxReprojectionError; 00053 }; 00054 00055 #endif