首页 > 其他分享 >点云学习笔记3——读取点云文件、进行统计滤波/直通滤波后可视化

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

时间:2024-10-29 15:16:42浏览次数:5  
标签:PointCloud source 可视化 pcl 点云 filtered include cloud 通滤波

一、统计滤波

#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;
}

 

标签:PointCloud,source,可视化,pcl,点云,filtered,include,cloud,通滤波
From: https://blog.csdn.net/qq_64095888/article/details/143321872

相关文章

  • Rethinking Network Design and Local Geometry in Point Cloud:A Simple Residual ML
    此内容是论文总结,重点看思路!!文章概述本文提出了一种用于点云分析的简单残差MLP网络(PointMLP),通过省略复杂的几何特征提取器,仅采用残差MLP和轻量化的几何仿射模块,便能高效地提取点云特征,实现优异的分类性能。PointMLP在推理速度和准确性上优于许多现有方法,提供了一种更加高效的......
  • 智慧港口大屏可视化产品原型设计
    全球贸易的快速发展和技术的不断进步,港口作为国际贸易的重要枢纽,其运营效率和管理水平直接影响到全球供应链的顺畅。智慧港口的概念应运而生,旨在通过新一代信息技术,将港口相关业务和管理创新深度融合,实现港口的高效、安全、便捷、绿色和可持续发展。本文将详细介绍一款智慧港口......
  • 毕业设计:python哔哩哔哩数据可视化分析系统 B站 bilibili数据 Flask框架 Echarts可视
    毕业设计:python哔哩哔哩数据可视化分析系统B站bilibili数据Flask框架Echarts可视化(源码)✅1、项目介绍技术栈:python语言、Flask框架、Echarts可视化、MySQL数据库、词云图、HTML2、项目界面(1)系统首页—数据概况(2)B站评论弹幕分析(3)B站作者分析(4)B站视频可视化分......
  • 毕业设计:python车牌识别+车辆管理+计费系统+可视化大屏+Django框架(源码)✅
    毕业设计:python车牌识别+车辆管理+计费系统+可视化大屏+Django框架(源码)✅1、项目介绍技术栈:Python语言、Django框架、MySQL数据库、Echarts可视化、车牌识别、停车场管理、停车收费、HTML亮点功能:[1]用户管理,可增加月卡,季卡,半年卡,年卡,临时停车等;[2]可配置停车场停车......
  • 大数据项目-python基于Spark实现的微博数据可视化分析
    《[含文档+PPT+源码等]精品python基于Spark实现的微博数据可视化分析》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog后台管理系统......
  • 大数据项目-基于Django实现的二手房数据可视化分析与价格预测
    《[含文档+PPT+源码等]精品基于Django实现的二手房数据可视化分析与价格预测》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog后台......
  • 基于Pyecharts的数据可视化开发(二)调用通义千问api分析爬虫数据
            上一篇博客做了关于“广州市2023年天气情况”的数据爬取,并保存为.csv文件。下一步是想用生成的.csv文件,直接调用大模型api进行分析,得出结论。通过调研,阿里云的通义千问大模型qwen-long可以实现对文件数据的分析。        通义千问大模型提供了API,可......
  • sqlplus可视化设置
    全局设置SETHEADINGOFF命令用于关闭查询结果的列标题(即字段名)的显示SETLINESIZE99999命令用于设置显示行的宽度SETPAGESIZE300命令用于设置每页可以显示的行数,这个设置对于控制查询结果的分页显示非常有用,特别是当你将结果输出到分页设备(如打印机)或当结果集非常大,你......
  • PCL 计算点云重叠区域的均值标准差
    目录一、概述1.1原理1.2实现步骤1.3应用场景二、代码实现2.1关键函数2.1.1计算均值和标准差的函数2.2完整代码三、实现效果PCL点云算法汇总及实战案例汇总的目录地址链接:PCL点云算法与项目实战案例汇总(长期更新)一、概述        在点云配准中,评估配准......
  • PCL 获取对齐点云之间的差异
    目录一、概述1.1原理1.2实现步骤1.3应用场景二、代码实现2.1关键函数2.1.1提取差异点云的函数2.1.2点云可视化函数2.2完整代码三、实现效果3.1原始点云3.2处理后点云PCL点云算法汇总及实战案例汇总的目录地址链接:PCL点云算法与项目实战案例汇总(长期更新)一、......