【点云处理技术之PCL】滤波器——直通滤波器(pcl::PassThrough)

2023-11-09

直通滤波器,是直接根据滤波器设定的条件,选择自己所需点云。可以选择保留设定范围内的点云,也可以选择滤除设定范围内的点云,保留或者滤出是由setFilterLimitsNegative进行模式开关的。

代码中,设定z轴的条件,保留z方向范围[0,1]内的点。

#include <iostream>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>

int main(int argc, char **argv)
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);

    // Fill in the cloud data
    cloud->width = 5;
    cloud->height = 1;
    cloud->points.resize(cloud->width * cloud->height);

    for (auto &point : *cloud) //填充点云
    {
        point.x = 1024 * rand() / (RAND_MAX + 1.0f);
        point.y = 1024 * rand() / (RAND_MAX + 1.0f);
        point.z = 1024 * rand() / (RAND_MAX + 1.0f);
    }
    cloud->points[0].z = 1;//为了测试边界条件
    cloud->points[1].z = 0;

    std::cerr << "Cloud before filtering: " << std::endl;
    for (const auto &point : *cloud)
        std::cerr << "    " << point.x << " "
                  << point.y << " "
                  << point.z << std::endl;

    // Create the filtering object
    //设置滤波器对象
    pcl::PassThrough<pcl::PointXYZ> pass;
    pass.setInputCloud(cloud);    //输入点云
    pass.setFilterFieldName("z"); //滤波字段
    //这里只保留 0.0 < z < 1.0的点云
    pass.setFilterLimits(0.0, 1.0); //设置过滤字段的范围
    //setFilterLimitsNegative默认设置为false。如果设置true,则表示setFilterLimits范围内的点滤掉
    //pass.setFilterLimitsNegative (true);
    pass.filter(*cloud_filtered); //执行过滤,并输出到cloud_filtered,但是输入的cloud不会变化

    std::cerr << "Cloud before filtering:cloud " << std::endl;
    for (const auto &point : *cloud)
        std::cerr << "    " << point.x << " "
                  << point.y << " "
                  << point.z << std::endl;

    std::cerr << "Cloud after filtering: cloud_filtered" << std::endl;
    for (const auto &point : *cloud_filtered)
        std::cerr << "    " << point.x << " "
                  << point.y << " "
                  << point.z << std::endl;

    return (0);
}

输出结果如下,可以看到只保留了z值在[0,1]的范围。

Cloud before filtering: 
    0.352222 -0.151883 1
    -0.397406 -0.473106 0
    -0.731898 0.667105 0.441304
    -0.734766 0.854581 -0.0361733
    -0.4607 -0.277468 -0.916762
Cloud before filtering:cloud 
    0.352222 -0.151883 1
    -0.397406 -0.473106 0
    -0.731898 0.667105 0.441304
    -0.734766 0.854581 -0.0361733
    -0.4607 -0.277468 -0.916762
Cloud after filtering: cloud_filtered
    0.352222 -0.151883 1
    -0.397406 -0.473106 0
    -0.731898 0.667105 0.441304

