其他分享
首页 > 其他分享> > 利用统计滤波方法去除空中漂浮物 以及去噪

利用统计滤波方法去除空中漂浮物 以及去噪

作者:互联网

//统计滤波
//#include "pch.h"
//#include <iostream>
//#include <pcl/io/pcd_io.h>
//#include <pcl/point_types.h>
//#include <pcl/filters/statistical_outlier_removal.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>);   // 定义读取对象  
//	pcl::PCDReader reader;  // 读取点云文件  
//	reader.read<pcl::PointXYZ> ("F://cout-saved//back_1.pcd", *cloud);   
//	std::cerr << "Cloud before filtering: " << std::endl;  
//	std::cerr << *cloud << std::endl;   
//	// 创建滤波器,对每个点分析的临近点的个数设置为50 ,并将标准差的倍数设置为1  这意味着如果一   
//	//个点的距离超出了平均距离一个标准差以上,则该点被标记为离群点,并将它移除,存储起来  
//	pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;   //创建滤波器对象  
//	sor.setInputCloud (cloud);                            //设置待滤波的点云  
//	//sor.setMeanK (100);                               //设置在进行统计时考虑查询点临近点数  
//	//sor.setStddevMulThresh (1.0);   //back_1_inliers.pcd                   //设置判断是否为离群点的阀值  
//
//	sor.setMeanK (250);                               //设置在进行统计时考虑查询点临近点数  
//	//sor.setStddevMulThresh (1.0); //2 
//	//sor.setStddevMulThresh(2.0);//3
//	//sor.setStddevMulThresh(0.6);//4
//	sor.setStddevMulThresh(0.3);//4
//	sor.filter (*cloud_filtered);                    //存储   
//	std::cerr << "Cloud after filtering: " << std::endl; 
//	std::cerr << *cloud_filtered << std::endl;   
//	pcl::PCDWriter writer;  writer.write<pcl::PointXYZ> ("F://cout-saved//back_1_inliers5.pcd", *cloud_filtered, false);   
//	sor.setNegative (true);  
//	sor.filter (*cloud_filtered);  
//	writer.write<pcl::PointXYZ> ("F://cout-saved//back_1_outliers5.pcd", *cloud_filtered, false);   
//	return (0);
//}

 

结果显示:

标签:滤波,漂浮物,sor,setStddevMulThresh,pcl,去除,filtered,include,cloud
来源: https://blog.csdn.net/m0_37957160/article/details/100141423