标签:07 viewer 滤波 sor pcl 点云 include cloud points
1.统计滤波,去除离群点
#include <pcl\filters\\statistical_outlier_removal.h> #include <iostream> #include <pcl\io\pcd_io.h> #include <pcl\point_types.h> #include <pcl\visualization\cloud_viewer.h> int main() { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); if (pcl::io::loadPCDFile<pcl::PointXYZ>("F:\\BaiduNetdiskDownload\\pcl\\desk.pcd", *cloud) == -1) { PCL_ERROR("Couldn't read file rabbit.pcd\n"); return(-1); } std::cout << "Loaded:" << cloud->width*cloud->height << "data points from test_pcd.pcd with the following fields:" << std::endl; /*for (size_t i = 0; i < cloud->points.size(); ++i) { std::cout << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << " " << std::endl; }*/ // 统计滤波 // 创建滤波器,对每个点分析的临近点的个数设置为50 ,并将标准差的倍数设置为1 这意味着如果一 // 个点的距离超出了平均距离一个标准差以上,则该点被标记为离群点,并将它移除 pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor; // 创建滤波器对象 sor.setInputCloud(cloud); // 设置待滤波的点云 sor.setMeanK(50); // 设置在进行统计时考虑查询点临近点数 sor.setStddevMulThresh(1); // 设置判断是否为离群点的阀值 sor.filter(*cloud); // 过滤 // 存储 pcl::io::savePCDFileBinary("desk-sor.pcd", *cloud); // 显示 pcl::visualization::CloudViewer viewer("cloud viewer"); viewer.showCloud(cloud); while (!viewer.wasStopped()) { } system("pause"); return 0; }View Code
标签:07,viewer,滤波,sor,pcl,点云,include,cloud,points 来源: https://www.cnblogs.com/zhaopengpeng/p/15568834.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。