PCL-直通滤波

news2024/11/15 17:40:19

本篇内容:

  • 讲解直通滤波的作用
  • 通过pcl实现直通滤波
    效果:
    在这里插入图片描述

1 主要原理

点云数据通常包含x、y、z三个维度的数据,用户指定维度、范围后,直通滤波过滤或保留该范围内的所有点云
假设我指定维度’y’,范围(0.0,0.1),运行直通滤波后,则过滤或保留y坐标为(0.0,0.1)范围内的所有点云

2 直通滤波主要流程

初始化直通滤波器:

pcl::PassThrough<PointType> pt_filter;

设置输入点云:

pt_filter.setInputCloud(cloud);

设置过滤维度:

pt_filter.setFilterFieldName("y");

设置过滤范围:

pt_filter.setFilterLimits(0.0, 0.1);

设置过滤或保留:

pt_filter.setNegative(true);	// 设置为true,表示保留在过滤范围外的点,为false,表示保留在过滤范围内的点

执行过滤:

pt_filter.filter(*cloud_filter);

3 完整代码

#include <string>
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>

// 前置点云类型,方便以后更改
using PointType = pcl::PointXYZ;
using PointCloud = pcl::PointCloud<PointType>;
using PointCloud_Ptr = PointCloud::Ptr;

int main(int argc, char **argv) {
  if (argc < 3) {
    std::cout<<"Usage: ./read_pcd <pcd_file_path> <pcd_save_path>\n";
    return -1;
  }

  std::string pcd_file_path(argv[1]);
  std::string pcd_save_path(argv[2]);

  // 声明变量,用于保存点云数据
  PointCloud_Ptr cloud(new PointCloud);
  PointCloud_Ptr cloud_filter(new PointCloud);

  // 读取pcd点云文件
  if (pcl::io::loadPCDFile<PointType>(pcd_file_path, *cloud) == -1) {
    std::cerr<<"check pcd path\n";
    return -1;
  }

  // 初始化过滤器
  pcl::PassThrough<PointType> pt_filter;
  // 设置输入点云
  pt_filter.setInputCloud(cloud);
  // 设置过滤维度
  pt_filter.setFilterFieldName("y");
  // 设置过滤范围
  pt_filter.setFilterLimits(0.0, 0.1);

  // 设置为true,表示保留在过滤范围外的点,为false,表示保留在过滤范围内的点
  pt_filter.setNegative(true);
  // 执行过滤
  pt_filter.filter(*cloud_filter);

  // 保存点云文件
  pcl::io::savePCDFileASCII(pcd_save_path, *cloud_filter);

  return 0;
}

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

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

相关文章

华为OD机试真题 - 字符串加解密(Java/Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Java/Python/JS/C/C++)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX…

如何让“相信相信的力量”帮你多赚100万

公门洞开纳百川 众心逐梦越千山 号召引领潜力绽 心觉潜意识无间 我们经常听到这句话&#xff1a;相信相信的力量 为什么要相信相信的力量 相信是什么意思 相信的力量又是什么意思 我估计99%的人不知道这句话的底层逻辑是什么 如果你悟透了&#xff0c;你的并且践行了&…

数据结构之稀疏数组

稀疏数组 特殊的数据结构&#xff0c;其特点是大部分元素为同一值。 适用场景 处理方式 以二维数组为例&#xff1a; ● 遍历原始二维数组&#xff0c;查询出不同的值 ● 稀疏数组列数固定为3 ● 第一行记录原始二维数组的行数、列数、不同值的个数 ● 第二行开始记录不同值的…

Python优化算法21——混沌反馈共享和群体协同效应的蝴蝶优化算法(CFSBOA)

科研里面优化算法都用的多&#xff0c;尤其是各种动物园里面的智能仿生优化算法&#xff0c;但是目前都是MATLAB的代码多&#xff0c;python几乎没有什么包&#xff0c;这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考&#xff1a;Python优化算…

C++八股文之语言基础篇

&#x1f916;个人主页&#xff1a;晚风相伴-CSDN博客 思维导图链接&#xff1a;C语言基础 持续更新中…… &#x1f496;如果觉得内容对你有帮助的话&#xff0c;还请给博主一键三连&#xff08;点赞&#x1f49c;、收藏&#x1f9e1;、关注&#x1f49a;&#xff09;吧 &…

Java中post请求外部接口。其中有应对form-data参数方式处理

一、正常json参数的请求方式 代码片段如下&#xff1a; String result HttpUtil.post(URL_DEFAULT"d38e4357cb96dce5", JSONUtil.parseObj(Dict.create().set("fileName", cityTransitMapParams.getFileName()).set("appKey",cityTransitMapPa…

华为OD机试真题 - 荒岛求生 - 栈Stack(Java/Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Java/Python/JS/C/C++)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX…

