在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

这篇具有很好参考价值的文章主要介绍了在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、首先在Qt Designer创建UI后,拖一个Widget窗口出来

在Qt创建的UI中放一个显示点云的窗口(PCL+QT5),PCL+Qt,qt,ui,开发语言,c++

2、在对象查看器中右击该Widget,选择提升窗口部件,如下操作:

在Qt创建的UI中放一个显示点云的窗口(PCL+QT5),PCL+Qt,qt,ui,开发语言,c++

3、把UI转出来放在VS项目中,其中你的UI代码头文件会自带QVTKOpenGLNativeWidget.h,当然你的VS属性环境得配置好VTK的环境,QVTKOpenGLNativeWidget.h在VTK\include\vtk-9.1路径下;详细操作参考其它博客;

4、在项目的.h头文件中增加:

//vtk窗口的
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <pcl/visualization/pcl_visualizer.h>

//pcl加载点云的
#include <pcl/io/pcd_io.h>
private:
    pcl::visualization::PCLVisualizer::Ptr viewer;    //初始化一个viewer

5、防止VTK窗口出现警告,在项目的.CPP文件中加上:

vtkObject::GlobalWarningDisplayOff();    //不显示警告弹窗

此处可能用不上,如果弹了警告窗再加上;

6、在项目的.CPP文件中加上如下内容,初始化QVTKOpenGLNatiaveWidget那个窗口,窗口的名字是自定义的,我这里叫做widget_opengl。

auto renderer = vtkSmartPointer<vtkRenderer>::New();
auto renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
renderWindow->AddRenderer(renderer);
viewer.reset(new pcl::visualization::PCLVisualizer(renderer,renderWindow,"viewer",false));
ui->widget_opengl->setRenderWindow(viewer->getRenderWindow());    //此处widget_opengl是我这个窗口的名称,自定义的
viewer->setopInteractor(ui->widget_opengl->interactor(),ui->widget_opengl->renderWindow());

本文代码因某些原因,全部手敲的...如果出现打错的地方请指出。

7、显示点云

//初始化一个点云
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

//加载点云文件
if(pcl::io::loadPCDFile("cloud.pcd",*cloud)==-1)
{
    //此处cloud.pcd是你的点云文件
}

//刷新显示窗口
ui->widget_opengl->repaint();
//添加点云
viewer->addPointCloud(cloud,"cloud");
//刷新
ui->widget_opengl->update();
//视角
viewer->resetCamera();

8、实现效果:

在Qt创建的UI中放一个显示点云的窗口(PCL+QT5),PCL+Qt,qt,ui,开发语言,c++

--tip:由于代码都是在csdn网页手敲的,可能会有打错的,发现问题麻烦留言提醒一下我谢谢!文章来源地址https://www.toymoban.com/news/detail-719629.html

到了这里,关于在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • qt怎么一个程序显示两个窗口

    首先我们要把.ui文件的QMainWindow改成QDialog(用记事本)  然后把.ui对应的头文件和.cpp 出现QMainWindow改成QDialog 如图重点其包含头文件定义也记得修改    然后非模态显示,才不堵塞主窗口

    2024年02月12日
    浏览(24)
  • 如何使用Qt创建一个新窗口?

    如何使用Qt创建一个新窗口? 在Qt中,我们可以使用QML语言轻松创建图形界面。如果需要创建一个新的窗口,我们可以使用Qt.createComponent来创建一个新组件并将其添加到主窗口中。下面是一个简单的例子。 在这个例子中,我们创建了一个主窗口,并在其中添加了一个按钮。当

    2024年02月11日
    浏览(43)
  • 《QT+PCL 第五章》点云特征-PFH

    2024年02月11日
    浏览(33)
  • PCL 使用点云创建数字高程模型DEM

       数字高程模型(Digital Elevation Model),简称DEM,是通过有限的地形高程数据实现对地面地形的数字化模拟(即地形表面形态的数字化表达),它是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型(Digital Terrain Model,简称DTM)的一个分支,其它各种

    2024年02月13日
    浏览(30)
  • PCL点云处理之VFH特征计算与直方图显示(七十一)

    视点特征直方图VFH(Viewpoint Feature Histogram)描述子,它是一种新的特征表示形式,应用在点云聚类识别和六自由度位姿估计问题。视点特征直方图(或VFH)是源于FPFH描述子.由于它的获取速度和识别力,我们决定利用FPFH强大的识别力,但是为了使构造的特征保持缩放不变性的性

    2024年02月13日
    浏览(23)
  • 第二章 python-pcl、open3d读取、显示pcd、bin等格式点云数据

    点云数据实际上就是许多组点的集合,每个点由{x,y,z}组成。当然理论上的只包含有3D坐标。 实际激光雷达获取的点云数据还会包含强度、反射率等等。但我们一般只用提取{x,y,z}来处理即可。 点云数据相比于其他传感器数据的核心优势就是在于 精准的深度信息。可惜获取具体

    2024年01月16日
    浏览(45)
  • 在PyQt5窗口中嵌入open3d窗口显示点云图形

     本文方法来自:PYQT5内嵌外部exe程序(win7)_pyqt5嵌入外部窗口_这杯可乐有点甜的博客-CSDN博客 open3d在绘制点云等图形时,通常需要创建一个窗口。本文实现了将open3d创建的窗口显示在Qt窗口内,以便于后续通过Qt控件和槽函数调用open3d强大的绘图和处理功能。 运行结果如下

    2024年02月06日
    浏览(141)
  • QT6+CloudCompare显示3D点云

        CloudCompare是一个三维点云(网格)编辑和处理软件。最初,它被设计用来对稠密的三维点云进行直接比较。它依赖于一种特定的八叉树结构,在进行点云对比这类任务时具有出色的性能。此外,由于大多数点云都是由地面激光扫描仪采集的,CloudCompare的目的是在一台标准

    2023年04月08日
    浏览(34)
  • Qt Creator 创建 Qt 默认窗口程序

    Qt 入门实战教程(目录) Windows Qt 5.12.10下载与安装 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境,也不需要你再在Visual Studio 2022中安装Qt VS Tools这样的插件。 目的就是为了能够让你可以更快的把Q

    2024年02月09日
    浏览(25)
  • QT创建文本编辑窗口

     

    2024年02月16日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包