检查下面代码是否存在错误void qipianpclPointCloudpclPointXYZRGBPtr cloud1 --------------------------------设置相关参数------------------------------ float Delta = 00030; 切片的厚度Delta float dPlatform = 001; 相邻切片之间的空隙 b
代码存在以下错误:
- 缺少头文件包含:
#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/io/ply_io.h>#include <pcl/visualization/pcl_visualizer.h>#include <boost/thread/thread.hpp>#include <boost/date_time/posix_time/posix_time.hpp>
slicing_cloud和by_slicing_cloud指针未初始化,需要在函数开始处添加以下代码:pcl::PointCloud<pcl::PointXYZRGB>::Ptr slicing_cloud(new pcl::PointCloud<pcl::PointXYZRGB>);pcl::PointCloud<pcl::PointXYZRGB>::Ptr by_slicing_cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
slicing_cloud和by_slicing_cloud指针没有使用pcl::copyPointCloud函数进行深拷贝,而是直接通过索引赋值,这可能导致内存访问错误。应将以下代码:pcl::copyPointCloud(*cloud1, idx, *slicing_cloud);for (size_t i = 0; i < idx11.size(); ++i)by_slicing_cloud->points[i].x = cloud1->points[idx11[i]].x;by_slicing_cloud->points[i].y = cloud1->points[idx11[i]].y;by_slicing_cloud->points[i].z = cloud1->points[idx11[i]].z;修改为:pcl::copyPointCloud(*cloud1, idx, *slicing_cloud);pcl::copyPointCloud(*cloud1, idx11, *by_slicing_cloud);
- 未在函数开头声明变量
all,需要添加以下代码:- `std::vector
all;
- `std::vector
原文地址: https://www.cveoy.top/t/topic/h4nZ 著作权归作者所有。请勿转载和采集!