使用JaCoCo 生成单测覆盖率报告

引入插件 <!-- surefire plugin with spock and junit --> <plugin><groupId>org.codehaus.gmavenplus</groupId><artifactId>gmavenplus-plugin</artifactId><version>1.9.0</version><executions><execution>&l…

使用ROCm和AMD GPU进行机器学习基准测试:复现我们的MLPerf推理提交

Benchmarking Machine Learning using ROCm and AMD GPUs: Reproducing Our MLPerf Inference Submission — ROCm Blogs 简介 衡量新技术的性能是自古以来的一种实验&#xff0c;常常引人入胜&#xff08;例如&#xff0c;我们仍然用马力来比较新电动汽车电机的性能&#xf…

Session 运行机制详解:从创建到销毁

Session 运行机制详解&#xff1a;从创建到销毁 一、Session的创建二、Session的维持三、Session的销毁 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Web开发中&#xff0c;Session机制是实现用户会话跟踪的重要手段。它允许服务器在多…

linux 9系统分区扩容

1.可以看到我的是9.2的系统&#xff0c;系统分区&#xff1a;/dev/mapper/rl-root 83G 8.0G 75G 10% / 2.接下来&#xff0c;我们新增一块新的硬盘&#xff0c;而不是直接对这个硬盘的基础上再扩容。 关机&#xff0c;加30G硬盘&#xff0c;再开机 fdisk -l fdisk /dev/…

29 路由工作原理

路由工作原理 一、理解路由工作原理 &#xff08;一&#xff09;什么是路由 ​ 将数据包从一个网络发送到另一个网络 ​ 需要依靠路由器 ​ 来完成路由器只关心网络的状态&#xff0c;决定最佳路径 &#xff08;二&#xff09;路由器工作原理 ​ 主要完成下列事情&#…

c++算法第一天

温馨提示&#xff1a;本篇文章适合刚开始练算法的小白&#xff0c;大佬若见勿嘲 、 题目 核心提取 1.所有的0移动到数组末尾 2.不能复制数组 解题思路 遇到0,cur,非0则先dest1,再交换&#xff0c;最后cur。 代码编写 温馨提示&#xff1a;这里的指针可以使用下标代替 …

nefu暑假集训4 哈希 个人模板+例题汇总

前言&#xff1a; 什么是哈希&#xff1f;哈希其实是所有字符串操作中&#xff0c;最简单的操作了&#xff08;哈希的过程&#xff0c;其实可以看作对一个串的单向加密过程&#xff0c;并且需要保证所加的密不能高概率重复&#xff08;就像不能让隔壁老王轻易地用它家的钥匙打开…

室分(室内分布系统)主要器件

室分&#xff0c;即室内分布系统&#xff0c;是一种将基站信号引入室内&#xff0c;并对信号进行分布和覆盖的系统。它主要用于解决室内通信信号覆盖不足的问题&#xff0c;提高室内通信质量。室分系统通常由信号源、传输系统、分布系统和天线等部分组成&#xff0c;可以实现对…

java计算机毕设课设—JSP企业快信系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; java计算机毕设课设—JSP企业快信系统(附源码、文章、相关截图、部署视频) 详细的资源获取方式在最下方 JSP企业快信系统是一款专为企业内部及外部通信设计的小型企业通信软件&#xff0c;旨在解决企业在日常沟通中遇到的信息传递不及时、沟通不畅…

火绒安全与国际对手:全面对比与分析

目录 一、产品功能与技术特性对比 火绒安全 360安全卫士 卡巴斯基安全软件 二、市场表现与用户评价 火绒安全 360安全卫士 卡巴斯基安全软件 三、未来挑战与发展 技术与服务对比表格 结语 在数字化时代&#xff0c;网络安全成为了个人和企业面临的主要挑战之一。随着…

数学建模强化宝典(4)fminunc

一、介绍 fminunc 是 MATLAB 中用于求解无约束多变量非线性优化问题的函数。它尝试找到给定函数的最小值点&#xff0c;不需要用户提供函数的导数信息&#xff08;尽管如果提供了导数信息&#xff0c;算法通常会更快更准确地收敛&#xff09;。fminunc 使用的是拟牛顿法&#x…

stm32 8080时序驱动lcd屏幕

PSAM使用的硬件接口 PSAM读时序 PSAM写时序 相关时序 PSAM_RCRx NOR 和PSRAM控制寄存器

Ubuntu/Debian 上删除未使用的软件包

随着时间的推移&#xff0c;Linux 系统可能会有大量不再使用的软件包。这些软件包会占用大量磁盘空间&#xff0c;并可能降低系统的整体性能。 本指南将向您展示如何轻松地删除这些未使用的包。保持系统的干净和高效是很重要的&#xff0c;但是要小心&#xff0c;删除必要的软…