参考:https://pcl.readthedocs.io/projects/tutorials/en/latest/passthrough.html#passthrough

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【点云处理技术之PCL】滤波器——直通滤波器(pcl::PassThrough) 的相关文章

  • 两幅有偏差的影像同坐标的地物不一定一样

    第一幅图上 如果经纬度100 100上是只狗 那么另外一个图上同经纬度不一定有狗了 是有偏差的
  • PCL分割:Conditional Euclidean Clustering官方历程,在自己配置环境上调错

    本人环境 VS2015 PCL1 8 1 1 首先遇到遇到了 无法解析的外部符号 提示和normal estimation等错误 解决办法 打开项目属性页 gt C C gt 预处理器 添加 PCL NO PRECOMPILE 2 erro
  • pcl::getTranslationAndEulerAngles精度缺失问题

    pcl getTranslationAndEulerAngles的功能是根据仿射矩阵计算x y z roll pitch yaw 但发现这种计算的rpy有一定的精度问题 于是进行了实验 一个是从一个四元数 根据eulerAngles计算rp
  • 在ubuntu上安装pcl库并配置vscode使用cmake生成可执行文件

    文章目录 在ubuntu上安装pcl库并配置vscode使用cmake生成可执行文件 先列举一下我踩的坑 一 安装vtk7 1 QT5 12 6 VTK7 1 1 二 安装pcl1 9 1 安装依赖库 安装PCL库 三 使用vscode c
  • PCL分割方法:区域生长分割算法(RegionGrowing)

    转载 有梦想的田园犬 https blog csdn net AmbitiousRuralDog article details 80267519
  • PCL中的区域生长分割(region growing segmentation)

    在本博文中 我主要介绍如何在pcl RegionGrowing类中调用区域增长算法 首先注意一点 这里是region growing segmentation 不是color based region growing segmentatio
  • Pcl粗配准矩阵不唯一

    经过一段时间的调试 发现转换矩阵不唯一 因此要将两个点云的数值减去一个值 使之最小 受到矩阵相乘相加受到的影响最小
  • 射频滤波器分析报告(声表面波滤波器/BAW/超声)

    目录 一 射频芯片技术与产品概述 二 5G时代滤波器需求潜力巨大 三 全球滤波器市场现状 3 1 基站 3 2 手机端 四 射频芯片国内发展情况 4 1 国内射频芯片概况 4 2 国内射频滤波器发展情况 4 3 BAW的重重困难 4 4 终
  • QT+PCL+VS制作点云显示界面(彩色显示xyz点云)

    前言 最近正学习QVTKWidget插件显示点云 参考博文 https blog csdn net wokaowokaowokao12345 article details 51078495 时发现其提供的官方编译样只能例打开XYZRGB的
  • 联合编译OpenCV+PCL+CUDA时需要注意的问题

    最近在写tsdf的程序 同时使用了OpenCV PCL和CUDA 在编译工程的时候发现了不少问题 在这里整理一下 1 cu和cpp文件 global host device 这样开头的cuda程序只能写在cu文件中 kernal lt lt
  • PCL:从法线计算到曲率计算并可视化

    法线求解原理 表面法线是几何体表面的重要属性 在很多领域都有大量应用 例如 在进行光照渲染时产生符合可视习惯的效果时需要表面法线信息才能正常进行 对于一个已知的几何体表面 根据垂直于点表面的矢量 因此推断表面某一点的法线方向通常比较简单 然
  • pcl经典算法60例——所有代码参考链接(开源)

    pcl经典算法60例大集合 方法名称 开源链接 1 打开点云 MFC显示点云 柯西等式的博客 CSDN博客 2 显示法线 PCL计算点云的法线 pcl 法线 Tom Hardy的博客 CSDN博客 3 三角化 PCL学习笔记 点云曲面重建
  • 【点云处理技术之PCL】滤波器——直通滤波器(pcl::PassThrough)

    直通滤波器 是直接根据滤波器设定的条件 选择自己所需点云 可以选择保留设定范围内的点云 也可以选择滤除设定范围内的点云 保留或者滤出是由setFilterLimitsNegative进行模式开关的 代码中 设定z轴的条件 保留z方向范围 0
  • PCL点云库的架构

    1 输入 输出 PCL中所有的处理都是基于点云展开的 利用不同的设备获取点云 存储点云等都是点云处理前后必须做的流程 PCL中有自己设计的内部PCD文件格式 为此 设计读写该格式以及与其他3D文件格式之间进行转化的接口类都是很必要的 目前P
  • Ubuntu14/16 PCL1.7/1.8 opencv2/3/4 编译安装共存

    为了使用cuda和pcl共同编程 而系统带的pcl1 7不带gpu模块 故编译安装pcl完全版 与系统pcl1 7共存 不同分发版本Ubuntu应该没有什么区别 不同版本pcl编译和使用道理也都基本相同 opencv也是一样的道理 PCL
  • 基于PCL的PCA算法实现点云的粗配准

    基于PCL的PCA算法实现点云的粗配准 一 引言 点云粗配准是三维重建和机器视觉中常见的任务之一 在点云数据中 我们需要找到两个或多个点云之间的刚性变换 以使它们对齐 主成分分析 PCA 是一种常用的数据降维和特征提取技术 也可以应用于点云
  • PCL1.8的那些坑!各种编译及使用问题汇总

    在win10上用vs2013编译及使用pcl180遇见了各种坑 这里做个汇总 既是总结 也希望能给后来人引路 1 编译到visualization模块的时候 会有如下语句报错 if pcl visualization getColormap
  • ADS系列 - RLC器件滤波器设计教程1

    相关文章 ADS SystemVue 文章集合页 ADS系列 定向耦合器设计教程1 ADS系列 混频器设计 混频器原理介绍及仿真1 ADS系列 低噪声放大器 LNA 模型下载安装及 LNA仿真设计 Keysight的 SystemVue 介
  • 点云分割介绍

    PCL之点云的分割 参考博客 https www yuque com huangzhongqing pcl kg7wvi peMqz https blog csdn net lizhengze1117 article details 890
  • 如何使用PCL将XYZRGB点云转换为彩色mesh模型

    如何使用PCL将XYZRGB点云转换为彩色mesh模型 最近完成了一个使用RGBD传感器 构建物体模型的小demo 其中有点难的最后一步是如何将获得的物体点云变成彩色mesh模型 效果图如下 从点云变成彩色mesh 其实整体的步骤可以总结如

