PCL 窗口可视化两个点云

news2024/9/23 3:12:31

目录

一、概述

1.1原理

1.2实现步骤

1.3 应用场景

二、代码实现

2.1关键函数

2.2完整代码

三、实现效果


PCL点云算法汇总及实战案例汇总的目录地址链接:

PCL点云算法与项目实战案例汇总(长期更新)


一、概述

        本文将介绍如何使用PCL库在同一个可视化窗口中显示两个点云数据。通过设置不同的颜色和点大小,可以在同一视图中直观地对比和分析两个点云数据。

1.1原理

        PCL(Point Cloud Library)提供了强大的点云数据可视化工具,允许在同一个窗口中显示多个点云。通过 pcl::visualization::PCLVisualizer 类,可以轻松地加载多个点云并在同一个窗口中以不同的颜色或样式进行显示。这样可以在同一窗口中对比分析不同点云的特征或变化。

1.2实现步骤

  1. 创建一个PCL可视化窗口。
  2. 分别加载两个点云文件。
  3. 将第一个点云添加到可视化窗口中,并设置其显示属性。
  4. 将第二个点云添加到可视化窗口中,并为其设置不同的颜色和显示属性。
  5. 启动可视化窗口,实时显示两个点云数据。

1.3 应用场景

  1. 点云数据对比:同时显示两个不同的点云数据,便于对比分析它们之间的差异。
  2. 处理效果验证:可以在同一窗口中显示原始点云和处理后的点云,方便验证处理效果。
  3. 多视角展示:通过颜色区分,将同一对象的不同视角的点云数据同时显示在一个窗口中。

二、代码实现

2.1关键函数

1.点云文件加载:
        -pcl::io::loadPCDFile:用于加载PCD格式的点云文件。
2.点云可视化:
        -pcl::visualization::PCLVisualizer:创建一个可视化窗口对象。
        -viewer->addPointCloud:将点云数据添加到可视化窗口中。
        -pcl::visualization::PointCloudColorHandlerCustom:用于为点云设置自定义颜色。

2.2完整代码

#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>

int main(int argc, char** argv)
{
    // 1. 创建PCLVisualizer对象,用于显示点云数据
    pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
    viewer->setBackgroundColor(0, 0, 0);  // 设置背景颜色为黑色

    // 2. 读取第一个点云数据
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>);
    if (pcl::io::loadPCDFile("1.pcd", *cloud1) == -1)  // 加载第一个点云文件
    {
        PCL_ERROR("Couldn't read file cloud1.pcd \n");
        return -1;
    }

    // 3. 读取第二个点云数据
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZ>);
    if (pcl::io::loadPCDFile("C:\\Users\\fh\\Desktop\\PCL_Blog\\cloud_data\\PCD\\bunny.pcd", *cloud2) == -1)  // 加载第二个点云文件
    {
        PCL_ERROR("Couldn't read file cloud2.pcd \n");
        return -1;
    }

    // 4. 将第一个点云添加到可视化窗口
    viewer->addPointCloud<pcl::PointXYZ>(cloud1, "cloud1");
    viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud1");

    // 5. 将第二个点云添加到可视化窗口,并设置不同的颜色
    pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud2_color(cloud2, 255, 0, 0);  // 设置为红色
    viewer->addPointCloud<pcl::PointXYZ>(cloud2, cloud2_color, "cloud2");
    viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud2");

    // 6. 启动可视化主循环
    while (!viewer->wasStopped())
    {
        viewer->spinOnce(100);  // 让可视化窗口刷新
    }

    return 0;
}

三、实现效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2139072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8.4Prewitt算子边缘检测

基本原理 Prewitt算子是一种用于边缘检测的经典算子&#xff0c;它通过计算图像中像素值的&#xff08;一阶导数&#xff09;梯度来检测边缘。Prewitt算子通常包括两个3x3的卷积核&#xff0c;一个用于检测水平方向上的边缘&#xff0c;另一个用于检测垂直方向上的边缘。 示例…

【动漫资源管理系统】Java SpringBoot助力,搭建一个高清动漫在线观看网站

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

【插件】【干货】用EPPlus在Unity中读写Excel表

EPPlus是什么我就不说了&#xff0c;你都点进来了肯定知道 几个常用的api 1.index下标都是从1开始的 2.可以读取任意单元格上的任意内容&#xff0c;不需要给excel表写规则 但是如果你写了规则&#xff0c;就需要自己用额外的代码 --- 数据结构去实现 3.打开excel表 ExcelP…

[数据集][目标检测]智慧交通铁路异物入侵检测数据集VOC+YOLO格式802张7类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;802 标注数量(xml文件个数)&#xff1a;802 标注数量(txt文件个数)&#xff1a;802 标注类别…

萤石举办2024清洁机器人新品发布会 多维智能再造行业标杆

导言&#xff1a;作为智慧生活守护者&#xff0c;萤石今日发布了两款清洁机器人&#xff0c;AI扫拖机器人RS20 Pro Ultra 和AI洗地机器人RX30 Max &#xff0c;标志着萤石在智能清洁领域的全新突破。RS20 Pro Ultra基于CutFree 2.0内切割滚刷专利&#xff0c;有效解决毛发缠绕难…

速通GPT:《Improving Language Understanding by Generative Pre-Training》全文解读

