Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __TRIFOCAL_TENSOR__
00025 #define __TRIFOCAL_TENSOR__
00026
00027 #include "Alvar.h"
00028 #include <cxcore.h>
00029 #include "Pose.h"
00030
00037 namespace alvar {
00038
00070 class ALVAR_EXPORT TrifocalTensor {
00071 private:
00072 double T[3][3][3];
00073 double projectAxis(const CvPoint2D64f &p0, const CvPoint2D64f &p1, int l);
00074
00075 public:
00076 TrifocalTensor();
00077
00084 TrifocalTensor(const Pose &P1, const Pose &P2);
00085
00093 TrifocalTensor(const Pose &P0, const Pose &P1, const Pose &P2);
00094
00095 ~TrifocalTensor();
00096
00107 void computeTensor(const Pose &P1, const Pose &P2);
00108
00115 void computeTensor(const Pose &P0, const Pose &P1, const Pose &P2);
00116
00128 void project(const CvPoint2D64f &p0, const CvPoint2D64f &p1, CvPoint2D64f &p2);
00129
00146 double projectError(const CvPoint2D64f &p0, const CvPoint2D64f &p1, const CvPoint2D64f &p2);
00147 };
00148
00149 }
00150
00151 #endif // __TRIFOCAL_TENSOR__