QT进行pcl可视化显示

Qt PCL学习(一):环境搭建 阅读详情

首先由于pcl的vtk与qt的不兼容需要下载vtk控件,详细的介绍见之前的博客。

然后打开你的vs,新建qt项目,然后进入qtdesign,找到qvtk控件,在下图所示,然后加一些常用的控件就好了。

然后就可以愉快的写代码了,我这个实现了打开文件和滤波两个功能,敬请参考

#include <QtWidgets/QMainWindow>
#include "ui_pcl_test.h"

//vtk控件
#include <vtkRenderWindow.h>
#include <vtkAutoInit.h> 
VTK_MODULE_INIT(vtkRenderingOpenGL);
VTK_MODULE_INIT(vtkInteractionStyle);

//pcl依赖项
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
//体素滤波
#include <pcl/filters/voxel_grid.h>
#include <pcl/visualization/cloud_viewer.h>

class pcl_test : public QMainWindow
{
	Q_OBJECT

public:
	pcl_test(QWidget *parent = Q_NULLPTR);
	~pcl_test();

private:
	Ui::pcl_testClass ui;
	//定义点云指针
    typedef pcl::PointCloud<pcl::PointXYZRGB> pointcloud;
	pointcloud::Ptr pointptr;
	//定义显示器
	boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer;;
	//初始化vtk
	void initialvtk();
	//创建打开槽
//private slots:
	//打开文件
	void openfile();
	//滤波和其点云指针
	void voxelgridfilter();
	//typedef pcl::PointCloud<pcl::PointXYZRGB> voxelcloudpoint;

};
#include "pcl_test.h"

#include <QFileDialog>
#include <iostream>



pcl_test::pcl_test(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	initialvtk();
	//打开文件
	connect(ui.button1, &QAction::triggered, this, &pcl_test::openfile);
	//点云滤波
	connect(ui.button2, &QAction::triggered, this, &pcl_test::voxelgridfilter);
	
	
}

pcl_test::~pcl_test()
{
	delete &ui;
}

//初始化vtk
void pcl_test::initialvtk()
{

	pointptr.reset(new pcl::PointCloud<pcl::PointXYZRGB>);
	viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
	viewer->addPointCloud(pointptr, "cloud");
	ui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
	viewer->setupInteractor(ui.qvtkWidget->GetInteractor(), ui.qvtkWidget->GetRenderWindow());
	ui.qvtkWidget->update();
}


//读取文本型和二进制型点云数据
void pcl_test::openfile()
{
	//只能打开PCD文件
	QString fileName = QFileDialog::getOpenFileName(this,
		QString("Open PointCloud"), ".",
		QString("Open PCD files(*.pcd)"));

	if (!fileName.isEmpty())
	{
		std::string file_name = fileName.toStdString();
		pcl::io::loadPCDFile(file_name, *pointptr);
		//viewer->addPointCloud(pointptr, "cloud");
		viewer->updatePointCloud(pointptr, "cloud");
		ui.qvtkWidget->update();
	}
}

//体素滤波
void pcl_test::voxelgridfilter()
{
	pcl::PointCloud<pcl::PointXYZRGB>::Ptr voxelpointptr(new pcl::PointCloud<pcl::PointXYZRGB>);
	pcl::VoxelGrid<pcl::PointXYZRGB> filter;
	filter.setInputCloud(pointptr);
	filter.setLeafSize(0.1f, 0.1f, 0.1f);
	filter.filter(*voxelpointptr);
	pcl::io::savePCDFileASCII("voxel.pcd", *voxelpointptr);
	//viewer->addPointCloud(voxelpointptr, "cloud");
	viewer->updatePointCloud(voxelpointptr, "cloud");
	ui.qvtkWidget->update();

}

 

