问题标签 [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.
3d - 基于对应分组的 PCL 3D 对象识别似乎不稳定
在过去的几周里,我一直在从事一个关于 3D 对象识别的项目。我对点云处理和 PCL 很陌生,所以我尝试了基于对应分组的对象识别教程(https://pcl.readthedocs.io/projects/tutorials/en/master/correspondence_grouping.html#correspondence-分组)。我使用体素网格作为关键点、SHOT 描述符和 Hough Voting 作为对应分组方法。我正在使用自己的点云,并且我已经使用这些参数已经有一段时间了。对于我的一些点云,结果非常好。我已经上传了使用的模型(Model.pcd)和两个场景(Scene1.pcd、Scene1.png 和 Scene2.pcd、Scene2.png)以及它们对应的视觉结果(Recognition1(_View2).png 和 Recognition2(_View2)。 png)在以下 zip 文件中:https ://www.mediafire.com/file/ice0d9qrjml6xik/3D-Object-Recognition.zip/file
模型和场景点云没有颜色,为了更好地可视化,它们显示在 png 文件中的多边形网格中。
模型
场景 2
这是场景 2 的结果(场景云为绿色,找到的模型为红色)。
场景 1
虽然场景 2 的结果非常好,但应用相同参数的场景 1 会变得更糟。我现在可以更改参数,以便为第二个场景获得更精确的结果。但与此同时,第一个例子的结果会变得更糟。所以我还没有找到可以对我的所有场景进行良好对象识别的参数。我必须单独更改每个场景的参数。除此之外,当我旋转模型或更改模型位置时,结果会有所不同。所以这个工具链对我来说似乎很不稳定。
您对如何提高对象识别有任何想法吗?只是我还没有找到合适的参数吗?我可以在我的工具链中添加一些东西或改变一些东西吗?PCL 中是否有其他算法可以提供更好的结果?我的点云不是很适合这项任务吗?
干杯:)
windows - 打印机功能不会出现在 Windows 7 的“高级”选项卡的“打印机属性”中
在此处输入图像描述 Acutally 打印功能以前在 PCL5 驱动程序上显示,但现在不显示。
c++ - 使用 OctreePointCloudCompression 解码时获取 PCL 标头
我正在使用一个简单的编码和解码应用程序来使用 TCP 将点云数据作为流发送。实际上,只需使用以下链接中的代码即可重现我的问题:
https://pcl.readthedocs.io/en/latest/compression.html
在编码之前,我检查输入:
在解码部分之后,我添加:
我没有对传入的点云使用 openNI,而是使用 Ouster tof635 激光雷达传感器并将这些点放入点云指针中以在回调中使用。我对这部分没有任何问题。
我在回调中得到了云的有效整数值,但解码后的输出时间始终为零。我的怀疑是解码只从流中复制实际的点云数据,根本不复制标头数据。
我的问题是:
“PCL 中是否已经存在一个函数,它提供了一种从编码流中获取头的方法(如果头被编码),或者我可能需要编写自己的反序列化算法来拉时间来自编码点云的标头的戳记?”
我编写的代码实际上并没有问题,但我更多的是寻找有关如何使用 PCL OctreePointCloudCompression 类的一些见解的答案。我在 OctreePointCloudCompression 文件中看到,有一个受保护的读写帧头类成员。这会让我相信这些应该捕获标题。是因为“cloudOut”是一个新的点云,只有点数据被复制到它吗?
c++ - 用 cuda 11.3 编译 pcl1.8 的奇怪错误
系统:cuda 11.3、gcc 7.5、boost 1.65.1、pcl 1.8.0
当我编译使用 PCL 库的代码时,它显示以下错误
我查了一下file_io.h
,发现相关代码是<pcl/io/boost.h>
。在这个文件中,header<boost/numeric/conversion/cast.hpp>
中包含了 numeria_cast 函数,显然这个 header 是没有的。这个错误与宏有关__CUDACC__
吗?我该如何解决这个问题?/usr/include/pcl-1.8/pcl/io/boost.h
是:
c++ - 如何从 PCL 中的 computeVoxelAdjacencyGraph() 获取 xyz 信息?
我正在使用下面的代码从八叉树制作图表,用于路径查找。
据我了解,adj_list.m_vertices包含指向我将需要的八叉树质心的 xyz 数据的指针,但我不知道如何获取 xyz 数据。
编码:
我是 C++ 新手,如果这是一个明显的答案,我很抱歉。
先感谢您!
c++ - 如何解决 PCL 链接错误?
编辑:更新的代码
我正在使用 PCL 库从点云生成网格。这是基于 PCL 文档中的贪心三角剖分教程的代码:
这是我用来构建它的 CMakeLists 文件:
这是终端中的 make 输出:
我发现人们遇到了一些与此类似的相关问题,并且我在没有任何帮助的情况下尝试了所有提供的解决方案。
我在 Arch linux 1.4 上构建这个,PCL 与 1.12.1
编辑:以下是输出make -j6 VERBOSE=1
point-cloud-library - PCL裁剪框的使用
我正在通过 pcl::CropBox (C++) 过滤云。正如 API 所建议的,有些方法采用最小和最大坐标,然后返回云的过滤索引。还有用于设置旋转、平移和变换的 API。
https://pointclouds.org/documentation/classpcl_1_1_crop_box_3_01pcl_1_1_p_c_l_point_cloud2_01_4.html
我尝试使用最小和最大坐标 API,当所有角度的框旋转为 0(即框与所有轴对齐)时,它工作正常。
但是当我将旋转与 setMin 和 setMax API 一起使用时,我在裁剪框过滤器中遇到了问题。当我们拥有的盒子被旋转时,我们如何使用其他 API。
以下是我掌握的信息:
- 盒子的质心值
- 以弧度和度为单位的框的旋转角度
- 长宽高
- 最小和最大坐标。
我没有找到 pcl 裁剪框的任何示例。
谁能建议我应该如何前进。
这是一些示例云
c++ - 为什么齐次矩阵逆的两种不同计算会给出两种不同的结果?
我正在处理一些浊点数据pcl
。我想用给定的齐次矩阵变换云,然后用该矩阵的逆矩阵将其变换回来。这是我所做的:
向前转变
变回
不幸的是,我在cloudback中得到了错误的结果。但是当我尝试以下代码来计算矩阵的逆时,它可以工作:
- 为什么它们是不同的结果,而前者似乎是错误的?
- 齐次矩阵的逆转换刚体不计算如下:
R_inv = R.转置;
t_inv = -1.0 * R_inv * t
其中 R an t 代表齐次矩阵的旋转和平移部分。
c++ - 共享内存中的 pcl::PointCloud
我正在寻找一种在两个进程之间共享 pcl::PointCloud 而不使用磁盘上的文件的方法。特别是,我对使用 boost 共享内存库来实现我的范围很感兴趣。
我刚刚为发件人尝试了以下说明:
以及接收器的以下内容:
发件人似乎可以工作,因为我能够从内存中可视化 PointCloud,但在客户端,对象已正确创建和填充,但是当我尝试访问应该包含点的点属性时出现分段错误云的。所有其他属性(如宽度、高度等)都填充了正确的值。
如何解决此问题并访问积分结构?还是有另一种方法来实现我的范围?