点云库PCL学习教程问题集

复现程序时遇到问题:

问题一:namespace "PCL"没有成员getFilenameWithoutExtension

1、问题描述:

getFilenameWithoutExtension进行报错:namespace "PCL"没有成员getFilenameWithoutExtension

2、问题图片:

在这里插入图片描述

3、解决办法:

添加file_io的头文件:#include <pcl/common/file_io.h>
在这里插入图片描述

问题二:

E0304 没有与参数列表匹配的 重载函数 “pcl::visualization::PCLVisualizer::addPointCloud” 实例

E0289 没有与参数列表匹配的构造函数 “pcl::visualization::PointCloudColorHandlerCustom::PointCloudColorHandlerCustom [其中 PointT=pcl::PointWithRange]” 实例##

2、问题图片:

此问题来源于第七章可视化的第二个练习章节《怎样可视化深度图像》
在这里插入图片描述

3、问题分析:

给官方解释:
getFilenameWithoutPath()
std::string pcl::getFilenameWithoutPath ( const std::string & input )
Remove the path from the given string and return only the filename (the remaining string after the last ‘/’)
Parameters
input the input filename (with full path)
Returns
the resulting filename, stripped of the path
Definition at line 76 of file file_io.hpp.
是所以要更改range_image_ptr的格式

4、解决办法:

boost::shared_ptrpcl::RangeImage range_image_ptr(new pcl::RangeImage);

改为:

const std::shared_ptr<pcl::RangeImage> range_image_ptr(new pcl::RangeImage);

下相当于把range_image_ptr的类型进行一个更换

问题三:

E0312 不存在用户定义的从 “boost::shared_ptr” 到 “const std::shared_ptr<const pcl::PointRepresentation>” 的适当转换

C2664 “void pcl::Registration<PointSource,PointTarget,Scalar>::setPointRepresentation(const std::shared_ptr<const pcl::PointRepresentationpcl::PointNormal> &)”: 无法将参数 1 从“boost::shared_ptr”转换为“const std::shared_ptr<const pcl::PointRepresentationpcl::PointNormal> &”

1、问题描述(来源):

本问题来自第13章 点云配准的——13.3.2 如何逐步匹配多幅点云时,遇到了报错

2、问题图片展示:

在这里插入图片描述

3、问题分析:

官方文档解释:
setPointRepresentation()

void pcl::KdTree< PointT >::setPointRepresentation ( const PointRepresentationConstPtr & point_representation )

Provide a pointer to the point representation to use to convert points into k-D vectors.
Parameters
[in] point_representation the const boost shared pointer to a PointRepresentation

4、解决方案:

把原程序的

reg.setPointRepresentation(boost::make_shared<const MyPointRepresentation>(point_representation));

改为:

reg.setPointRepresentation(pcl::make_shared<const MyPointRepresentation>(point_representation));

在这里插入图片描述这里要感谢BoYang_Zz博主的解决方案
链接: PCL 报错修改 pairwise_incremental_registration.

问题四:C2039 “KdTree”: 不是 “pcl::search” 的成员

1、问题描述(来源):
本问题来自第15章中15.3.1基于多项式拟合的法线估计、估计平滑和数据重采样中
2、问题图片展示:
在这里插入图片描述

3、问题分析:
这种大量.h文件的确实,多半是缺少头文件所导致
4、解决方案:
在头文件处添加如下

#include<pcl/search/impl/kdtree.hpp>

问题四:由于找不到 qhull_rd.dll,无法继续执行代码。重新安装程序可能会解决此问题。

1、问题描述(来源):
本问题来自第15章中15.3.1基于多项式拟合的法线估计、估计平滑和数据重采样中,点击运行后,产生的报错
2、问题图片展示:
在这里插入图片描述
3、问题分析:
此问题为,PCL没有检测到.dll文件出现的报错,但是在我们安装的时候此文件是有的,只是放的路径可能需要修改。
4、解决方案:
在安装的PCL中搜索qhull_rd.dll
在这里插入图片描述右键,打开文件夹所在的位置,把qhull_rd.dll文件夹下复制,
在pcl-版本/bin目录下进行复制。
问题解决!

后续更新的模板

1、问题描述(来源):
2、问题图片展示:
3、问题分析:
4、解决方案:

  • 14
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCL学习教程是关于点云Point Cloud Library)的教程,该可以用于处理和分析来自传感器的三维点云数据。学习PCL的教程通常包括以下内容: 1. 安装PCL:首先,你需要安装PCL及其依赖项。具体的安装方法可以参考PCL官方网站上的文档。 2. 点云数据的读取和可视化:学习如何读取和可视化点云数据是PCL学习的第一步。使用PCL提供的函数和类,你可以读取来自传感器的点云数据,并将其可视化以便观察和分析。 3. 点云滤波:PCL提供了各种滤波器,用于去除点云中的噪声、采样和下采样,以及提取感兴趣的特征。 4. 特征提取:学习如何从点云中提取表面特征,例如平面、曲率、法线等。 5. 点云配准:点云配准是将多个点云对齐到一个共同的坐标系中的过程。PCL提供了各种配准算法,包括ICP(迭代最近点)和SAC-IA(随机一致性),用于实现点云的配准。 6. 点云分割:点云分割是将点云分成多个不同的部分或对象的过程。PCL提供了各种分割算法,例如基于颜色、法线、平面模型等的分割算法。 7. 点云配准和分割的应用:学习如何将点云配准和分割应用于实际问题,例如机器人导航、三维重建和目标检测等。 在学习PCL时,你可以通过阅读PCL官方文档、实践示例代码和参加相关培训课程等方式来深入了解和掌握PCL的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值