问题标签 [pcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
218 浏览

c++ - 来自 PCL 点云的 2D 边界框

我有一个 3D PCL 点云(XYZ,或类型:), pcl::PointCloud<pcl::PointXYZ>它已经被分割并包含感兴趣的对象。

我想找到包含所有点的2D(X&Y,假设Z是垂直的)最小边界框,然后恢复该框的4个角坐标(X,Y)。盒子不必是轴对齐的

使用 PCL 执行此操作的最佳方法是什么?

0 投票
0 回答
104 浏览

camera - 从 PointCloud2 到 pcl

我有一个来自 RGBD 相机的 PointCloud2,我想将其转换为 PCL 以保存颜色。我正在考虑使用 pcl :: PointXYZRGB 但我遇到了麻烦。下一个为我保存黑白点云的代码是我的代码。你能帮助我吗?

0 投票
1 回答
169 浏览

cmake - pcl::io::loadPCD/PLY 在使用 nvcc/cuda 编译时出现分段错误

无论是使用共享指针还是 PointCloud 对象本身,当程序命中(在运行时)“loadPCDfile”行时,我都会收到分段错误错误!

这是当我单独使用 gcc 编译时没有错误。为什么?PS > 我不想使用包装器

Ubuntu 18.04 pcl 1.11 cuda 11 gcc 7.5 特征 3.7

而 cmake 是,

然后当制作可执行的 t.out 时,我有一个名为 map.pcd 的 pcd 文件,然后我就运行

./t.out map.pcd

并且发生分段错误

0 投票
1 回答
121 浏览

c++ - 需要支持使用 PCL、VTK、C++ 作为后端从鼠标进行 3d 立方体拖动和旋转

对于我当前在 C++ -STD=11 中的实现,我需要一个 3d 立方体,我正在使用可视化器上的 PCL 命令绘制它。

此外,我需要使用鼠标拖动和调整立方体大小等功能,其示例显示在 GIF 中。

使用鼠标 GIF 进行立方体拖动、旋转和调整大小

我目前使用的技术版本

  • C++:-std=11
  • PCL:1.9.0
  • VTK:8.1.2
  • 视窗 10

任何人都可以建议如何使用上述库实现此类功能。

0 投票
1 回答
103 浏览

pcl - 在多边形的正常空间内的 pcl 点云中查找点

如果我正确理解文档,则可以使用 pcl::ExtractPolygonalPrismData 在与定义的多边形垂直的空间内的云中找到点。

我不使用 pcl::isPointIn2DPolygon 因为我的多边形在 xz 平面上。所以我想沿着y轴测试。在此处输入图像描述 绿色:点云;红色:多边形顶点

测试代码:

不幸的是 inPrism->indices 是空的,但我希望左上角的点。(0.5,0.5)(1.5,0.5)(0.5,1.5)(1.5,1.5)

0 投票
1 回答
158 浏览

hololens - 使用 Hololens 2 将相机投影到空间地图上

我正在尝试将记录的图像(对颜色进行一些修改)投影到从 Hololens 2 设备门户的 3D 视图生成的空间图上。我用相应的 CameraToWorld 矩阵和 Projection Matrix 记录了图像

例如

)

当我将 CameraToWorld Matrix 应用到 PCL 纹理映射时,我发现图像被投影到对面并且倒置。因此,我添加了一个 180 度的 x 轴旋转。

我得到了以下结果,其中位置不在正确的位置

红色方块应该是显示器的正确位置

我有以下问题

  1. 为什么会有旋转偏移?将 CameraToWorld 矩阵应用于 PCL 纹理映射函数的正确方法是什么?

  2. 我没有使用投影矩阵,我在投影过程中是否遗漏了什么?

0 投票
0 回答
74 浏览

c++ - PCLVisualizer 无法正确显示点云

我正在使用 PCL 1.8.1、VS2017+Qt 5.9.9。我正在创建一个相对较大的项目。我正在使用 PCLVisualizer 来显示点云,它之前运行良好。将Libtorch链接到我的项目后,我发现我无法清除点云,例如代码:

返回值_r为真,但是点云无法移除,它仍在窗口上。此外,设置点大小和线大小也不起作用,例如代码:

无论我设置哪种尺寸,点和线仍然是它们的默认尺寸和宽度。在我将 Liborch 库链接到我的项目之前,这些函数运行良好。如何解决这些问题?

0 投票
1 回答
40 浏览

c++ - PCL::RegionGrowing 负指数

我有一个点云,我从中提取了一个地平面。现在我想应用一个在除地平面之外的所有点上生长的区域。我怎样才能有效地做到这一点?

0 投票
0 回答
24 浏览

c++ - 从另一个 PointCloud::Ptr 创建 PointCloud 或 PointCloud::Ptr 而不将其复制到另一个类

我只是想知道如何将我的 PointCloud::Ptr 引用到我的另一个 PointCloud::Ptr 而不将其复制到另一个类。

所以我有3节课:
typedef pcl::PointCloud<PointXYZ> PointCloud;

- main_program.hpp

- volume.hpp 有 VolumeServer 类

- cutCloud.hpp 有 CutCloud 类

这是真的吗?我打印了他们的地址,但他们的地址与 cloud_original_ 不同。

我想让cloud_volume_involume.hppcloud_process_incutCloud.hpp指的是cloud_original_inmain_program.hpp而不复制它,只是指地址,因为我正在使用一个巨大的 pointCloud (>4GB) 和一些类。如果我正在裁剪 Cloud(使用processCloudin cutCloud.hpp),它也会裁剪 the cloud_original_(并且还会更改 ,cloud_volume_因为它指的是cloud_original_)。

提前致谢!

0 投票
0 回答
39 浏览

3d - 如何从点云可视化 SHOT(方向直方图的签名)描述符?

我已经实现了一些 PCL 描述符,包括 PFH 和 FPFH。对于那些描述符很容易可视化,因为输出是直方图。但是,我尝试实现 SHOT 描述符,但输出不是直方图(因为其他描述符也像 RSD、3RSD ......)。你知道我怎么能直观地看到它吗?

非常感谢您提前