PCL学习笔记——所遇到的几个问题及解决办法。

时间:2024-03-29 17:06:55

本文记录了笔者在使用点云库PCL时,所遇到的几个问题及解决办法:

目录

PCL中点云数据格式之间的转化

使用VoxelGrid对pcl::PointXYZ类型的点云进行滤波

PCL中关于滤波模块的类

pcl::PointCloud::Ptr和pcl::PointCloud相互转换

体素中心点滤波

如何查找点云的x,y,z的极值(最大值和最小值)?(通过调用pcl::getMinMax3D函数)

std::vector的清空,Vector清空数据与释放内存(.clear与.swap的区别与使用)


PCL中点云数据格式之间的转化

参考网址:

http://www.cnblogs.com/li-yao7758258/p/6659451.html

使用VoxelGrid对pcl::PointXYZ类型的点云进行滤波

“你过滤的时候使用VoxelGrid<pcl::pointxyz>结构就可以了,无需再转换成sensor_msgs::pointcloud2格式。”

以上来源于网址:

http://www.pclcn.org/bbs/forum.php?mod=viewthread&tid=47

测试通过的代码:(20171013YC)

PCL学习笔记——所遇到的几个问题及解决办法。

PCL中关于滤波模块的类

参考网址:

http://blog.csdn.net/yaningli/article/details/77334625

pcl::PointCloud::Ptr和pcl::PointCloud相互转换

《PCL点云库学习&VS2010(X64)》Part 31 pcl::PointCloud::Ptr和pcl::PointCloud相互转换

1、在函数返回指针时,经常会出现不知道的错误,不用返回指针,直接得到PointXYZ,再将其转化为Ptr。

[html] view plain copy

  1. #include <pcl/io/pcd_io.h>  
  2. #include <pcl/point_types.h>  
  3. #include <pcl/point_cloud.h>  
  4.    
  5. pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPointer(new pcl::PointCloud<pcl::PointXYZ>);  
  6. pcl::PointCloud<pcl::PointXYZ> cloud;  
  7. cloud = *cloudPointer;  
  8. cloudPointer = cloud.makeShared();  

对应网址:

http://blog.csdn.net/sinat_24206709/article/details/70266190

体素中心点滤波

可参考以下网址,其中有体素中心点滤波的例子代码:

http://blog.csdn.net/sjt19910311/article/details/49329935

PCL学习笔记——所遇到的几个问题及解决办法。

(→用正态分布变换进行配准)

如何查找点云的x,y,z的极值(最大值和最小值)?(通过调用pcl::getMinMax3D函数)

#include <pcl/io/pcd_io.h>

#include <pcl/point_types.h>

#include <pcl/common/common.h>

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud;

cloud = pcl::PointCloud<pcl::PointXYZ>::Ptr (new pcl::PointCloud<pcl::PointXYZ>);

pcl::io::loadPCDFile<pcl::PointXYZ> ("your_pcd_file.pcd", *cloud);

pcl::PointXYZ minPt, maxPt;

pcl::getMinMax3D (*cloud, minPt, maxPt);

→来源于网址:https://segmentfault.com/a/1190000007125502

std::vector<int>的清空,Vector清空数据与释放内存(.clear与.swap的区别与使用)

参考网址:

http://blog.csdn.net/a272846945/article/details/51182144