00001
00022 #ifndef _AUTOCTRLPOINTCREATOR_H
00023 #define _AUTOCTRLPOINTCREATOR_H
00024
00025 #include <string>
00026 #include <map>
00027
00028 #include <hugin_shared.h>
00029 #include "CPDetectorConfig.h"
00030 #include "PT/Panorama.h"
00031 #include "PT/PanoImage.h"
00032 #include "PT/PanoramaMemento.h"
00033 #include "panodata/ControlPoint.h"
00034 #include "panoinc_WX.h"
00035
00039 class ICPIMPEX AutoCtrlPointCreator
00040 {
00041 public:
00042
00045 AutoCtrlPointCreator() {};
00046
00049 virtual ~AutoCtrlPointCreator() {};
00050
00054 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00055 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00056 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00057 int nFeatures, wxWindow *parent=NULL);
00058 virtual void Cleanup(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00059 std::vector<wxString> &keyFiles, wxWindow *parent=NULL);
00060
00061 protected:
00062 HuginBase::CPVector readUpdatedControlPoints(const std::string & file,
00063 PT::Panorama & pano);
00064 HuginBase::CPVector readUpdatedControlPoints(const std::string & file,
00065 PT::Panorama & pano, const PT::UIntSet & imgs);
00066 };
00067
00069 class ICPIMPEX AutoPanoSift : public AutoCtrlPointCreator
00070 {
00071 public:
00072
00075 AutoPanoSift() {};
00076
00079 virtual ~AutoPanoSift() {} ;
00080
00081 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00082 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00083 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00084 int nFeatures, std::vector<wxString> &keyFiles, int & ret_value, wxWindow *parent=NULL);
00085 };
00086
00088 class ICPIMPEX AutoPanoKolor : public AutoCtrlPointCreator
00089 {
00090 public:
00091
00094 AutoPanoKolor() {};
00095
00098 virtual ~AutoPanoKolor() {} ;
00099
00100 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00101 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00102 };
00103
00105 class ICPIMPEX AutoPanoSiftStack : public AutoCtrlPointCreator
00106 {
00107 public:
00108
00111 AutoPanoSiftStack() {};
00112
00115 virtual ~AutoPanoSiftStack() {} ;
00116
00117 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00118 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00119 };
00120
00122 class ICPIMPEX AutoPanoSiftMultiRow : public AutoCtrlPointCreator
00123 {
00124 public:
00125
00128 AutoPanoSiftMultiRow() {};
00129
00132 virtual ~AutoPanoSiftMultiRow() {} ;
00133
00134 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00135 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00136 };
00137
00139 class ICPIMPEX AutoPanoSiftMultiRowStack : public AutoCtrlPointCreator
00140 {
00141 public:
00142
00145 AutoPanoSiftMultiRowStack() {};
00146
00149 virtual ~AutoPanoSiftMultiRowStack() {} ;
00150
00151 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00152 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00153 };
00154
00156 class ICPIMPEX AutoPanoSiftPreAlign : public AutoCtrlPointCreator
00157 {
00158 public:
00159
00162 AutoPanoSiftPreAlign() {};
00163
00166 virtual ~AutoPanoSiftPreAlign() {} ;
00167
00168 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00169 int nFeatures, int & ret_value, wxWindow *parent=NULL);
00170 virtual HuginBase::CPVector automatch(CPDetectorSetting &setting, PT::Panorama & pano, const PT::UIntSet & imgs,
00171 int nFeatures, std::vector<wxString> &keyFiles, int & ret_value, wxWindow *parent=NULL);
00172 };
00173
00174 #endif // _AUTOCTRLPOINTCREATOR_H