当前位置: 首页>>代码示例>>C++>>正文


C++ Kinect::marquer_obstacles方法代码示例

本文整理汇总了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;
}
开发者ID:Aelius0,项目名称:roblind,代码行数:54,代码来源:Kinect.cpp


注:本文中的Kinect::marquer_obstacles方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。