文章目录 速通GPT系列几个重要概念1、微调的具体做法2、任务感知输入变换3、判别式训练模型 Abstract概括分析和观点1. 自然语言理解中的数据问题2. 生成预训练和监督微调的结合3. 任务感知输入变换4. 模型的强大性能 Introduction概括分析和观点1. 自然语言理解的挑战在于对标…

探索Python的HTML处理神器:pyquery的魔力

文章目录 探索Python的HTML处理神器&#xff1a;pyquery的魔力背景&#xff1a;为何选择pyquery&#xff1f;pyquery是什么&#xff1f;安装pyquery五个简单的库函数使用方法1. $&#xff1a;选择元素2. .text()&#xff1a;获取文本内容3. .html()&#xff1a;获取HTML内容4. …

SSM框架学习(三、MyBatis实践:提高持久层数据处理效率)

目录 一、Mybatis简介 1.简介 2.持久层框架对比 3.快速入门&#xff08;基于Mybatis3方式&#xff09; 4.ibatis方式的实现和原理 5.ibatis与mybatis之间的关系 二、Mybatis基本使用 1.向 sql 语句传参 &#xff08;1&#xff09;mybatis日志输出配置 &#xff08;2&…

小程序开发设计-第一个小程序:创建小程序项目④

上一篇文章导航&#xff1a; 小程序开发设计-第一个小程序&#xff1a;安装开发者工具③-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142219152?spm1001.2014.3001.5501 须知&#xff1a;注&#xff1a;不同版本选项有所不同&#xff0c;并无大碍。 一、创…

主播和礼品检测系统源码分享

主播和礼品检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

SSH软链接后门从入门到应急响应

目录 1. 软链接与SSH软链接后门介绍 1.1 软链接介绍 1.2 SSH软连接后门介绍 2. 如何在已拿下控制权限的主机创建后门 2.1 使用root账户并执行ssh软链接后门命令&#xff1a; 2.2 连接软链接后门测试&#xff1a; 2.3 创建其它账户 ssh软连接后门命令 3. 如何进行应急…

笋丁网页自动回复机器人V3.0.0免授权版源码

笋丁网页机器人一款可设置自动回复&#xff0c;默认消息&#xff0c;调用自定义api接口的网页机器人。 此程序后端语言使用Golang&#xff0c;内存占用最高不超过30MB&#xff0c;1H1G服务器流畅运行。仅支持Linux服务器部署&#xff0c;不支持虚拟主机&#xff0c;请悉知&…

七. 部署YOLOv8检测器-quantization-analysis

目录 前言0. 简述1. 案例运行2. 补充说明3. 量化分析4. 探讨总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第七章—部署YOLOv8检测器&#xff0c;一起来学习…

无限边界:现代整合安全如何保护云

尽管云计算和远程工作得到广泛采用&#xff0c;零信任网络也稳步推广&#xff0c;但边界远未消失。相反&#xff0c;它已被重新定义。就像数学分形的边界一样&#xff0c;现代网络边界现在无限延伸到任何地方。 不幸的是&#xff0c;传统工具在现代无限边界中效果不佳。现代边…

优化算法(三)—模拟退火算法(附MATLAB程序)

模拟退火算法&#xff08;Simulated Annealing, SA&#xff09;是一种基于概率的优化算法&#xff0c;旨在寻找全局最优解。该算法模拟金属退火过程中的物质冷却过程&#xff0c;逐渐降低系统的“温度”以达到全局优化的效果。它特别适用于解决复杂的组合优化问题。 一、模拟退…

深度学习笔记(6)文本分类

深度学习笔记&#xff08;6&#xff09;文本分类 文章目录 深度学习笔记&#xff08;6&#xff09;文本分类一、文本分析与关键词提取1.关键概念1.停用词2 Tf-idf&#xff1a;关键词提取 3.相似度 二、文本分析案例1.数据处理2.分词&#xff1a;实用结巴分词器3.清洗4.TF-IDF5.…

FastText 和 Faiss 的初探了解

概览 大模型目前已经是如火如荼的程度&#xff0c;各个大厂都有推出面向大众的基础大模型&#xff0c;同时诸多行业也有在训练专有大模型&#xff0c;而大模型的发展由来却是经过多年从文本检索生成、深度学习、自然语言处理&#xff0c;在Transformer架构出来后&#xff0c;才…

win11下面graphviz的用法

安装 安装graphviz 2.38版本 控制面板在变量path中增加E:\software\Graphviz\bin example.dot代码 digraph SignalPathway {node [fontname"SimHei"];edge [fontname"SimHei"];// 定义节点形状node [shapecircle];// 定义节点CellA [label"细胞 A&…

第 13 章 兵马未动,粮草先行——InnoDB 统计数据是如何收集的

表的统计数据&#xff1a;SHOW TABLE STATUS LIKE table_name; 索引的统计数据&#xff1a;SHOW INDEX FROM table_name; 13.1 两种不同的统计数据存储方式 InnoDB 提供了两种存储统计数据的方式&#xff1a; 永久性的统计数据。存储在磁盘上&#xff0c;服务器重启之后还在…

nvm安装并配置全局缓存文件

nvm下载&#xff0c;最新版为 1.1.12&#xff1a;Releases coreybutler/nvm-windows GitHub 下载exe&#xff0c;选择指定位置安装即可&#xff0c;安装及配置参考链接&#xff1a;window下安装并使用nvm&#xff08;含卸载node、卸载nvm、全局安装npm&#xff09;-CSDN博客 …