pcl入门

环境搭建

参考博文 https://blog.csdn.net/weixin_53660567/article/details/119871890
我的环境的win11虚拟机VMware中安装ubuntu20.04系统,
这里就很大的感受到ubuntu的优点,如果在win10中安装pcl,估计是要一天来检查配置一些依赖和路径,但是在ubuntu下,只要一行代码。
原本还想在win10里面配置一番,但看到一堆依赖就头疼。

sudo apt install libpcl-dev

完成安装。

在测试时,我参考的是这篇博文。
https://blog.csdn.net/qq_41092406/article/details/117930972

一个绚烂的图形就此出现。
在Ubuntu中使用vscode编译pcl文件时会出现,无法包含头文件路径的错误,暂时不知道怎么改。所以还是在win下配置pcl环境。

vs2019 安装pcl1.12.1 win11 可用

if stream 使用

string中c_str()的用法

C26485 NO_ARRAY_TO_POINTER_DECAY
遇到bug,是与数组越界之类有关的,对于cloud_out这个指针类型的点云数据,可以看作是指针数组。即数组中每一个元素都是指针变量。
图示报错那一行是因为将数值赋给了指针,且当前的指针数组没有定义大小

点云数据的定义一些参考资料

resize的用法
定义1
定义2
不同类型之间点云的转换
点云复制

C++指针数组和数组指针

 PointCloud是PCL中的一个基类,pcl::PointCloud<pcl::PointXYZ>::Ptr是一个Boost共享指针PointCloud中的数据域  width(int),如果是无组织,无结构的点云数据,表示点云的个数;如果是有结构的点云数据,表示点云数据集一行的点数。height(int),如果是无结构的点云数据,height=1;如果是有结构的点云数据,height表示点云总行数。points(std::vector)存储了数据类型为PointT的一个动态数组。PointXYZ 是最常见的一个点数据类型,它只包含三维X,Y,Z坐标信息X:points[i].xsize_t 整型,保存一个整数,记录一个大小(size)points.size() 表示点云数据大小
 cloud_out->points.resize(cloud->size());//加上这一句之后就不报错了

主要问题是在于没有对点云数据的大小进行初始化,以至于指针在指向时会报错。
创建

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>int
main(int argc,char**argv)
{pcl::PointCloud<pcl::PointXYZ> cloud;
// 创建点云
cloud.width=5;
cloud.height=1;
cloud.is_dense=false;
cloud.points.resize(cloud.width*cloud.height);
for(size_t i=0;i<cloud.points.size();++i)
{cloud.points[i].x=1024*rand()/(RAND_MAX+1.0f);
cloud.points[i].y=1024*rand()/(RAND_MAX+1.0f);
cloud.points[i].z=1024*rand()/(RAND_MAX+1.0f);
}
pcl::io::savePCDFileASCII("test_pcd.pcd",cloud);
std::cerr<<"Saved "<<cloud.points.size()<<" data points to test_pcd.pcd."<<std::endl;
for(size_t i=0;i<cloud.points.size();++i)
std::cerr<<"    "<<cloud.points[i].x<<" "<<cloud.points[i].y<<" "<<cloud.points[i].z<<std::endl;
return(0);
}

读写

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>int
main(int argc,char** argv)
{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);if(pcl::io::loadPCDFile<pcl::PointXYZ>("test_pcd.pcd",*cloud)==-1)//*打开点云文件
{PCL_ERROR("Couldn't read file test_pcd.pcd\n");
return(-1);
}
std::cout<<"Loaded "
<<cloud->width*cloud->height
<<" data points from test_pcd.pcd with the following fields: "
<<std::endl;
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;return(0);
}