基于Qt在PCL中画圆环,VTK画圆环,pcl可视化viewer与vtk显示接合(终于解决) 基于Qt+PCL,找了很多资料,pcl中有 pcl::visualization::PCLVisualizer::addCircle 画圆环,但是明显看到圆环不圆,线条不光滑,不好看,于是采用vtk的不规则图形vtkRegularPolygonSource画圆,画在同一个描绘器里面。 阅读详情

相关推荐

【Qt】基于VTK9.1+VS2019+Qt5.15.2的点云可视化程序开发

由于工作需要和个人爱好,我最近在学习VS+Qt的界面开发和PCL点云库的使用。于是一时兴起准备做一个类似ROS里面自带的Rviz插件的Windows版本。折腾了两天,查阅了很多大佬的博客,但发现信息较为分散还有一些小坑,所以接下来就按照最新的、较为合理的方式来写一个点云可视化的demo。因为我也才接触Qt开发大约一周时间,所以以上内容难免有所错漏,希望评论区的大佬不吝赐教~

Roy_Yuan_的博客 1448

【PCL】基于C++与QT的PCL环境配置(保姆级教程)

基于C++与QT的PCL环境配置(保姆级教程)

qq_49149369的博客 1万+

QT配置PCL过程记录(一)

因为自己最近要用到Qt和PCL,所以就在网上搜集了一下资料,经过一天的折腾,总算是将PCL装上并且在Qt上配置成功。过程总的来说还是有些艰难的,毕竟穷之前没用过Qt,不了解Qt的机制,只能靠自己看一些书和网上的教程才得以没走太多的弯路。不过这中间也是碰到了一些问题,正好在这记录一下。 一、准备工作:软件的下载 我们所需要的软件主要有一下几个: VS2015:这就不用怎么介绍了,使用很广泛的一个软......

dayuhaitang1的博客 1万+

QT+PCL 点云学习

PCL 点云学习 概念 Point Cloud Libraries 点云库 和opencv处理图像一样,不过是3D图像的处理 支持文件格式 pcd格式文件 PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。包括下面几种格式: l PLY是一种多边形文件格式,由Stanford大学的Turk等人设计开发; l STL是3D Systems公司创建的模型文件格式,主要应用于CAD、CAM领域; l OBJ是从几何学上定义的

weixin_44342705的博客 3159

基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发

PCL+QT开发

阁楼 2万+

QT+PCL+VTK实现三维点云可视化:从环境搭建到交互显示

在三维视觉与机器人领域,点云数据的可视化是理解场景结构、验证算法效果的关键环节。PCL作为点云处理的事实标准库,提供了从文件读取到滤波分割的完整工具链,而其可视化模块则基于VTK构建,借助OpenGL完成高效渲染。QT作为成熟的C++界面框架,能够将VTK渲染窗口嵌入自研软件,实现真正可交互、可扩展的三维查看模块。理解这三大库的分工协作,是开发点云应用的基础:PCL负责数据处理,VTK负责场景绘制,QT负责交互界面与业务逻辑。这种组合广泛应用于自动驾驶标注工具、三维测量软件、工业检测系统等场景。本文基于一个

weixin_29182481的博客 318

PCL+Qt+VS可视化点云

前言Point Cloud Library (PCL)是一个功能强大的开源C++库,如果能够使用好PCL将会对我们在LiDAR数据处理领域的研究产生巨大帮助。LiDAR技术经过几十年的发展,目前国内外关于LiDAR点云数据处理的文献已很丰富,但是依然存在硬件上的发展速度大于软件的发展速度。PCL中的算法基于众多的科研人员和程序爱好者的无私贡献才有今天强大的PCL。博文中,我将针对如何结合PCL和Qt

wokaowokaowokao12345的专栏 2万+

ArcGIS基础:点要素分割线要素和提取线要素的交点

