Example #1
0
void init_ptos()
{

//   frame = cvQueryFrame( capture );//tomo 2 frames para evitar negros
//   mUpdater.Add(frame);
CvMat *rotation;
CvMat *trans;//,*trans2;
rotation=cvCreateMat(3,1,CV_32FC1);
trans=cvCreateMat(3,1,CV_32FC1);
//trans2=cvCreateMat(3,1,CV_32FC1);
/*//inicializacion de la posición de la camara con funciones de opencv
CvMat *image_points;
CvMat *object_points;
image_points=cvCreateMat(2,mMap.visible,CV_32FC1);
object_points=cvCreateMat(3,mMap.visible,CV_32FC1);
*/

for (int iobj = 0; iobj< 40 ;iobj++)
   for ( int jobj= 0; jobj<3;jobj++)
   {
     cout<<"a";
     mMap.add3D(40*jobj,10*iobj,0);
   }
/// PRIMERA FASE SIMULACIÓN DE LA CAMARA
int npto,npos;
npto=0;
npos=0;
for (float inc=0; inc <200; inc+=1){
   cvmSet(rotation,0,0,0.001);
   cvmSet(rotation,1,0,0);
   cvmSet(rotation,2,0,0);
   mDataCam.SetRotation(rotation);
   
   cvmSet(trans,0,0,40);
   cvmSet(trans,1,0,inc);
   cvmSet(trans,2,0,-200);
  
   mDataCam.SetTranslation(trans);
   
   mModelCam.ProjectPoints();
   npto=0;
   for   (list<CElempunto*>::iterator It=mMap.bbdd.begin();It != mMap.bbdd.end();It++)
   {
	//inserto la proyeccion como la vision de tal manera que simulo una camara
	ptox[npos][npto]=(int)(*It)->projx;
	ptoy[npos][npto]=(int)(*It)->projy;
	//cout<<"pto "<<ptox[npos][npto]<<" "<<ptoy[npos][npto]<<" "<<npos*256*256<<" "<<npto<<endl;
	npto++;	
   }
   npos++;
}

int primeros=0;
mMap.inited=0;
mMap.visible=0;
mMap.bbdd.clear();
mMap.ID=-1;
for (int iobj = 0; iobj< 4 ;iobj++)
   for ( int jobj= 0; jobj<3;jobj++)
   {
       if (primeros<10)
       {
            mMap.add3D(40*jobj,10*iobj,0);
        	primeros++;
       }
   }

   cvmSet(rotation,0,0,0.001);
   cvmSet(rotation,1,0,0);
   cvmSet(rotation,2,0,0);
   mDataCam.SetRotation(rotation);

   cvmSet(trans,0,0,40);
   cvmSet(trans,1,0,0);
   cvmSet(trans,2,0,-200);
   
   mDataCam.SetTranslation(trans);
   mKalman.initState();

}