Go to the documentation of this file.00001
00002 #ifndef FMPlanarComputeNonLinear_h_
00003 #define FMPlanarComputeNonLinear_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <vgl/vgl_fwd.h>
00031 #include <mvl/FMatrixCompute.h>
00032
00033 class ImageMetric;
00034 class PairMatchSetCorner;
00035 class FMatrixPlanar;
00036
00037 class FMPlanarComputeNonLinear : public FMatrixCompute
00038 {
00039 protected:
00040
00041 double outlier_distance_squared_;
00042
00043 const ImageMetric* image_metric1_;
00044 const ImageMetric* image_metric2_;
00045
00046 public:
00047
00048
00049 FMPlanarComputeNonLinear(const ImageMetric*, const ImageMetric*,
00050 double outlier_threshold = 0);
00051
00052
00053
00054 bool compute_planar(vcl_vector<vgl_homg_point_2d<double> >& points1,
00055 vcl_vector<vgl_homg_point_2d<double> >& points2,
00056 FMatrixPlanar& F);
00057 bool compute_planar(PairMatchSetCorner& matches, FMatrixPlanar* F);
00058 bool compute_planar(vcl_vector<HomgPoint2D>& points1,
00059 vcl_vector<HomgPoint2D>& points2, FMatrixPlanar* F);
00060
00061
00062 bool compute(vcl_vector<vgl_homg_point_2d<double> >& points1,
00063 vcl_vector<vgl_homg_point_2d<double> >& points2, FMatrix& F);
00064 bool compute(PairMatchSetCorner& matches, FMatrix* F);
00065 bool compute(vcl_vector<HomgPoint2D>& points1,
00066 vcl_vector<HomgPoint2D>& points2, FMatrix* F);
00067 };
00068
00069 #endif // FMPlanarComputeNonLinear_h_