点云学习笔记3——读取点云文件、进行统计滤波/直通滤波后可视化

一、统计滤波

#include <iostream>
#include <pcl/point_cloud.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/common/common_headers.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h> 
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/statistical_outlier_removal.h>
#include <pcl/registration/gicp.h>
#include <pcl/registration/icp.h> 
#include <pcl/features/normal_3d.h>
#include <pcl/kdtree/kdtree_flann.h>using namespace std;int main()
{// 加载源点云pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_source(new pcl::PointCloud<pcl::PointXYZ>());pcl::io::loadPCDFile<pcl::PointXYZ>("D:\\PPCL\\room_scan1.pcd", *cloud_source);cout << "点云加载完成!" << endl;// 创建统计滤波器对象pcl::StatisticalOutlierRemoval<pcl::PointXYZ> staticOR;staticOR.setInputCloud(cloud_source);staticOR.setMeanK(50);   // 设置统计平均点数,增加MeanK的值会使每个点的邻域变大staticOR.setStddevMulThresh(5);   // 设置标准差倍数阈值,增加StddevMulThresh的值会减少被移除的点的数量// 进行滤波pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>());staticOR.filter(*cloud_filtered);//cloud_filtered 将用于存储经过离群点移除处理后的点云数据。cloud_source = cloud_filtered;cout << "点云滤波完成!" << endl;//可视化pcl::visualization::CloudViewer viewer("Viewer");viewer.showCloud(cloud_source); // 直接显示点云// 保存点云到文件pcl::io::savePCDFileBinary("D:\\PPCL\\room_scan1121.pcd", *cloud_source);cout << "滤波后点云文件已经保存" << endl;system("pause");return 0;
}

二、直通滤波,滤波掉x、y、z轴上限制范围外的点云数据 

#include <iostream>
#include <pcl/point_cloud.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/common/common_headers.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h> 
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/statistical_outlier_removal.h>
#include <pcl/filters/passthrough.h>using namespace std;int main()
{// 加载源点云pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_source(new pcl::PointCloud<pcl::PointXYZ>());pcl::io::loadPCDFile<pcl::PointXYZ>("F:\\实验数据1022\\24.10.22\\4.pcd", *cloud_source);cout << "点云加载完成!" << endl;// 显示点云中的点的数量cout << "点云中的点的数量: " << cloud_source->size() << endl;// 设置滤波器对象pcl::PassThrough<pcl::PointXYZ> pass;pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);pass.setInputCloud(cloud_source);            //设置输入点云pass.setFilterFieldName("z");         //设置过滤时所需要点云类型的Z字段pass.setFilterLimits(550,650);        //设置在过滤字段的范围pass.filter(*cloud_filtered);//cloud_source = cloud_filtered;//可视化pcl::visualization::CloudViewer viewer("Viewer");viewer.showCloud(cloud_filtered); // 直接显示点云// 保存点云到文件pcl::io::savePCDFileBinary("F:\\实验数据1022\\24.10.22\\444.pcd", *cloud_filtered);cout << "滤波后点云文件已经保存" << endl;cout << "点云中的点的数量: " << cloud_filtered->size() << endl;system("pause");return 0;
}

 

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

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

相关文章

【笔面试常见题:三门问题】用条件概率、全概率和贝叶斯推导

1. 问题介绍 三门问题&#xff0c;又叫蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;&#xff0c;以下是蒙提霍尔问题的一个著名的叙述&#xff0c;来自Craig F. Whitaker于1990年寄给《展示杂志》&#xff08;Parade Magazine&#xff09;玛丽莲沃斯莎凡特&#x…

