问题标签 [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 投票
0 回答
1399 浏览

qt4 - 如何使用 QVTK 从 Openni Kinect Grabber 可视化 3D 云

我正在使用 PCL 构建一个应用程序,用于从 Openni Grabber 查看注册的深度云,旁边是一个带有一些按钮的面板,用于一些附加功能。我发现 QVTK 可以帮助实现这个目的。我尝试了这个基本的实现。它工作正常。我使用这种方法来修改openni_viewer示例以在 Qt 窗口中进行可视化。但是我遇到了段错误。我真的很感激任何帮助。

0 投票
2 回答
7725 浏览

qt - 在 Qt GUI 主窗口中嵌入 PCL 查看器

我正在尝试在 Windows 7 64 位机器上使用 QtCreator 开发用户界面。该用户界面将部署在 32 位 Windows 7 机器上,并将控制用于结构光应用的投影仪和相机。由于我无法控制的原因(与相机和投影仪 API 的兼容性),我将为此使用 MS VS 2010 32 位编译器。在尝试了几个星期后,我需要一起工作(Qt 4.8.4、QtCreator 和点云库),我现在面临一个小问题。

有没有办法可以将 PCL 点云查看器嵌入到我的主 Qt GUI 窗口中?问题是当我使用 PCL 查看器时,它会打开一个单独的窗口。我希望这个窗口嵌入到我的主窗口中,并且我仍然希望能够与它进行交互(旋转、平移、缩放等)。

正如您从我的帖子中可以看出的那样,我是 Qt/PCL/等方面的新手,因此任何使用最少代码的示例都将不胜感激。我已经对此进行了数周的研究,但我无法找到解决方案,尽管我觉得 Qt Widget 可能是要走的路。

0 投票
1 回答
2042 浏览

point-cloud-library - PCL 点云库从抽象 PointT 转换为 PointXYZ pcl::PointCloud::ConstPtr 到 pcl::PointCloud

我的名为 cloud_cb 的回调函数采用 type 的参数pcl::PointCloud<PointType>::ConstPtr

但我无法弄清楚如何将数据转换为pcl::PointCloud<pcl::PointXYZ>.

0 投票
1 回答
841 浏览

oop - 在 PointT 和 PointXYZ 之间转换

我已经编译并运行了这个 https://github.com/otherlab/pcl/blob/master/apps/src/openni_ii_normal_estimation.cpp

但是,我现在希望能够访问有关法线和 x、y、z 点的基础原始信息。但是,我似乎无法从 CloudConstPtr(即 pcl::PointCloud::ConstPtr)中提取原始信息(例如 x、y、z 位置)。

我尝试转换为模板类型 PointXYZ 的新 PointCloud 对象,但这无效。有人可以演示如何提取 xyz 信息吗?这应该很容易。

0 投票
1 回答
2633 浏览

objective-c - 如何正确链接 PCL 库以在 Xcode 中编译的 Objective-C 应用程序中使用?

问题:如何在 Objective-C Cocoa(OSX,而​​不是 iOS)应用程序的上下文中使用 PCL?

把我的头发扯掉了。我无法让 libpcl 与我在 Xcode 中的 Objective C 项目正确链接。我已经检查并重新检查了我能想到的所有内容。可能会做一些愚蠢的事情,但我很难过。

实际错误是链接器:

  • 我正在尝试编译的代码是此处提供的标准教程代码:http: //pointclouds.org/documentation/tutorials/passthrough.php#passthrough

  • 我可以让它在没有 Xcode 的情况下工作(使用 Cmake 和命令行编译,与教程中的完全一样)

  • 我可以创建一个“命令行”项目并使用 Xcode 编译和链接一次性 CPP 文件

  • 无论我尝试过什么版本的 PCL,问题都是一样的。Macports、二进制发行版、自编译 1.6 和主干。结果都是一样的。

  • 我尝试了几台不同的机器,OSX 10.7 和 10.8,两者都存在同样的问题。

  • 我什至对 dylib 运行 nm 以验证丢失的符号是否在我正在链接的库中(在这种情况下为过滤器)

任何想法都非常感谢,我已经为此浪费了半周时间。

有关详细的错误消息,请参阅此屏幕截图

这是有问题的代码:

更新

这里还有一个线索。对于编译器/链接器以及它们的工作方式,我一头雾水,但现在我想我知道发生了什么,但不知道为什么(或如何解决它)。

  • 我手动运行了链接器工具,出于绝望,我开始插入过时的标志,只是为了看看结果是什么。上一个错误(上图)将丢失的符号标识为“”pcl::PassThrough::applyFilterIndices(std::__1::vector >&)”,但 ld -y 给了我这个:

    ld: warning: option -y is obsolete and being ignored Undefined symbols for architecture x86_64:"__ZN3pcl11PassThroughINS_8PointXYZEE18applyFilterIndicesERNSt3__16vectorIiNS3_9allocatorIiEEEE", referenced from:__ZN3pcl11PassThroughINS_8PointXYZEE11applyFilterERNSt3__16vectorIiNS3_9allocatorIiEEEE in PCLProcess.o ld: symbol(s) not found for architecture x86_64

所以然后我去寻找那个符号,果然,它不见了(或不同):

我怀疑名字篡改?但同样,我不确定我现在在说什么,或者(更重要的是)如何解决它。

0 投票
1 回答
1822 浏览

c++ - 编译点云库时的提升问题

我正在尝试从 OSX 10.6.8 上的源代码编译点云库,并且我一直在使用 Boost 库遇到相同的错误:

我查看了 CMake 选项,它们似乎都没有引用激活高级设置的 Boost 库,我发现我的 boost 库文件位于/usr/lib/;例如/usr/lib/libboost_date_time-mt.dylib

在此处输入图像描述

我能做些什么来解决这个问题?将来我能做些什么来帮助防止类似问题再次发生?


更新我已经从头开始重建和编译了 Boost,但仍然遇到同样的错误。这看起来很奇怪,因为 Boost 是从头开始编译的,而 PCL 也是。唯一需要注意的是在 CMake 输出中,我收到了这个奇怪的冲突消息:

0 投票
1 回答
4457 浏览

3d - 如何构建 PCL 项目

我整个早上都在尝试在 PCL 网站上运行显示的点云库示例之一(http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php#using-pcl-pcl-config )不能让它运行!

这就是我所做的:我已经在我的计算机上安装了用于 MSVS 2010(64 位)的 Point Cloud 库 PCL 1.6.0 All-In-One Installer,然后,安装了我发现需要的几个库(Boost 和 Eigen) . 之后,我添加了 MS Visual Studio 2010 中所需的所有依赖项和库(PLC、boost 和 eigen),但我仍然遇到这些烦人的错误:

(我也尝试过在 Windows 上使用 CMake gui,但它在生成项目时报告了很多错误)

1>PCL.obj:错误 LNK2019:无法解析的外部符号“void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)”(?print@console@pcl@@ YAXW4VERBOSITY_LEVEL@12@PBDZZ) 在函数 _main 中引用

1>PCL.obj : 错误 LNK2001: 无法解析的外部符号“public: virtual int __thiscall pcl::PCDReader::readHeader(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 &,class Eigen ::Matrix &,class Eigen::Quaternion &,int &,int &,unsigned int &,int)" (?readHeader@PCDReader@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V ?$allocator@D@2@@std@@AAUPointCloud2@sensor_msgs@@AAV?$Matrix@M$03$00$0A@$03$00@Eigen@@AAV?$Quaternion@M$0A@@8@AAH4AAIH@Z)

1>PCL.obj : 错误 LNK2001: 无法解析的外部符号“public: virtual int __thiscall pcl::PCDReader::read(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 &,class Eigen ::Matrix &,class Eigen::Quaternion &,int &,int)" (?read@PCDReader@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2 @@std@@AAUPointCloud2@sensor_msgs@@AAV?$Matrix@M$03$00$0A@$03$00@Eigen@@AAV?$Quaternion@M$0A@@8@AAHH@Z)

任何,任何帮助将不胜感激。这件事花了我这么多小时,让我发疯。

谢谢!!

0 投票
3 回答
26596 浏览

visual-studio-2010 - 使用 Visual Studio 设置点云库

我正在尝试将点云库与 Visual Studio 一起使用。我下载了一体化 64 位安装程序 Visual Studio 10 并安装了它们。但是现在我无法在 Visual Studio 2010 上运行它,我已经尝试了官方页面上的教程,但没有运气。

我想在我的解决方案的属性中添加包含和 lib 位置的 .lib 文件。

我以前用opencv做过这个,但是对于PCL我不知道我必须添加哪些文件和文件夹。

还有什么 .dll 文件我必须添加到系统变量的路径中。

Cmake 不起作用,我不想使用它。

0 投票
2 回答
1864 浏览

c++ - 在 rgb 图像中使用点云中的聚集索引

我正在处理从两个图像中获取的深度图(我从 opencv StereoBM 获取),现在我需要在其中找到集群我决定使用 pcl 区域增长分割http://www.pointclouds.org/documentation/tutorials/ region_growth_segmentation.php在阅读了这篇文章http://blog.martinperis.com/2012/01/3d-reconstruction-with-opencv-and-point.html后,我将 cv::Mat 转换为点云,现在我有集群索引这在这里起作用https://gist.github.com/Daiver/5586252 现在我想使用这些索引在来自 StereoBM (cv::Mat) 的深度图上显示集群

我正在尝试这个,但我对结果不满意

结果 一些集群 在此处输入图像描述 另一个集群 在此处输入图像描述

可视化云 在此处输入图像描述

我如何将集群投影到 cv::Mat?PS对不起我的写作错误。非我母语的英语

UPD 我尝试通过使用循环(如 mat_to_cloud 函数中的循环)来“恢复”深度图

在此处输入图像描述

另一个循环顺序 int counter = 0; cv::Mat to_show = cv::Mat::zeros(288, 384, cv::DataType::type); for(int j = 0; j < cloud->width; j++) { for(int i = 0; i < cloud->height; i++) { to_show.at(i, j) = cloud->at(counter) .z; 计数器++;} }

在此处输入图像描述

我不知道为什么这些图像很相似

0 投票
0 回答
218 浏览

qt - 未找到 PCL 过滤器

我正在使用 Qt,我目前的项目包括 OpenCV 和 OpenNI

我已经用 apt-get 安装了 PCL 并更改了我的 CmakeLists.txt 但 Cmake 只找到 pcl/commons 和 pcl/io

我想使用过滤器或注册等其他功能。我应该怎么办?