问题标签 [point-cloud-library]

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 投票
1 回答
1897 浏览

windows-7 - 使用 CMakeLists 文件使用 QtCreator 编译 PCL 代码示例

我正在尝试使用CMakeLists.txt文件使用QtCreator编译PCL示例。FindPCL.cmake文件(从此处获取:最后一个附加文件)位于源文件的同一目录中。

我的CMakeLists.txt文件是:

我要编译的代码是这样的:

我还在我的CMakeLists.txtPCL_DIR中将var设置为指向 PCL 安装目录,如底部的 PCL 教程Using PCL in your own project中所述。

最后,我得到的错误是:

任何想法?提前致谢。

PS:在CMakeLists文件中,我指向CMake二进制文件CMAKE_MODULE_PATH的目录。那正确吗?

PS2:我正在使用 MingW 编译器。

PS3:SO 是 Windows 7 64 位。

0 投票
1 回答
957 浏览

qt - 我应该如何在 QT4 中使用带有 qmake 而没有 cmake 的 PCL

我刚开始使用点云库 (plc),但是在尝试将此库集成到 Windows 下的 QT4 项目中时遇到了很多问题(使用 MSV 2010 编译器)。

主要问题是将 PCL 与 qmake 和 QT4 一起使用。我对这种实现没有太多经验。

我的第一个目标是集成和运行 PCL 可视化器。谢谢你的帮助!帮助我的最好方法是向我展示一个可运行的 *.pro 文件,其中包含所有添加的 PCL 包括以及库。

0 投票
2 回答
2946 浏览

c++ - 提升与 Q_FOREACH (Qt) 和 moc 生成的 foreach 冲突?

我有一个使用 Qt 和点云库 (PCL) 等库在 Vs 2008 中编辑的程序。

PCL 有一个包含 boost 的 3rd 方库。

但是编译后出现了一些错误:

1>C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/sequenced_index.hpp(926) : 错误 C3083: 'Q_FOREACH': '::' 左边的符号必须是类型 1>C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/sequenced_index.hpp(926) : 错误 C2039: 'tag' : is not a member of 'boost' 1>C :\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/sequenced_index.hpp(926):错误 C2061:语法错误:标识符 'tag' 1>C:\Program Files\PCL 1.5.1\ 3rdParty\Boost\include\boost/multi_index/ordered_index.hpp(1399):错误 C3083:“Q_FOREACH”:“::”左侧的符号必须是类型 1>C:\Program Files\PCL 1.5。 1\3rdParty\Boost\include\boost/multi_index/ordered_index.hpp(1399):错误 C2039:“标签”:不是 'boost' 的成员 1>C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/ordered_index.hpp(1399):错误 C2061:语法错误:标识符 'tag' 1> C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/hashed_index.hpp(1254) : 错误 C3083: 'Q_FOREACH': '::' 左边的符号必须是一个类型1>C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/hashed_index.hpp(1254) : error C2039: 'tag' : is not a member of 'boost' 1>C:\ Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/hashed_index.hpp(1254):错误 C2061:语法错误:标识符 'tag' 1>C:\Program Files\PCL 1.5.1\3rdParty\ Boost\include\boost/multi_index/random_access_index.hpp(1012):错误 C3083:'Q_FOREACH':'::' 左侧的符号必须是类型 1>C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/random_access_index.hpp(1012):错误 C2039:'tag ' : 不是 'boost' 的成员 1>C:\Program Files\PCL 1.5.1\3rdParty\Boost\include\boost/multi_index/random_access_index.hpp(1012) : 错误 C2061: 语法错误: 标识符 'tag'

对于第一个问题,源文件中的错误位置是:

我认为这可能表明Q_FOREACH与 boost foreach 的冲突。

但是我不知道如何解决这个问题?

0 投票
2 回答
1503 浏览

qt4 - 我需要哪些 PCL 库来编译 QT4 项目

我正在寻找我必须在 QT4 项目中链接的 PCL 库。

0 投票
0 回答
1311 浏览

linux - 告诉 Cmake 在哪里可以找到我从源代码构建的库

我想在 Ubuntu 中从源代码构建PCl 1.7库,因此我从源代码下载并构建了它的一些依赖项:VTK 5.8Boost 1.51.0FLANN 1.7.1

