00001 // This is oxl/mvl/PMatrixComputeLinear.h 00002 #ifndef PMatrixComputeLinear_h_ 00003 #define PMatrixComputeLinear_h_ 00004 //: 00005 // \file 00006 // 00007 // PMatrixComputeLinear contains a linear method to calculate the P matrix 00008 // from at least six 3D-to-2D point correspondences. Precisely, given 00009 // 3D points $\vec X_i$ and their images $\vec u_i$, we compute $P$ such that 00010 // $P \vec X_i \sim \vec u_i$. 00011 // 00012 // \verbatim 00013 // Modifications 00014 // 22 Oct 2002 - Peter Vanroose - added vgl_homg_point_2d interface 00015 // \endverbatim 00016 00017 #include <mvl/PMatrixCompute.h> 00018 #include <mvl/HomgPoint2D.h> 00019 #include <mvl/HomgPoint3D.h> 00020 #include <vgl/vgl_homg_point_2d.h> 00021 #include <vgl/vgl_homg_point_3d.h> 00022 #include <vcl_stlfwd.h> 00023 class PMatrix; 00024 00025 class PMatrixComputeLinear : public PMatrixCompute 00026 { 00027 public: 00028 bool compute(vcl_vector<HomgPoint2D> const& points1, vcl_vector<HomgPoint3D> const& points2, PMatrix *P); 00029 bool compute(vcl_vector<vgl_homg_point_2d<double> > const& points1, 00030 vcl_vector<vgl_homg_point_3d<double> > const& points2, 00031 PMatrix *P); 00032 }; 00033 00034 #endif // PMatrixComputeLinear_h_