第一个实验:【点要素分割线要素】看下原始数据:下图所示,2个红点和一条绿线,用2个点去分割这条线。 找到【数据管理工具】,在找到【要素】,再找到【在点处分割线】,如下图所示。 输入线、点要素,然后在【搜索半径】里输入5米,查看一下结果。 查看结果发现,线段被分割了2段,我们查看一下原因。 发现第2个点与线有一段距离,肯定是大于5米的,所以分割没有成功。可以量测一下距离,重新输入搜索半径。 我们把搜索半径改为200米,勘察结果,被点分割了3段。 接下来使用另外一个工具【在折点处分割线】,如下所示。

yuanYW7556的博客 1万+

PCL+ VTK+QT ubuntu16.04配置 实现可视化点云

** 前言 因为项目需要,需要实现QT中实现点云显示,刚开始接触QT,有很多坑要躺,在坑了呆了4天,终于配置好了PCL1.8 + VTK6.3 + QT5.5 + ubuntu16.04! 网上参考的资料挺多,但都差不多,大部分都是基于windows下的开发,linux系统下的资料较少,刚从坑里出来,想记录下来,以免以后再用。 最初参考两篇博文 https://blog.csdn.net/wok...

Curryfun的博客 6470

单细胞测序流程(十)KEGG通路富集分析与可视化圈图实战解析

本文详细解析了单细胞测序数据分析中KEGG通路富集分析与可视化圈图的完整实战流程。从差异表达基因列表出发,通过R语言进行KEGG富集分析,并利用Perl脚本进行基因ID转换,最终使用GOplot包绘制高级可视化圈图,帮助研究者将基因列表转化为有意义的生物学故事。

i7j8k9l的博客 406

ArcGIS Pro中如何批量替换数据源

不知您是否遇到过下面情况:ArcGIS Pro的Map/Scene中所引用的数据源被移动或重命名了,导致Map/Scene中找不到之前的数据,出现红色叹号;已有一个Map模板文件,图层的样式符号都是设置好的,想批量设置成另外一个数据源,复用该模板文件中的样式符号。 如果您在ArcGIS Pro的使用过程中遇到了上面情况,那么可以参考本篇文章,本文以图层存储在同一GDB中为例介绍。 情况一:Map中已有图层的数据源被移动了 原始Map长这样: 当数据源位置改变之后,显示找不到数据源的红色叹号: 这时如果右

xinying180的博客 7948

【亲测免费】 探索3D可视化新境界:PCL与VTK在Qt中的完美结合

探索3D可视化新境界:PCL与VTK在Qt中的完美结合 【下载地址】PCL与VTK在Qt中的使用合集 PCL与VTK在Qt中的使用合集本仓库提供了一个资源文件,详细介绍了如何在Qt环境中使用PCL(Point Cloud Library)和VTK(Visualization Toolkit)进行点云和模型的显示与交互 ...

gitblog_09788的博客 562

可视化大屏系列(5):设备状态面板与数据分析仪表盘

在这篇文章中,我们将重点讨论如何通过智能化手段提升工地设备的管理效率与维护质量。随着智能工地系统的不断发展,设备监控与维护管理变得尤为重要。本篇将从 设备状态实时监控、自动化维护提醒、设备管理与维修记录 三个方面入手,展示如何通过 Vue3 和 ECharts 构建一个智能化的设备管理平台,实时采集和展示设备运行状态、及时生成维护提醒并记录维修历史,以提高设备的使用效率与安全性。我们还将结合实际代码示例,详细讲解如何实现这些功能,帮助你在智能工地项目中实现设备管理的智能化、数字化和自动化。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 3365

【亲测免费】 探索点云世界:Windows下使用QT和VTK显示点云的完美解决方案

探索点云世界:Windows下使用QT和VTK显示点云的完美解决方案 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在计算机视觉和三维重建领域,点云数据的处理和可视化是一个重要的研究方向。为了帮助开发者更轻松地在Windows环境下进行点云显示,我们推出了一个基于QT和VTK的开源项目。该项目提供了一个完整的示例代码,展示了如何在QT界面中使用VTK库来加载和显示点云...

gitblog_09725的博客 1082

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2185

PotPlayer播放4K HDR电影时,如何正确设置LAV解码器与MadVR渲染器避免色彩失真?

