1、获取点云数据

(1)点云定义

pointCloud = std::make_shared<pcl::PointCloud<pcl::PointXYZ>>();

(2)获取相机数据(camera.c和camera.h略)

frame = camera.getFrame();

(3)利用深度信息获取点云数据

void infer_base::getXYZPointCloud(const cv::Mat &cv_depth) {int width = camera.k4aCalibration.color_camera_calibration.resolution_width;int height = camera.k4aCalibration.color_camera_calibration.resolution_height;depthImage = k4a::image::create_from_buffer(K4A_IMAGE_FORMAT_DEPTH16, width, height,width * (int) sizeof(uint16_t), cv_depth.data,width * height * 2, nullptr, nullptr);xyzImage = camera.k4aTransformation.depth_image_to_point_cloud(depthImage, K4A_CALIBRATION_TYPE_COLOR);auto *xyzImageData = (signed short *) xyzImage.get_buffer();pointCloud->clear();pcl::PointXYZ point;for (int i = 0; i < width * height; i++) {if (xyzImageData[3 * i + 2] == 0) continue;point.x = xyzImageData[3 * i + 0];point.y = xyzImageData[3 * i + 1];point.z = xyzImageData[3 * i + 2];pointCloud->points.emplace_back(point);}
}
getXYZPointCloud(frame.depthImage);  

2、将点云数据保存为.ply文件

pcl::io::savePLYFile ("one.ply", *pointCloud);
pcl::PCLPointCloud2 clod;

3、将.ply文件转为.pcd文件

pcl::io::loadPLYFile("one.ply", clod);
pcl::io::savePCDFile("one.pcd", clod);

4、.ply或.pcd文件可视化

安装Cloudcompare软件:Flathub—An app store and build service for Linux

5、一些问题

(1)如果直接将点云数据保存为.pcd文件则会报错:

[pcl::PCDWriter::writeASCII] Number of points different than width * height!

利用其他博客所描述的方法增加如下代码:

pointCloud->width = 1;
pointCloud->height = pointCloud->points.size();

成功保存.pcd文件但是可视化之后发现不正常。

(2)读错.ply文件时会报错,大概是保存的ply文件格式有问题:

[pcl::PLYReader::read] problem parsing header!

(3)想做到实时显示pcl点云,利用如下代码:

pcl::visualization::CloudViewer viewer("Cloud Viewer");      //创建viewer对象
viewer.showCloud(cloud);

放进循环里会报segmentation fault的错误:段错误 (核心已转储)

PCL学习记录--点云数据的获取与可视化相关推荐

  1. 点云库PCL学习笔记 -- 点云滤波Filtering -- 3. StatisticalOutlierRemoval 统计滤波器

    点云库PCL学习笔记 -- 点云滤波Filtering -- 3.StatisticalOutlierRemoval 统计滤波器 StatisticalOutlierRemoval 统计滤波器相关简介 ...

  2. 利用PCL库从点云数据生成深度图像及关键点提取

    利用PCL库从点云数据生成生成深度图像及关键点提取 利用PCL库从点云数据生成深度图像及关键点提取 本想利用标准点云数据库分割成若干块,利用标准点云数据生成深度图像作为数据库用来验证算法,目前效果不是 ...

  3. MySQL学习记录 (三) ----- SQL数据定义语句(DDL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  4. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  5. 小样本学习记录————利用所有数据的元学习Few-shot Text Classification with Distributional Signatures

    小样本学习记录----利用所有数据的元学习Few-shot Text Classification with Distributional Signatures 在计算机视觉中,低水平的模式是可以跨学 ...

  6. PCL学习记录-Extra-1 pcl::PCLPointCloud2::Ptr和pcl::PointCloud<pcl::PointXYZ> 点云格式区别及相互转化

    转载至:https://www.cnblogs.com/li-yao7758258/p/6659451.html 一. 关于pcl::PCLPointCloud2::Ptr和pcl::PointClo ...

  7. Range_Image深度图-1 PCL学习记录-9 Range_Image深度图原理,以及如何通过点云生成深度图

    一.深度图简介 目前深度图像的获取方法有激光雷达深度成像法,计算机立体视觉成像,坐标测量机法,莫尔条纹法,结构光法等等,针对深度图像的研究重点主要集中在以下几个方面, 深度图像的分割技术 深度图像的边 ...

  8. RPLIDAR思岚雷达学习记录--4--雷达数据实时保存

    数据持续输出测试 第三节中最后虽然可以读取到雷达的角度和距离数据,但是每次后面读取的数据都会覆盖之前的数据,因此尝试使用动态的文件名,这样每次保存数据都会使用不同的文件名,数据就不会被覆盖.决定使用当 ...

  9. VQA任务学习记录1(附数据使用代码记录)

    0.前言 最近需要学习处理VQA任务特此记录,这个主要是对论文bottom-up and top-down()和bilinear attention network()中的代码部分的学习记录,目前也并 ...

最新文章

  1. 谋局科技创新:两院院士大会释放重要信号
  2. Skype for Business Server 2015-09-测试-基本功能(建议:看PDF!)
  3. [源码和文档分享]基于C++实现的运动会统分系统
  4. 读取剪贴板英语转换为国际莫斯码
  5. 前端学习(1879)vue之电商管理系统电商系统之通过axios拦截器添加token认证
  6. python 判断一个点(坐标)是否在一个多边形内利用射线法
  7. Spring项目包变文件夹
  8. XXX数据仓库分析模型设计文档
  9. 35 岁以下科技创新 35 人之一,这位博士解开美团 AI 的冰山一角!
  10. [机器学习]朴素贝叶斯原理和基于Spark 实例
  11. [转]Linq查询DataTable,DataRow
  12. 恩智浦智能车摄像头循迹部分
  13. 看程序员如何使用Python快速给视频添加字幕
  14. android gsm功能,Android手机-GSM网络与WCDMA网络选择的设置
  15. 二维码门禁(ssm做后台)
  16. 为什么说体验即设计?
  17. 软硬件学习记录5—— Verilog语言中的数据类型
  18. 触摸板把计算机从休眠状态唤醒,win10笔记本盒盖唤醒后触摸板失灵的处理方法...
  19. 最近五年中秋节后第一天涨幅前十个股在此 沪深三七开 更多规律你来找
  20. Ubuntu不能连接XShell、主机Ping不通虚拟机,但虚拟机能ping通主机

热门文章

  1. php跳转404_ThinkPHP设置404跳转页面
  2. Tornado IOLoop
  3. thinkphp3 获取ip 定位 地理位置 UTFWry.dat IP地址定位
  4. uniApp 适配问题 自定义头部导航栏/吸顶距离适配
  5. 转置矩阵的循环实现 C++实现
  6. 树脂塞孔php,树脂塞孔基本工艺作业流程浅析.doc
  7. 开发者,你了解手机有多少种传感器?
  8. 【2020-10-26】APP逆向之某某健康(2)
  9. 青岛,一座来了就想“哈”啤酒的城市
  10. sum数组函数运用c语言,sum函数的数组运算