5

我正在尝试在 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 可能是要走的路。

4

2 回答 2

6

您可以通过QVTKWidget简单地使用 PCL 的PCLVisualizer ,这在此处进行了广泛描述。这是我目前正在运行的设置。所以你最终会按照以下(伪)代码的行做一些事情:

在您的标题中:

class PointCloudWidget : public QVTKWidget
{
    //Whatever comes before (constructor, methods, etc.)

private:

    pcl::visualization::PCLVisualizer m_visualizer;
};

在你的 cpp 中:

PointCloudWidget::PointCloudWidget(QWidget *parent) : QVTKWidget(parent)
{
    this->SetRenderWindow(m_visualizer.getRenderWindow());
}

然后,您可以使用可视化工具来实现与 PCL 查看器相同的功能。

于 2013-04-17T21:08:33.847 回答
0

看看我放在这里的那种最小代码(PCL Viewer with Qt GUI minimum code)。有一些冗余,但我认为代码非常简单。

主要思想是将文件放在一个文件夹中,然后从 CMakeLists.txt(Qt cmake 向导)启动项目。

build在项目目录中使用目录。(这很重要,因为在pclwindow.cpp我硬编码了生成文件的路径#include "build/ui_pclwindow.h"

如果应用程序构建,但崩溃,您可能需要添加一些依赖项(例如 Win 平台上的 dll 文件)

我希望它能给你快速简单的开始!

于 2014-04-05T07:38:41.167 回答