Go to the documentation of this file.00001 #ifndef HMatrix2DCompute_h_
00002 #define HMatrix2DCompute_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 class HMatrix2D;
00020 class PairMatchSetCorner;
00021 #include <mvl/HomgPoint2D.h>
00022 #include <mvl/HomgLine2D.h>
00023 #include <vcl_vector.h>
00024
00025 class HMatrix2DCompute {
00026 public:
00027 HMatrix2DCompute() : verbose_(false) { }
00028 virtual ~HMatrix2DCompute() { }
00029
00030
00031 void verbose(bool v) { verbose_ = v; }
00032
00033
00034 virtual int minimum_number_of_correspondences() const = 0;
00035
00036
00037 typedef vcl_vector<HomgPoint2D> PointArray;
00038 typedef vcl_vector<HomgLine2D> LineArray;
00039
00040
00041
00042
00043
00044
00045
00046 bool compute(PointArray const&, PointArray const&, HMatrix2D *);
00047 bool compute(LineArray const&, LineArray const&, HMatrix2D *);
00048 bool compute(PointArray const&, PointArray const&, LineArray const&, LineArray const&, HMatrix2D *);
00049 bool compute(PairMatchSetCorner const &, HMatrix2D *);
00050
00051 HMatrix2D compute(PointArray const&, PointArray const&);
00052 HMatrix2D compute(LineArray const&, LineArray const&);
00053 HMatrix2D compute(PointArray const&, PointArray const&, LineArray const&, LineArray const&);
00054 HMatrix2D compute(PairMatchSetCorner const &);
00055
00056 protected:
00057 bool verbose_;
00058
00059 virtual bool compute_p (PointArray const&, PointArray const&, HMatrix2D *);
00060 virtual bool compute_l (LineArray const&, LineArray const&, HMatrix2D *);
00061 virtual bool compute_pl(PointArray const&, PointArray const&, LineArray const&, LineArray const&, HMatrix2D *);
00062 };
00063
00064 #endif // HMatrix2DCompute_h_