[日知录18]pcl点云相关推荐

  1. 第二届日知录企业存储峰会拉开帷幕

    伴随着IT技术的飞速发展,云计算.大数据.人工智能等新兴产业的方兴未艾,催生了一个新的行业,那就是各类技术社区.这些社区通常专注于某一个技术领域,办沙龙.搞培训.出版书籍,各具特色,已成为推动行业发展 ...

  2. 大数据日知录要点整理

    大数据日知录要点整理 第0 章 当谈论大数据时我们在谈什么 1  NOSQL选型:kv-cassandra.dynamo,列式存储-HBase,图存储-Neo4j 社交网络数据存储适合用图数据库,而实 ...

  3. 博主新书:《大数据日知录:架构与算法》目录

    <大数据日知录:架构与算法>目录 4目录编辑 第0 章 当谈论大数据时我们在谈什么................ 1 0.1 大数据是什么........................ ...

  4. 大数据日知录:架构与算法

    大数据丛书 大数据日知录:架构与算法(大数据领域专家力作,专注大数据架构和算法,全面梳理大数据相关技术) 张俊林 著   ISBN 978-7-121-24153-6 2014年9月出版 定价:69. ...

  5. 大数据丛书 大数据日知录:架构与算法

    大数据丛书 大数据日知录:架构与算法(大数据领域专家力作,专注大数据架构和算法,全面梳理大数据相关技术) 张俊林 著   ISBN 978-7-121-24153-6 2014年9月出版 定价:69. ...

  6. 融合创新引领,浪擎容灾备份受邀参加日知录企业存储峰会

    11月8日,由日知录社区举办的"展望2018,数据存储新篇章--第二届企业存储峰会"将在北京丽亭华苑酒店举行,浪擎作为中高端行业容灾备份领导者受邀参加,现场将分享数据变革趋势以及浪 ...

  7. 第二届日知录企业存储峰会落下帷幕

    初冬的北京,已经是寒风料峭,但IT行业里却是各种会议轮番登场,让人感觉热力不断,nutanix.vmware.RedHat-- 这些会议你方唱罢我登场,好不热闹. 11月8日,又一个近期非常吸引业内人 ...

  8. 《大数据日知录:架构与算法》前言

       <大数据日知录:架构与算法>前言 像移动互联网.O2O.可穿戴设备等概念一样,"大数据"从甫一提出到飓风般席卷并风靡全球,从最初的技术名词到形成渗透各行各业的社会 ...

  9. 大数据日知录_腾讯T4专家精心整理:java+大数据+机器学习+数据挖掘+算法大集结...

    前言 本篇文章总共八大部分组成,包括数据挖掘:概念.模型.方法和算法:大数据日知录:架构与算法:大数据算法:数据结构与算法经典问题解析:算法基础:打开算法之门:机器学习算法大集结:Java数据结构和算 ...

最新文章

  1. Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
  2. Oracle原理:表分区
  3. TempDB为什么要根据CPU数目来决定文件个数
  4. 搞定网页打印自动分页问题
  5. JavaScript算法(实例五)最大公约数和最小公倍数 / n的倍数之和 / 组合数
  6. Play Framework 的模板引擎
  7. [C] 从文件读取数据
  8. 流媒体协议(二):RTMP协议
  9. matlab插值拟合
  10. 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
  11. 计算机电子表格考点,计算机一级考试历年常见考点总结:Excel电子表格
  12. Win10将用户名修改为英文
  13. TextMesh pro插件的使用问题
  14. Android 亮度调节
  15. 我的世界java史莱姆生成条件_关于我的世界史莱姆的生成条件分析介绍
  16. 三相功率测量,两表法和三表法区别
  17. (七)JMockit 的MockUp+@Mock--基础篇
  18. oracle里面cat,Oracle 12c 中推荐使用 catcon.pl 执行SQL脚本
  19. mysql cbo rbo_oracle的RBO与CBO
  20. 树莓派Ubuntu22.04安装Geany1.36

热门文章

  1. idea解决程序包不存在报错
  2. fiddler4手机安装证书失败解决教程
  3. 智能问答客服系统的设计和开发(ssm(spring mvc+mybatis)+netty4)
  4. cncf_根据2019年CNCF调查,Kubernetes的采用率持续上升
  5. nohup、setsid、和disown(转自ubuntuer zone )
  6. 【总结】考试维护心得
  7. python可视化——词云
  8. Java基础之浅聊 CompletableFuture类
  9. 网页设计期末作业,基于HTML+CSS+JavaScript超酷超炫的汽车类企业网站(6页)
  10. 20100919_Dawning_JTable测试