PCL库学习(11)_点云数据流处理pcd

在一些情况下,我们想要验证算法对一系列pcd数据的鲁棒性,你可以选择一帧一帧加载PCD文件,但相对比较麻烦,因此以下程序展示了如何进行点云数据流的处理。

pcl::visualization::PCLVisualizer::Ptr viewer (new pcl::visualization::PCLVisualizer ("3D Viewer"));
ProcessPointClouds<pcl::PointXYZI>* pointProcessorI = new ProcessPointClouds<pcl::PointXYZI>();
std::vector<boost::filesystem::path> stream = pointProcessorI->streamPcd("../pcd");
auto streamIterator = stream.begin();                                         //pcd为存放一系列点云的文件
pcl::PointCloud<pcl::PointXYZI>::Ptr inputCloudI;

while (!viewer->wasStopped ())
{

    inputCloudI = pointProcessorI->loadPcd((*streamIterator).string());
	//算法处理
    streamIterator++;
    if(streamIterator == stream.end())
         streamIterator = stream.begin();
    viewer->spinOnce ();
}

上面用到的streamPcd定义如下:

template<typename PointT>
std::vector<boost::filesystem::path> ProcessPointClouds<PointT>::streamPcd(std::string dataPath)
{
    std::vector<boost::filesystem::path> paths(boost::filesystem::directory_iterator{dataPath}, boost::filesystem::directory_iterator{});
    sort(paths.begin(), paths.end());

    return paths;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值