信息:
因此,我计划使用PCL显示点云图像和深度图像,我可以从该相机模块获得x、y、z数据,而且,如果可以流的话。
但是,据我目前所知,PCL倾向于将所有点云数据存储为.pcd文件,然后读取它,从而输出点云图像和深度图像。
如果必须每次都在每个帧中执行savePCD()和readPCD(),那么以这种方式执行流显然太慢了。因此,我研究了"openni grabber“和"openni范围图像可视化”示例代码,并尝试执行它们,遗憾的是,“没有设备连接”。是我的全部。
在尝试之前,我有几个想法要征求意见:
发布于 2015-01-06 16:48:31
1)更改OpenNI抓取器以使用您自己的ToF摄像机将比在下面的循环中使用相机中的示例要多得多。
2)是的,PCL可以在不访问.pcd文件的情况下显示点云图像和深度。.pcd加载程序所做的是解析pcd文件并将值放置在云格式中。您可以直接从您的相机数据这样做,如下所示。
3)不知道你在这里的意思。我建议您尝试使用pcl可视化器或云查看器,如下所示。
你可以这样做:
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
cloud->isDense = true;
cloud->width = widthOfTOFsensor;
cloud->height = heightOfTOFsensor;
cloud->size = cloud->width * cloud->height;
//Create some loop
//grabNewFrame from TOFsensor
for(int pointIndex=0;pointIndex<cloud->size();pointIndex++)
{
cloud->points[pointIndex].x = tofSensorData[pointIndex].x; //Don't know the tofData format, so I just guessed something.
cloud->points[pointIndex].y = tofSensorData[pointIndex].y;
cloud->points[pointIndex].z = tofSensorData[pointIndex].z;
}
// Plot the data using pcl visualizer or cloud viewer, see:
https://stackoverflow.com/questions/27717668
复制相似问题