point-cloud-library相关内容

PCL 为所有函数实例化新的点类型

我在下面声明了一个新的点类型.但是,我需要它与所有可用的 PCL 功能一起使用.例如分割、体素网格等.在 PCL_INSTANTIATE 调用中包含所有实现标头是一种痛苦.无论如何都要对所有主要功能执行此操作吗?例如,为分割库中的所有函数编译我的点类型? #define PCL_NO_PRECOMPILE#include #include #include #include #include ..
发布时间:2021-06-18 19:51:47 C/C++开发

为什么 pcl::CropBox 的最小和最大向量是 4 维的?

pcl::CropBox 每个过滤器都以 Eigen::Vector4f 作为参数. 为什么是 4f 而不是 3f?什么是第四维? 解决方案 Vector4F 有什么用? Vector4f 对应于 齐次坐标.例如,(3, 4, 5, 1)和(6, 8, 10, 2)在齐次坐标系中是同一个点.在这种情况下,您可以将 (a, b, c, d) 归一化为 (a/d, b/d, c/d ..
发布时间:2021-06-18 19:51:44 其他开发

使用 C++ 读取 .las 1.3 版,并使用 pcl 库显示结果

我对点云世界还很陌生.此外,我对 C++ 的经验并不多.我需要读取 .las 文件并使用 pcl 库处理它们.这个是来自我的数据集的示例文件需要阅读.我关注了 这个 YouTube 视频.但是,由于我尝试阅读的文件是 1.3 版,我按照相应的规范文件来定义标题字段,我使用了“数据记录格式3",这是文件标题中提到的数据记录格式. 这是我对标题和数据记录格式的定义: #pragma once# ..
发布时间:2021-06-18 19:51:42 C/C++开发

从另一个标记的点云生成点云

我有一个带标签的点云数据(云),它的点包括“x"、“y"、“z"和“标签"信息,而标签可以是 1,2 或 3. pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 现在,我想根据标签将这个点云划分为 3 个独立的点云.例如,我想生成一个点云,它只包含标签为 1 (cloud1) 的那些点的 x、y、z 信息.我是这样做的: int ll=0;p ..
发布时间:2021-06-18 19:51:35 其他开发

PCD 样本数据

我正在寻找可以使用的示例点云场景,但除了包含几个文件的 PCL 文档之外,我找不到任何免费的示例 PCD 数据.我可以找到免费的 PCD 文件的任何来源?我主要从事地面和行人识别方面的工作. 解决方案 检查此页面上的社区数据存储库链接http://pointclouds.org/media/ ..
发布时间:2021-06-18 19:51:32 其他开发

.ply 格式到 .pcd 格式的转换

我有一个 .ply 格式模型并试图创建一个 .pcd 文件.在检查 .pcd 格式应该是什么样子并编写一些代码将其转换为 .pcd 格式后,我的结果是模型只有黑色,而不是像 .ply 格式模型那样多色. 在 .ply 格式中,每条点线 (x,y,z,r,g,b,a) 中有 7 个参数,而在 .pcd 中,它应该是 (x y z rgb).我不确定如何从 .ply 文件评估 rgb. 这 ..
发布时间:2021-06-18 19:51:30 Python

PCL:可视化点云

我正在尝试使用 PCL CloudViewer 可视化点云.问题是我对 C++ 很陌生,我发现了两个教程 首先 演示了 PointCloud 的创建和 第二 演示点云的可视化.但是,我无法将这两个教程结合起来. 这是我想出的: #include #include #include #include int main (int argc, char** argv){pcl::PointClo ..
发布时间:2021-06-18 19:51:27 C/C++开发

使用 OpenCV 将云数据转换为二维图像

我在 IDE VS2013 中使用 OpenCV2(3.0.0).我的要求是我们有一个 3D 点云数据(带有参数 XYZ),我可以将该 3D 点云转换为 2d 图像吗,我们可以使用 Opencv 将云数据转换为图像而不链接 PCL. 有可能吗??? 如果可能,任何人都可以通过 OpenCV 的示例代码建议我如何转换. 任何建议都会有所帮助提前致谢 解决方案 问题不是很清楚 ..

来自 Motion Visualizer 的结构

我正在研究 Motion 中的结构.我认为当涉及到运动的结构时,人们会遇到多视图几何这本书.这是一本非常好的书,但我在那本书中发现了一些令人困惑的数据.在下面的代码中,有一个名为 Populate point cloud 的函数,它有两个参数 pointcloud 和 pointcloud_RGB.我在pointcloud中有point3d类型值,但在那本书中我没有找到任何关于pointcloud ..
发布时间:2021-06-12 19:46:31 C/C++开发

当对象一个在另一个之上时,从单个 2D 图像或来自 RGBD 相机的点云中对已知 3D CAD 对象的实时 6D 姿态估计?

我正在从事一个研究项目,我需要在该项目中实时估计拾取和放置任务中物体的 6DOF 姿态.必须实时估计姿势,并且对象可以一个在另一个之上并且完全相同,因此我必须获得顶部对象的位置和方向.问题是对象是相同的(PPVC 块,在建筑领域),但好消息是它们的形状非常规则. 那么如何将 RGBD Camera 点云的单个 2D 图像中已知的 3D CAD 模型与顶部的对象进行比较,从而可以实时获得 6D ..
发布时间:2021-06-11 19:51:11 其他开发

使用PCL在两点云之间进行碰撞检测

给出两个点云,使得一个点云是静态的,而另一个是移动障碍.我们要在空间中移动移动点云障碍物,并记下它是否与该位置的静态点云相交.PCL中有可用的功能来自动执行此操作吗?还是我们必须编写自己的函数才能执行此操作? 解决方案 fcl (Flexible Collision Library)库可以执行快速碰撞检测. 以下是受支持的不同对象形状: 领域 盒子 圆锥体 气缸 网格 ..

无法使用cmake编译pcl示例

我刚刚安装了pcl,并希望在/pcl-pcl-1.7.1/examples文件夹中运行示例.每个不同的示例中都有CMakeLists.txt,因此我认为我只是做了一个cmake.在终端中,然后用make进行编译.在终端上完成此操作后,我得到了 CMakeLists.txt中的 CMake警告(dev):没有cmake_minimum_required命令存在.一行代码,例如 cmake ..
发布时间:2021-04-22 19:55:51 其他开发

C ++一起使用两个不兼容的库,有哪些选择?

我使用点云库(PCL)编写了一个程序.现在,我想使用一些cgal的算法.我已经设法隔离建立了一个cgal类(所有依赖项都在起作用,等等),但是当我尝试将两个项目结合在一起时,我得到了未解决的外部符号错误 那么,构建cgal项目并从PCL项目中访问(以某种方式)我有什么选择?我会将一个简单的向量传递给cgal项目,因此从理论上讲,任何专业库都无需相互交互.我曾尝试将其构建到静态和动态库中,但据 ..
发布时间:2021-04-21 20:12:29 C/C++开发

两点云的稳健配准

我需要找到两个3D点云之间的变换和旋转差异.为此,我正在看点云库,因为它似乎很理想. 在干净的测试数据上,我可以使用迭代最近点(ICP),但是得到的结果却很奇怪(尽管我可能实施不正确).我有 pcl :: estimateRigidTransformation 工作,而且看起来更好,尽管我认为处理嘈杂的数据会更糟. 我的问题是: 两朵云会很吵,尽管它们应该包含相同的点,但还是会有 ..
发布时间:2021-04-19 19:07:19 C/C++开发

点云库在VS 2019中不起作用,但在VS 2017中可以工作

我已经用vcpkg安装了点云库.这也是我第一次使用vcpkg,但经过一些重新安装后,我终于通过使用'.\ vcpkg install pcl:windows-x64'命令安装它来使pointcloud库工作.但是仅适用于Visual Studio 2017...我想将其包括在内的项目完全在VS2019中完成.它可以识别库并链接它们,但是会给boost库中的某些文件带来各种错误?我真的很想让该库与V ..
发布时间:2021-04-15 20:50:06 C/C++开发

点云的主轴方向错误

我正在尝试通过主成分分析来计算主轴.我有一个点云,并为此使用了点云库(pcl).此外,我尝试用标记可视化在rviz中计算出的主轴.这是我使用的代码片段: void computePrincipalAxis(const PointCloud& cloud,Eigen :: Vector4f&质心,Eigen :: Matrix3f& evecs,Eigen :: Vector3f& evals) ..
发布时间:2021-04-13 18:53:30 其他开发

pcl :: RANSAC分割,让所有飞机都在云中?

我有一个点云库功能,可以检测点云中最大的平面。这很好。现在,我想扩展此功能,以分割出云中的每个平面并将这些点复制到新的云中(例如,一个在房间地板上有球体的场景将使我回到地板和墙壁,但不是球体,因为它不是平面)。如何扩展下面的代码以获取所有飞机,而不仅仅是最大飞机? (运行时是这里的一个因素,所以我宁愿不要只是在循环中运行相同的代码,每次都剥离新的最大飞机) int main(int ..