随机推荐

  • C++和QML之间传输JSON字符串并解析(适用于传数组或其他复杂参数)

    QJsonObject转为QString 发送带此QString的信号 QML中接收到信号后直接用JSON进行解析 QML支持Javascript 自然也支持相应的json解析 同理 可以在QML中将javascript对象先转换成json
  • 这几款好用的数据分析软件推荐给你

    随着互联网和大数据时代的到来 数据分析已成为越来越多公司和个人必备的技能之一 而在进行数据分析时 一个好用 功能齐全的数据分析软件是至关重要的工具 在市场上 有很多不同的数据分析软件可供选择 但其中哪些才是最好的呢 今天我将向大家介绍几款我
  • 手撸代码-链表中的节点每k个一组翻转-牛客

    描述 将给出的链表中的节点每 k k 个一组翻转 返回翻转后的链表 如果链表中的节点数不是 k k 的倍数 将最后剩下的节点保持原样 你不能更改节点中的值 只能更改节点本身 要求空间复杂度 O 1 O 1 例如 给定的链表是1 2 3 4
  • JQuery的链式编程与隐式迭代

  • 华为OD机试真题-投篮大赛【2023.Q1】

    题目内容 你现在是一场采用特殊赛制投篮大赛的记录员 这场比赛由若干回合组成 过去几回合的得分可能会影响以后几回合的得分 比赛开始时 记录是空白的 你会得到一个记录操作的字符串列表 ops 其中ops i 是你需要记录的第i项操作 ops遵循
  • pytorch中一维卷积Conv1d简介

    最近在使用pytorch中的一维卷积来对文本进行处理 进行文本分类任务 查阅了网上相关的博客还有api这里做一个总结 一维卷积 顾名思义就是在一维空间上进行卷积 通常用来处理时序的数据 卷积的过程如下图 进行卷积的数据形状为 batch s
  • IntelliJ IDEA 使用教程

    一 设置入口 1 快捷键 Ctrl Alt S 2 File gt Settings 3 View gt appearance gt Toolbar 单击选中 出现工具栏图标 以后可直接点击它进入设置界面 之后的相关设置后 请点击Apply
  • 列车调度问题PTA

    7 20 列车调度 25 分 火车站的列车调度铁轨的结构如下图所示 两端分别是一条入口 Entrance 轨道和一条出口 Exit 轨道 它们之间有N条平行的轨道 每趟列车从入口可以选择任意一条轨道进入 最后从出口离开 在图中有9趟列车 在
  • Python 正则表达式(完整)-------附LeetCode真题详细解析

    正则表达式 又称规则表达式 Regular Expression 在代码中常简写为regex regexp或RE 是一种文本模式 包括普通字符 例如 a 到 z 之间的字母 和特殊字符 称为 元字符 是计算机科学的一个概念 正则表达式使用单
  • pread

    pread is a system call in Linux that allows reading data from a file descriptor at a specified offset without changing t
  • 面试经典(24)--二叉搜索树和双向链表

    题目描述 输入一棵二叉搜索树 将该二叉搜索树转换成一个排序的双向链表 算法分析 使用后续遍历方法 从10节点开始分析 只要左子树返回最大节点 右子树返回最小节点即可 正常递归无法判定当前是左子树还是右子树 所以参数要假如bool值判定左右子
  • Jmeter教程(二) - 自定义变量模拟多用户

    Jmeter教程 一 入门 Jmeter教程 二 自定义变量模拟多用户 Jmeter教程 三 Linux中使用命令行进行压测 在上一篇文章 Jmeter教程 一 入门 中介绍了Jmeter的基本用法 本文会继续介绍如何使用Jmeter对一个
  • 使用SpringSecurity,Jwt与Redis实现用户认证与授权

    spring security是spring官方比较推荐的用于认证和权限的解决方案 本次将围绕spring security的认证授权 jwt进行学习分享 1 依赖的引入
  • OpenMMLab AI实战营笔记-1

    OpenMMLab AI实战营笔记 1 第一课目录 OpenMMLab AI实战营笔记 1 OpenMMLab简介 安装教程 先安装Pytorch 安装mmcv 安装mmcv lite 安装完成 OpenMMLab简介 OpenMMLab是
  • Linux多线程编程三(互斥锁)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在线程实际运行过程中 我们经常需要多个线程保持同步 这时可以用互斥锁来完成任务 互斥锁的使用过程中 主要有pthread mutex init pthread mutex
  • mui.ajax php,求助!!!关于mui ajax获取不到后台数据

    js代码如下 mui ajax ajax php dataType json 服务器返回json格式数据 type post HTTP请求类型 headers Content Type application json success fu
  • 几种炫酷的加载动画

    动画一 An highlighted block
  • Typora常用快捷键

    Typora常用快捷键 Ctrl 1 一级标题 Ctrl 2 二级标题 Ctrl 3 三级标题 Ctrl 4 四级标题 Ctrl 5 五级标题 Ctrl 6 六级标题 Ctrl 0 段落 Ctrl 提升标题等级 Ctrl 降低标题等级 Ct
  • 什么是微服务?

    什么是微服务 微服务架构风格这种开发方法 是以开发一组小型服务的方式来开发一个独立的应用系统的 其中每个小型服务都运行在自己的进程中 并经常采用HTTP资源API这样轻量的机制来相互通信 这些服务围绕业务功能进行构建 并能通过全自动的部署机
  • 【点云处理技术之PCL】滤波器——直通滤波器(pcl::PassThrough)

    直通滤波器 是直接根据滤波器设定的条件 选择自己所需点云 可以选择保留设定范围内的点云 也可以选择滤除设定范围内的点云 保留或者滤出是由setFilterLimitsNegative进行模式开关的 代码中 设定z轴的条件 保留z方向范围 0