本文详细介绍了如何在PotPlayer中正确配置LAV解码器与MadVR渲染器,以解决播放4K HDR电影时的色彩失真问题。从组件安装、参数设置到显卡协同配置,提供了一套完整的端到端解决方案,帮助影音爱好者获得最佳的视觉体验。

weixin_28732953的博客 441

【点云PCL入门】PCL+QT+VTK显示点云

索引一级目录二级目录三级目录 一级目录 二级目录 三级目录

cutemypig的博客 4022

【Windows Server 2019】活动目录 (Active Directory) ——理论

博文介绍了活动目录 (Active Directory) 的定义,作用以及与 DNS 的关系。同时也介绍了AD的组织结构,包括域控制器,子域,对象,属性,容器,组织单位,域间信任等术语的解释,实验拓扑图。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 7747

探索点云世界的利器:Qt+Pcl可视化点云程序

探索点云世界的利器:Qt+Pcl可视化点云程序 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当今的计算机视觉和机器人领域,点云数据的可视化是一个至关重要的环节。为了帮助开发者更高效地处理和分析点云数据,我们推出了一个强大的开源工具——Qt+Pcl可视化点云程序。这个程序结合了Qt的强大界面设计和PCL(Point Cloud Library)的点云处理能力,为用户...

gitblog_09748的博客 947

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 93

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

在VS2022(QT)或QTCreator上配置并显示PCL点云文件

在VS2022(QT)或QTCreator上配置并显示PCL点云文件 【下载地址】在VS2022QT或QTCreator上配置并显示PCL点云文件 本资源文件详细介绍了如何在Visual Studio 2022(结合QT)或QTCreator上配置并显示PCL(Point Cloud Library)点云文件。通过本教程...

gitblog_06504的博客 462

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

linux qt pcl,PCL+Qt+VS可视化点云

前言Point Cloud Library (PCL)是一个功能强大的开源C++库,假设可以使用好PCL将会对我们在LiDAR数据处理领域的研究产生巨大帮助。LiDAR技术经过几十年的发展。眼下国内外关于LiDAR点云数据处理的文献已非常丰富。可是依旧存在硬件上的发展速度大于软件的发展速度。PCL中的算法基于众多的科研人员和程序爱好者的无私贡献才有今天强大的PCL。博文中,我将针对怎样结合PCL和...

weixin_28800247的博客 381

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

PCL QT VS 可视化PolygonMesh

PCL的可视化是通过VTK实现的,结合PCL和QT实现可视化ply格网文件。

rs_huangzs的博客 6531

使用Qt以及PCL库显示点云文件

使用qt显示点云

YangAndyYangYang的博客 365

在PCL中画圆环,pcl可视化pcl::visualization::PCLVisualizer

找了很多资料,pcl中有 pcl::visualization::PCLVisualizer::addCircle 画圆环,但是明显看到圆环不圆,线条不光滑,不好看,于是有了我的画圆的方法。 一、代码 void mainwindow::initPointCloudViewer() { viewer->initCameraParameters(); QColor backgriundColor(0, 0, 15); viewer->setBackgroundColo

寒木休思的博客 2389

在PCL+qt实现las文件读取

关于PCL部分的配置我就不加赘述了,本篇主要讲las文件的读取 首先需要下载las文件 在PCL项目中属性-》配置属性-》VC++目录中配置: 在包含目录中包含该include 在库目录中引用lib 在PCL项目中属性-》配置属性-》链接器-》输入 附加依赖项中配置 到这里,关于laslib库的配置就已经完成了。现在在qt中构建一个槽函数。在槽函数中添加以下代码 //以下是所需包含的头文件 #include <pcl\io\pcd_io.h> #include &l

qq_48240095的博客 1205
上一篇: pcl点云库实时显示点云变化
下一篇: QT框架下进行pcl点选功能
SLAM_masterFei
博客等级 码龄9年 283粉丝 53原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值