我已将它们构建在自定义目录中。它们都存储在目录/home/c/pkg下。该目录中的结构是:

对于升压:

  • 提升-1.51.0
    • build:我告诉bjam工具使用这个目录进行安装。这是boost/bin.v2文件夹。
    • 包括:头文件。
    • lib:.a.so对象。

对于 VTK:

  • VTK-5.8.0
    • build:执行CMake的地方。
    • 包括:头文件。
    • lib:共享对象。

对于弗兰:

  • 法兰-1.7.1
    • build: CMake在这里执行。
    • 包括:头文件。
    • lib:共享对象。
    • 分享:文档。

OpenNIOpenSceneGraph等其他依赖项已从源代码构建并安装在系统范围内(到 /usr/...)目录。

我已经用一个小程序测试了安装,我可以编译并链接到它们。所以,一切正常:)

继续之前的注意事项:我使用 Synaptics 工具在系统范围内安装了这些库的以前版本,例如boost-1.4pcl-1.6 。我想保留它们,因为我只测试较新的版本。这就是我在该自定义位置构建库的原因。

问题是当我想编译PCL 1.7时,默认情况下,CMake只识别系统范围内安装的库。那么,我怎样才能告诉CMake使用我从源代码构建的较新的库呢?

谢谢你的时间!。

0 投票
1 回答
2560 浏览

c++ - 从 C++ 文件写入数据(点云库)

我正在使用点云库获取深度图,然后每秒左右将 PCD 文件写入内存,以便其他程序可以获取它。

我让程序使用可视化器正确渲染深度图,除了实际写入文件的一行外,它都可以正常工作。

这是我的代码:

这是我在尝试 cmake 文件时遇到的错误:

0 投票
2 回答
1161 浏览

computer-vision - PCLVisualizer 未保持打开状态

我有以下代码来估计和显示点云中点的法线向量:

但是,当我运行它时,PCLVisualizer 在屏幕上闪烁,然后程序终止。我不知道为什么它不留下来。如果我只使用 CloudViewer 来显示点云(而不是法线),那么它可以正常工作并保留在屏幕上。

0 投票
1 回答
2173 浏览

c++ - 如何判断点云所在的单位?

我正在使用从 Kinect 图像创建的点云文件数据集。有没有办法知道轴的单位是什么,即一个点(0.003, 0.004, 0.04)是米、厘米等?

我正在尝试使用setRadiusSearchpcl 中的方法从局部补丁估计表面法线,但这允许我们以米为单位指定半径,所以我需要知道点云的单位。

0 投票
2 回答
13881 浏览

c++ - 如何围绕轴旋转点云?

我有一个深度图像的点云,它是用相机在水平上方 30 度(在 z 轴上旋转 30 度)拍摄的。我想将所有点转换回它们的位置,就好像相机处于 0 度一样,我相信我可以使用以下旋转矩阵来做到这一点:

但是,当查看转换点云的 pcl 方法时,我发现了这一点:

但是为什么它是一个 4x4 矩阵而不是上面的 3x3 旋转矩阵呢?

0 投票
0 回答
378 浏览

point-cloud-library - C++ 程序无法在“应用程序无法正确启动 (0xc000000d)”的情况下运行

我在 Windows 7 中使用 Visual Studio 2010,我正在运行使用 pcl 头文件的正常分发代码。整个代码在 cpp 中。在调试时,我在新窗口中收到应用程序错误“应用程序无法正确启动 (0xc000000d)。单击确定关闭应用程序”。当我单击确定时,窗口关闭并且程序停止运行。在输出选项卡中,显示无法加载或找不到 pdb 文件。

按照步骤我创建了 Visual Studio 项目

  1. 下载了 pcl 主干版本,它只包含正常分布的头文件
  2. 使用 cmake,我创建了安装 pcl 的安装 Visual Studio 项目
  3. 创建 INSTALL 项目后,使用 Visual Studio 安装 pcl 头文件
  4. 再次使用 cmake,我创建了使用已安装 pcl 头文件的 Normal 分发项目

在运行正态分布项目时,我收到上述应用程序错误。我无法找到问题所在