C++ | Leetcode C++题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; class Solution { public:int countArrangement(int n) {vector<int> f(1 << n);f[0] 1;for (int mask 1; mask < (1 << n); mask) {int num __builtin_popcount(mask);for (int i 0; i < n; i) {if (mask &am…

windows临时安装solr

下载地址 https://dlcdn.apache.org/lucene/solr/8.11.4/solr-8.11.4.zip jdk1.8 解压&#xff0c;进入bin目录&#xff0c;打开cmd&#xff0c;执行这个命令就启动好了 .\solr.cmd start PS D:\xxxxx\solr-8.11.4\bin> .\solr.cmd start Java HotSpot(TM) 64-Bit Serv…

新160个crackme - 089-fornixcrackme1

运行分析 需要破解Name和Serial PE分析 ASM程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida搜索找到关键字符串 动态分析关键函数&#xff0c;逻辑如上图&#xff0c;通过Name计算得到char_1&#xff0c;亦或后对比Serial&#xff0c;相等则返回成功信息 分析…

【测试平台】打包 子节点ios环境配置

主要记录如何配置ios打包机环境&#xff0c;ios环境相对来说比较简单的&#xff0c;研发配置好证书可以本地打包&#xff0c;接入流程比较简单了。 打包机系统升级 1.升级mac OS系统 一般升级好几个小时&#xff0c;可以晚上下载好 2.下载xcode并安装 Appstroe 下载安装xco…

【AIGC】深入探索『后退一步』提示技巧:激发ChatGPT的智慧潜力

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;“后退一步”技巧介绍技巧目的 &#x1f4af;“后退一步”原理“后退一步”提示技巧与COT和TOT的对比实验验证 &#x1f4af;如何应用“后退一步”策略强调抽象思考引导提…

C语言——八股文(笔试面试题)——持续更新

目录 更新日历&#xff1a; 1、 什么是数组指针&#xff0c;什么是指针数组&#xff1f; 2、 什么是位段&#xff0c;什么是联合体 3、 什么是递归&#xff0c;什么是回调&#xff1f; 4、 什么是越界&#xff0c;什么是溢出&#xff1f; 5、#define和typedef的区别&#x…

Java后端面试内容总结

先讲项目背景&#xff0c;再讲技术栈模块划分&#xff0c; 讲业务的时候可以先讲一般再特殊 为什么用这个&#xff0c;好处是什么&#xff0c;应用场景 Debug发现问题/日志发现问题. QPS TPS 项目单元测试&#xff0c;代码的变更覆盖率达到80%&#xff0c;项目的复用性高…

oracle insert忽略主键冲突,忽略重复记录

在INSERT语句中使用IGNORE_ROW_ON_DUPKEY_INDEX提示&#xff1a; INSERT /* IGNORE_ROW_ON_DUPKEY_INDEX(table_name, index_name) */ INTO table_name(column1, column2) VALUES(value1, value2); 或 INSERT /* IGNORE_ROW_ON_DUPKEY_INDEX(table_name(column_name)) */ …

kubeadm快速自动化部署k8s集群

目录 一、准备环境 二、安装docker--三台机器都操作 三、使用kubeadm部署Kubernetes 在所有节点安装kubeadm和kubelet、kubectl 配置启动kubelet(所有主机) master节点初始化 Mater重新完成初始化 执行Master初始化后的提示配置 配置使用网络插件 创建flannel网络 …

TI-Trends in Immunotherapy

文章目录 一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询 一、征稿简介 二、重要信息 期刊官网&#xff1a;https://ais.cn/u/3eEJNv 三、服务简述 Trends in Immunotherapy 是一本开放获取的同行评审期刊&#xff0c;涵盖与所有基于免疫系统的领域相关的各…

springboot-starter 整合feignClient

项目结构图 引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…

Python+Appium+Pytest+Allure自动化测试框架-安装篇

文章目录 安装安装ADT安装NodeJs安装python安装appium安装Appium Server&#xff08;可选&#xff09;安装Appium-Inspector&#xff08;可选&#xff09;安装allure安装pytest PythonAppiumPytestAllure框架的安装 Appium是一个开源工具&#xff0c;是跨平台的&#xff0c;用于…

【Spring IoC】容器和IoC介绍以及IoC程序开发的优势

文章目录 Spring 是什么什么是容器什么是 IoCIoC 介绍传统程序开发解决方法IoC 程序开发IoC 的优势 在前面中&#xff0c;我们学习了 Spring Boot 和 Spring MVC 的开发&#xff0c;可以完成一些基本功能的开发了&#xff0c;但是什么是 Spring 呢&#xff1f;Spring&#xff0…

【眼疾识别】Python+深度学习+人工智能+算法模型训练+TensorFlow+CNN卷积神经网络算法

一、项目介绍 开发眼疾识别系统时&#xff0c;我们选择Python作为核心编程语言&#xff0c;并依托深度学习技术&#xff0c;特别是利用TensorFlow框架来构建ResNet50卷积神经网络。该系统通过训练包含四种眼疾图像的数据集——白内障、糖尿病性视网膜病变、青光眼和正常眼睛—…

2024前端面试训练计划-高频题-网络基础篇

具体内容结构&#xff08;可作为回答思路&#xff09;为&#xff1a;简略回答&#xff0c;详细回答 1、HTTP状态码 简略回答 HTTP 的状态码被分为五类: 1xx: 表示目前是协议处理的中间状态&#xff0c;还需要后续操作。2xx: 表示成功状态。3xx: 重定向状态&#xff0c;资源…

Chrome与夸克谁更节省系统资源

在当今数字化时代&#xff0c;浏览器已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;我们都依赖于浏览器来访问互联网。然而&#xff0c;不同的浏览器在性能和资源消耗方面存在差异。本文将探讨Chrome和夸克两款浏览器在系统资源消耗方面的表现…

让Chrome⽀持⼩于12px 的⽂字⽅式有哪些?区别?

让Chrome⽀持⼩于12px 的⽂字⽅式有哪些&#xff1f;区别&#xff1f; 1、背景 Chrome 中⽂版浏览器会默认设定⻚⾯的最⼩字号是12px&#xff0c;英⽂版没有限制 原由 Chrome 团队认为汉字⼩于12px就会增加识别难度 • 中⽂版浏览器 与⽹⻚语⾔⽆关&#xff0c;取决于⽤户在C…

Word首行空格不显示空格符号问题

Word段落首行空格设置指南 问题描述 在Word中编辑文档时&#xff0c;有时会遇到段落首行敲击空格键却不显示空格的问题。这通常与Word的自动更正设置有关。 解决方法 要解决此问题&#xff0c;需要调整Word的自动更正设置。具体步骤如下&#xff1a; 打开Word的"自动更…

极简实现酷炫动效:Flutter隐式动画指南第二篇之一些酷炫的隐式动画效果

目录 前言 1.弹性放大按钮效果 2.旋转和缩放组合动画 3.颜色渐变背景动画 4.缩放进出效果 前言 在上一篇文章中&#xff0c;我们介绍了Flutter中的隐式动画的一些相关知识&#xff0c;在这篇文章中,我们可以结合多个隐式动画 Widget 在 Flutter 中创建一些酷炫的视觉效果&…