博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PCL库学习笔记(点云输入输出与拼接)
阅读量:4049 次
发布时间:2019-05-25

本文共 1968 字,大约阅读时间需要 6 分钟。

现在开始C++巩固加上数据结构刷题加PCL库系统学习开始交替进行。感觉东西越学越多,忘得也越来越多,戒骄戒躁,持之以恒。

本文主要介绍PCL库的点云读入,拼接和保存的用法:

两点说明:

1、 在定义点云变量时,如下代码中有两种方法:	一种是指针型的(pcl::PointCloud
::Ptr cloudPtr(new pcl::PointCloud
)) 一种是常规(pcl::PointCloud
cloud) 两种定义方法在使用的时候有如下的转换关系: cloudPtr = cloud.makeShared(); cloud = *cloudPtr; 但是在什么情况下,用哪一种定义方式更加合适,没有想到一个可实施的规范,欢迎大家补充;2、 在新建点云时有一个变量: cloud.is_dense = false; 相信很多人都写过,但是“is_dense”含义不一定明确。查询官网解释如下: True if no points are invalid (e.g., have NaN or Inf values in any of their floating point fields).
#include
#include
#include
template
void show(T &cloud){
for (size_t i = 0; i < cloud.points.size(); i++) {
std::cout << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl; } std::cout << std::endl;}int main(){
pcl::PointCloud
::Ptr cloud(new pcl::PointCloud
); pcl::PointCloud
cloud1; pcl::PointCloud
cloud2; pcl::PointCloud
cloud3; if(pcl::io::loadPCDFile
("C:\\Users\\13427\\Desktop\\test.pcd",*cloud)==-1){ PCL_ERROR("couldn't find file!"); return -1; } cloud1.height = 1; cloud1.width = 5; cloud1.resize(cloud1.height*cloud1.width); cloud1.is_dense = false; for (size_t i = 0; i < cloud1.points.size(); i++) { cloud1.points[i].x = rand() / (RAND_MAX + 1.0f); cloud1.points[i].y = rand() / (RAND_MAX + 1.0f); cloud1.points[i].z = rand() / (RAND_MAX + 1.0f); } std::cout << "cloud data: " << std::endl; show(*cloud); std::cout << "cloud1 data: " << std::endl; show(cloud1); //Merge two point clouds std::cout << "cloud + cloud1 data: " << std::endl; cloud2 = *cloud + cloud1; show(cloud2); pcl::io::savePCDFileASCII("C:\\Users\\13427\\Desktop\\test_concated.pcd", cloud2); //concated two point clouds character std::cout << "cloud + cloud1 data: " << std::endl; pcl::concatenateFields(*cloud, cloud1, cloud3); show(cloud3); pcl::io::savePCDFileASCII("C:\\Users\\13427\\Desktop\\test_concated2.pcd", cloud3);}

转载地址:http://cvyci.baihongyu.com/

你可能感兴趣的文章
Android中AsyncTask的简单用法
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
idea讲web项目部署到tomcat,热部署
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
微信小程序开发全线记录
查看>>
CCF 分蛋糕
查看>>