本文整理汇总了C++中Kinect::marquer_obstacles方法的典型用法代码示例。如果您正苦于以下问题:C++ Kinect::marquer_obstacles方法的具体用法?C++ Kinect::marquer_obstacles怎么用?C++ Kinect::marquer_obstacles使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Kinect
的用法示例。
在下文中一共展示了Kinect::marquer_obstacles方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: runKinect
//boucle de traitement de la kinect
void* Kinect::runKinect(void* k)
{
//setup
Kinect* kinect = static_cast<Kinect*>(k);
drawgrid = kinect->grille_;
Mat depthMat(480,640,CV_16UC1);
Freenect::Freenect freenect;
MyFreenectDevice& device = freenect.createDevice<MyFreenectDevice>(0);
device.startDepth();
//grille ¨virtuelle¨ plus petite pour A* au forum (pour accélérer la recherche de trajectoire).
char **sgrille = new char*[175];
for(int i=0;i<175;i++)
sgrille[i]=new char[175];
clock_t time;
while (!kinect->die_)
{
//si pas d´image disponible : attente de 10ms puis relancer la boucle.
if(!device.getDepth(depthMat))
{
delay(10);
continue;
}
pthread_mutex_lock(&mut);
depthMat.convertTo(depthf, CV_8UC1, 255.0/2048.0);
time = clock(); //debug : utilisé pour cronométrer les boucles
kinect->marquer_obstacles(depthMat);
// std::cout << "marquer" << (clock() - time) * 1000 / CLOCKS_PER_SEC << std::endl;
//executer AStar, division de grille par 2 pour aller plus vite
for(int x =0; x <175; x++)
for(int y =0; y <175; y++)
sgrille[x][y] = kinect->grille_->grille_[2 *x][2 * y] + kinect->grille_->grille_[2 *x + 1][2 * y] + kinect->grille_->grille_[2 *x][2 * y + 1] + kinect->grille_->grille_[2 *x+1][2 * y+1];
char *route = AStarStatic(240 / 2, 0, 240 / 2, TARGET / 2, sgrille, 175,175);
char lroute[ 2 * strlen(route)];
for(int x =0; x <strlen(route); x++)
{
lroute[2 * x] = route[x];
lroute[2 * x + 1] = route[x];
}
drawRouteOnMap(kinect->grille_->grille_, lroute, 240, 0);
if(strlen(route) != 0)
free(route);
// std::cout << (clock() - time) * 1000 / CLOCKS_PER_SEC << std::endl;
pthread_cond_signal(&cond);
pthread_mutex_unlock(&mut);
delay(40); //40ms sleep : laisse le temps pour dessiner la fenetre avant de reprendre le mutex
}
device.stopDepth();
delete(sgrille);
return 0;
}