00001
00002
00003 #ifndef _APPRENTICE_HPP
00004 #define _APPRENTICE_HPP
00005
00006 #include "kernel/jafarException.hpp"
00007 #include "objlocalizer/tsai3d.hpp"
00008 #include "objlocalizer/point2d3d.hpp"
00009 #include "jmath/jblas.hpp"
00010
00011 namespace jafar {
00012
00013 namespace learner {
00014
00022 class Oracle {
00023
00024
00025
00026 private:
00027 std::map<int, jblas::vec3> bundledPoints;
00028 std::map<unsigned int, jblas::vec2> detectedFeatures;
00029 objlocalizer::Points2d3d points;
00030 objlocalizer::Tsai3dLocalizer* localizer;
00031 jblas::mat m;
00032 double alphaU, alphaV, u0, v0;
00033 jblas::vec3 barycenter;
00034
00035 public:
00036
00037 Oracle(const double& _alphaU,
00038 const double& _alphaV,
00039 const double& _u0,
00040 const double& _v0,
00041 const std::map<int, jblas::vec3>& _bundledPoints,
00042 const std::map<unsigned int, jblas::vec2>& _detectedFeatures);
00043
00044 ~Oracle();
00045
00046 void locateObject();
00047
00048 jblas::vec3 getObjectBarycenter();
00049
00050 void findObjectBarycenter();
00051
00052 };
00053
00054 }
00055
00056 }
00057
00058 #endif