当前位置: 首页 > news >正文

Qt PCL学习(一):环境搭建

参考

  • (QT配置pcl)PCL1.12.1+QT5.15.2+vs2019+cmake3.22.4+vtk9.1.0
  • visual studio2019+Qt5.15.2+PCL1.12.1+vtk9.1.0+cmake3.22.2

本博客用到的所有资源

  • 版本一览:Visual Studio 2019 + Qt 5.15.2 + PCL 1.12.1 + VTK 9.1.0
  • https://pan.baidu.com/s/1xW7xCdR5QzgS1_d1NeIZpQ?pwd=0000
    在这里插入图片描述

1. Visual Studio 2019 安装

Visual Studio 2019 官方下载地址

  • 双击下载好的 vs_enterprise__663473144.1633489885.exe 文件,勾选下述选项安装即可
    在这里插入图片描述

2. Qt 5.15.2 安装

2.1 Qt 在线安装

  • Qt 在线安装文件下载:qt-unified-windows-x86-4.3.0-1-online.exe
    在这里插入图片描述

  • 双击下载好的 qt-unified-windows-x86-4.3.0-1-online.exe,自行注册并登录 Qt 账户,在选择组件界面,勾选下图所示组件,然后一直点击下一步安装即可
    在这里插入图片描述

2.2 Qt-VS 2019 插件安装

  • Qt-Visual Studio 2019 插件下载:qt-vsaddin-msvc2019-2.8.1-rev.06.vsix
    在这里插入图片描述

  • 双击下载好的 qt-vsaddin-msvc2019-2.8.1-rev.06.vsix 直接安装即可
    在这里插入图片描述

  • 在 Visual Studio 2019 中添加 Qt 路径,打开 Visual Studio 2019 新建一个控制台项目,点击下图一所示选项,在下图二中 Version 和 Path 中添加所示内容(具体内容根据自己的情况修改,图示 D:\Qt6 是本人新建文件夹错了,实则安装的是 Qt5
    在这里插入图片描述

在这里插入图片描述

  • Visual Studio 2019 创建 Qt 项目测试(下图三:将 .ui 文件打开方式设置为 Qt 默认打开
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. PCL 1.12.1 安装

  • 双击下载的 PCL-1.12.1-AllInOne-msvc2019-win64.exe 文件安装即可,切记安装路径不能有中文和空格,本文安装路径为 D:\PCL1.12.1,建议与本文一致,安装完得到下图所示(将网盘中的 pcl1.12.1.pri 文件复制到该目录
    在这里插入图片描述

  • 安装 OpenNI2,先双击 remove,再双击安装
    在这里插入图片描述

在这里插入图片描述

  • 将网盘中的 pcl-1.12.1-pdb-msvc2019-win64.zip 文件解压后的内容全选复制到 D:\PCL1.12.1\bin 目录下
    在这里插入图片描述

  • path 环境变量设置:添加下图红框所示环境变量,如果不放心,可参考这篇博客添加更多环境变量
    在这里插入图片描述

4. CMake 3.22.4 安装

  • 双击下载的 cmake-3.22.4-windows-x86_64.msi 直接安装即可,安装步骤简单此处不赘述
    在这里插入图片描述

5. VTK 9.1.0 安装

5.1 VTK 简介

  • VTK(Visualization Toolkit,可视化工具包)是一个开源、跨平台、可自由获取、支持并行处理的图形应用函数库
    • VTK 是一个用于可视化和图形处理的强大库,它提供了丰富的功能和算法,可用于创建和渲染 2D 和 3D 图形,并进行各种可视化和图形处理操作,VTK 库可以用于处理各种类型的数据,包括点云数据
    • PCL 是一个专门用于处理点云数据的库,它提供了一组算法和工具,可用于点云的采集、过滤、配准、分割、特征提取等任务,PCL 库的目标是提供一个全面而高效的点云处理解决方案
    • 在 PCL 中,有一个模块(pcl_visualization)使用了 VTK 库的功能,用于可视化点云数据和结果,通过使用 VTK 库,PCL 可以提供强大的点云可视化功能

    VTK 提供了强大的可视化和图形处理功能,而 PCL 则专注于点云数据的处理,但在某些功能上使用了 VTK 库来实现点云的可视化

5.2 VTK 安装方法一:直接替换

  • 下载网盘中编译好的 VTK.rar 文件,解压后直接替换 D:\PCL1.12.1\3rdParty 目录下的 VTK 文件夹即可

5.3 VTK 安装方法二:自行编译

  • 参考视频:QT配置pcl

6. Qt PCL 测试案例

  • 打开 Qt 5.15.2 新建 Qt Widgets 项目 show(qmake),选择 Qt 5.15.2 MSVC2019 64bit 编译套件
    在这里插入图片描述

  • 在 show.pro 文件添加下行代码

    QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    // 添加下行代码(根据自己安装目录进行修改)
    include(D:/PCL1.12.1/pcl1.12.1.pri)
    
  • mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H#include <QMainWindow>
    #include <QWindow>
    #include <QHBoxLayout>#include <vtkGenericOpenGLRenderWindow.h>
    #include <pcl/point_cloud.h>
    #include <pcl/point_types.h>
    #include <pcl/io/pcd_io.h>
    #include <pcl/visualization/pcl_visualizer.h>typedef pcl::PointXYZ PointT;
    typedef pcl::PointCloud<PointT> PointCloudT;
    typedef pcl::visualization::PCLVisualizer PCLViewer;
    typedef std::shared_ptr<PointCloudT> PointCloudPtr;QT_BEGIN_NAMESPACE
    namespace Ui {
    class MainWindow;
    }
    QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;PointCloudPtr cloudptr;PCLViewer::Ptr cloud_viewer;
    };
    #endif // MAINWINDOW_H
    
  • mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {setWindowTitle("PCL Test");ui->setupUi(this);// 创建 PCLViewer 对象并设置窗口标题cloud_viewer.reset(new PCLViewer("Viewer"));cloud_viewer->setShowFPS(false);// 将 cloud_viewer 的渲染窗口嵌入到 QWidget 中auto viewerWinId = QWindow::fromWinId((WId)cloud_viewer->getRenderWindow()->GetGenericWindowId());QWidget *widget = QWidget::createWindowContainer(viewerWinId, nullptr);// 创建 QVBoxLayout 对象并将 QWidget 添加到其中QVBoxLayout* mainLayout = new QVBoxLayout;mainLayout->addWidget(widget);centralWidget()->setLayout(mainLayout);// 创建 PointCloudT 智能指针并加载点云数据// office.pcd 点云文件在网盘中已提供cloudptr.reset(new PointCloudT);pcl::io::loadPCDFile("D:/office.pcd", *cloudptr);// 设置颜色处理器,将点云数据添加到 cloud_viewer 中const std::string axis ="z";pcl::visualization::PointCloudColorHandlerGenericField<PointT> color_handler(cloudptr, axis);cloud_viewer->addPointCloud(cloudptr, color_handler, "cloud");
    }MainWindow::~MainWindow() {delete ui;
    }
    

在这里插入图片描述

相关文章:

Qt PCL学习(一):环境搭建

参考 (QT配置pcl)PCL1.12.1QT5.15.2vs2019cmake3.22.4vtk9.1.0visual studio2019Qt5.15.2PCL1.12.1vtk9.1.0cmake3.22.2 本博客用到的所有资源 版本一览&#xff1a;Visual Studio 2019 Qt 5.15.2 PCL 1.12.1 VTK 9.1.0https://pan.baidu.com/s/1xW7xCdR5QzgS1_d1NeIZpQ?pw…...

代码随想录算法训练营第四十二天 | 416. 分割等和子集

题目链接&#xff1a;416. 分割等和子集 文章讲解&#xff1a;代码随想录 416. 分割等和子集讲解 视频讲解&#xff1a;动态规划之背包问题&#xff0c;这个包能装满吗&#xff1f;| LeetCode&#xff1a;416.分割等和子集 思路和解法 题目&#xff1a; 给你一个 只包含正整…...

Spring GateWay

概述简介 能干什么 反向代理 鉴权 流量控制 熔断 日志监控 Spring Cloud Gateway 与Zuul的区别 在SpringCloud Finchley正式版之前&#xff0c;Spring Cloud推荐的网关是 Netflix提供的Zuul: 1、Zuul 1.x&#xff0c;是一个基于阻塞Ⅳ/O的APl Gateway 2、Zuul 1.x基于Servl…...

介绍一个关于 JSON 可视化的网站

最近在看到一个比较好玩的网站&#xff0c;可以将 JSON以可视化的方式展现出现&#xff0c;比如存在一下JSON数据&#xff1a; {"id": "f3bbc3bc-9f34-4bf7-8a0f-7e6f6e6fbb9a","isActive": false,"age": 25,"name": "…...

系统架构设计师-22年-上午答案

系统架构设计师-22年-上午答案 更多软考资料 https://ruankao.blog.csdn.net/ 1 ~ 10 1 云计算服务体系结构如下图所示&#xff0c;图中①、②、③分别与 SaaS PaaS Iaas相对应&#xff0c;图中①、②、③应为(1) #mermaid-svg-xqMbIVMC8pWrne2L {font-family:"trebuch…...

2024 年改变行业的人工智能主要趋势

1、导读 当我们迈入 2024 年时&#xff0c;了解人工智能趋势至关重要。它们不仅仅涉及技术进步&#xff1b;还涉及技术进步。它们意味着我们解决问题、做出决策和展望未来的方式发生了转变。本文旨在探索这些变革趋势&#xff0c;并强调人工智能如何不断突破可能性的界限&…...

【Linux Day15 TCP网络通讯】

TCP网络通讯 TCP编程流程 接口介绍 socket()方法是用来创建一个套接字&#xff0c;有了套接字就可以通过网络进行数据的收发。创建套接字时要指定使用的服务类型&#xff0c;使用 TCP 协议选择流式服务&#xff08;SOCK_STREAM&#xff09;。 **bind()方法是用来指定套接字使…...

力扣:78. 子集

回溯解法思路&#xff1a; 1.跟前面的组合题目有相同的点&#xff0c;主要区别在于&#xff1a;组合题目是遍历到符合条件的组合时加入li1集合中&#xff0c;子集题目是每递归一次就要把结果加入到li1集合中&#xff0c;并遍历但nums数组的最后。其他点和组合问题一样。 clas…...

(29)数组异或操作

文章目录 每日一言题目解题思路方法一方法二 代码方法一方法二 结语 每日一言 泉涸&#xff0c;鱼相与处于陆&#xff0c;相呴以湿&#xff0c;相濡以沫&#xff0c;不如相忘于江湖。 --庄子内篇大宗师 题目 题目链接&#xff1a;数组异或操作 给你两个整数&#xff0c;n 和…...

mac检查CPU温度和风扇速度软件:Macs Fan Control Pro 1.5.17中文版

Macs Fan Control Pro for Mac是一款专业的电脑风扇控制工具&#xff0c;旨在帮助Mac用户有效控制电脑的风扇速度&#xff0c;提高电脑的运行效率和稳定性。 软件下载&#xff1a;Macs Fan Control Pro 1.5.17中文版 该软件支持多种风扇控制模式和预设方案&#xff0c;用户可以…...

数据结构——单链表详解

目录 前言 一.什么是链表 1.概念 ​编辑 2.分类 二.单链表的实现(不带头单向不循环链表) 2.1初始化 2.2打印 2.3创建新节点 2.4头插、尾插 2.5头删、尾删 2.6查找 2.7在指定位置之前插入 2.8在指定位置之后插入 2.9删除pos位置 2.10删除pos之后的 2.11销毁链表…...

Unity接入GVoice腾讯实时语音

Unity接入GVoice腾讯实时语音 一、介绍二、注册GVoice创建项目语音服务1.创建项目2.申请语音权限3.项目管理查看SDK初始化的一些参数和基本信息4.GVoice检测 三、SDK下载SDK是分为两种类型&#xff1a;独立版集成板 SDK放入Unity工程中 四、语音代码写法五、GVoice踩坑语音权限…...

【Spring基础】从0开始学习Spring(2)

前言 在上篇文章&#xff0c;我已经讲了Spring中最核心的知识点&#xff1a;IoC&#xff08;控制反转&#xff09;以及DI&#xff08;依赖注入&#xff09;。这篇文章&#xff0c;我将讲一下关于Spring框架中的其它比较琐碎但是又还是挺重要的知识点&#xff0c;因此&#xff…...

cesium mapboxgl+threebox glb 朝向问题

一、3Dbuilder打开glb 二、cesium在pitch和heading都为0的情况下&#xff0c;不设置模型的朝向 三、mapboxglthreebox在pitch和bearing都为0的情况下&#xff0c;不设置模型的朝向 四、对于地图默认视角&#xff0c;cesium设置pitch-90、heading0的时候和mapboxglthreebox设置p…...

LeetCode 打家劫舍

198. 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…...

单片机的50个电路

单片机 电源 声音模块 收音机 485 蓝牙 光耦 can 光敏电阻 单片机 矩阵 单片机电路 时钟 ADC 接口电路 红外发射 显示模块 红外接收 蜂鸣器驱动 流水灯 usb供电 烧录电路 数码管 EEPROM LCD1602电路 数码管 max485 红外开关 译码器 移位寄存器 步进电机控制 复位电路 下载电路 …...

JVM 性能调优- 五种内存溢出(5)

在介绍之前先简单介绍下 直接内存(Direct Memory)和堆内存(Heap Memory): 关系: 直接内存并不是Java虚拟机的一部分,它是通过Java的NIO库中的ByteBuffer来分配和管理的。直接内存通常由操作系统的本地内存(Native Memory)提供支持。堆内存是Java虚拟机的一部分,用于存…...

【SQL高频基础】1141.查询近30天活跃用户数

题目&#xff1a; 表&#xff1a;Activity ------------------------ | Column Name | Type | ------------------------ | user_id | int | | session_id | int | | activity_date | date | | activity_type | enum | ------------------------…...

基于spring cloud alibaba的微服务平台架构规划

平台基础能力规划&#xff08;继续完善更新…&#xff09; 一、统一网关服务&#xff08;独立服务&#xff09; 二、统一登录鉴权系统管理&#xff08;独立服务&#xff09; 1.统一登录 2.统一鉴权 3.身份管理 用户管理 角色管理 业务系统和菜单管理 部门管理 岗位管理 字典管…...

leetcode(滑动窗口)3.无重复字符的最长字串(C++详细题解)DAY2

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示…...

构建工业级电力通信系统的终极指南:libiec61850开源库深度解析

构建工业级电力通信系统的终极指南&#xff1a;libiec61850开源库深度解析 【免费下载链接】libiec61850 Official repository for libIEC61850, the open-source library for the IEC 61850 protocols 项目地址: https://gitcode.com/gh_mirrors/li/libiec61850 在现代…...

DeepSeek Jaeger性能压测实录:单日240亿Span写入下,存储层崩溃前的4.7秒黄金抢救窗口

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek Jaeger链路追踪 DeepSeek Jaeger 是 DeepSeek 系列可观测性工具中专为分布式系统设计的轻量级链路追踪实现&#xff0c;深度兼容 OpenTracing 与 OpenTelemetry 协议&#xff0c;并针对大模型…...

ChatGPT 2026安全增强套件发布:内置FIPS 140-3认证加密引擎、GDPR实时审计追踪、AI生成内容数字水印——金融/医疗行业合规上线最后窗口期

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT 2026安全增强套件整体架构与合规定位 ChatGPT 2026安全增强套件&#xff08;CESK-2026&#xff09;是一套面向生成式AI服务的纵深防御框架&#xff0c;专为满足GDPR、中国《生成式人工智能服务…...

从JAR包到原生二进制:我的SpringBoot应用在Linux服务器上‘瘦身’实战记录(GraalVM 22.1.0 + Maven)

从JAR包到原生二进制&#xff1a;我的SpringBoot应用在Linux服务器上‘瘦身’实战记录 去年接手的一个电商促销系统&#xff0c;随着业务增长&#xff0c;JAR包启动时间从最初的8秒延长到23秒。某次大促期间&#xff0c;服务扩容时JVM预热导致的响应延迟直接影响了转化率——这…...

Android原生AI智能体平台Zero:Rust核心与多通道集成的工程实践

1. 项目概述&#xff1a;一个运行在Android上的原生AI智能体平台如果你和我一样&#xff0c;对手机上那些“大模型助手”感到有些审美疲劳——它们要么是套壳的Web应用&#xff0c;响应慢、功能受限&#xff0c;要么就是纯粹的聊天玩具&#xff0c;没法真正帮你处理点“脏活累累…...

【零基础部署】Ubuntu 安装 Docker 保姆级教程

Docker 是当今最流行的容器化平台之一&#xff0c;它能让你把应用及其依赖打包到一个轻量级的容器中运行。无论你是想搭建开发环境、部署服务&#xff0c;还是学习云原生技术&#xff0c;Docker 都是必备技能。本文将手把手带你从零开始&#xff0c;在 Ubuntu 系统上完成 Docke…...

3步解锁网易云音乐NCM加密文件:ncmdumpGUI图形化工具完全指南

3步解锁网易云音乐NCM加密文件&#xff1a;ncmdumpGUI图形化工具完全指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否在网易云音乐下载了喜欢的歌曲…...

Docker部署RabbitMQ后,你的admin账号真的能连上吗?一个权限配置的深度踩坑实录

Docker部署RabbitMQ后admin账号连接失败的深度排查指南 当你用Docker快速部署了RabbitMQ&#xff0c;创建了admin用户&#xff0c;甚至能通过Web界面登录&#xff0c;却在代码中遭遇ACCESS_REFUSED错误时&#xff0c;那种挫败感我深有体会。这不是简单的密码错误问题&#xff0…...

ESP32-C3原理图设计避坑指南:从电源到天线,新手最容易忽略的7个细节

ESP32-C3原理图设计避坑指南&#xff1a;从电源到天线&#xff0c;新手最容易忽略的7个细节 第一次接触ESP32-C3原理图设计时&#xff0c;很多开发者会直接参考官方规格书&#xff0c;但实际调试时却发现各种奇怪的问题&#xff1a;电源不稳定导致Wi-Fi断连、复位电路响应迟缓、…...

Windows 10/11终极指南:如何快速解决PL2303驱动兼容性问题

Windows 10/11终极指南&#xff1a;如何快速解决PL2303驱动兼容性问题 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 还在为Windows 10/11系统上的PL2303串口设备无法…...