00001
00002
00003 #ifndef _OBJECT_TRACKER_HPP
00004 #define _OBJECT_TRACKER_HPP
00005
00006 #include "kernel/jafarException.hpp"
00007 #include "localizer/tsai3d.hpp"
00008 #include "jmath/jblas.hpp"
00009 #include "geom/Declarations.hpp"
00010 #include "camera/cameraPinhole.hpp"
00011
00012 namespace jafar {
00013
00014 namespace oracle {
00019 class ObjectTracker {
00020
00021
00022
00023
00024 private:
00025 localizer::Tsai3dLocalizer *m_localizer;
00026 public:
00027
00028 ObjectTracker(const double& _alphaU,
00029 const double& _alphaV,
00030 const double& _u0,
00031 const double& _v0);
00032
00033 ObjectTracker(const camera::CameraPinhole& cam);
00034
00035 void setPoints(const std::vector<geom::Point2D>& _points2D,
00036 const std::vector<geom::Point3D>& _points3D);
00037
00038 void setPoints(const std::map <int, geom::Point2D>& _twoDPoints,
00039 const std::map <int, geom::Point3D>& _threeDPoints);
00040
00041 void setPoints(const std::vector<jblas::vec2>& _points2D,
00042 const std::vector<jblas::vec3>& _points3D);
00043
00044 void setPoints(const std::map <int, jblas::vec2>& _twoDPoints,
00045 const std::map <int, jblas::vec3>& _threeDPoints);
00046
00047 jblas::mat44 locate();
00048
00049 };
00050
00051 }
00052
00053 }
00054
00055 #endif