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

标签 qt point-cloud-library

我正在尝试在 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 可能是可行的方法。

最佳答案

您可以简单地使用 PCL 的 PCLVisualizer ,对此进行了广泛的描述 here ,通过QVTKWidget 。这是我当前正在运行的设置。因此,您最终会按照以下(伪)代码执行某些操作:

在标题中:

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 查看器相同的功能。

关于qt - 在 Qt GUI 主窗口上嵌入 PCL 查看器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065984/

相关文章:

c++ - 在 Qt 中运行一个定时器 5 秒

c++ - 调用动态加载的库的非静态类成员函数

python - 从常规网格数据库创建波前 .obj 文件

c++ - Eigen log 和 exp 函数类型转换错误

c++ - Qt 多用户界面

c++ - 如何在插入点后不重新索引/移动项目的情况下将数据插入到有序的、随机可访问的列表中?

c++ - 追加到 QList<QFile*>

cmake - PCL 库的位置 PCLConfig.cmake 和 pcl-config.cmake 文件

android - 为 Android 构建 PCL

C++ 同时使用两个不兼容的库,有哪些选择?