条件滤波调试出现显示vector subscript out of range错误
在进行点云滤波的代码调试的时候,显示vector subscript out of range错误,尝试了很多解决方法都没弄好,不知道是不是跟点云的有序和无序是否有关?代码如下:#include "stdafx.h"
#include <iostream>
#include <pcl/point_types.h>
#include <pcl/filters/radius_outlier_removal.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/cloud_viewer.h>
using namespace std;
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::io::loadPCDFile ("cloud_tBF01_inliers.pcd", *cloud);
pcl::visualization::CloudViewer viewer1("Cloud before filtering");
viewer1.showCloud(cloud);
pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;
// 创建滤波器
outrem.setInputCloud(cloud);
outrem.setRadiusSearch(0.008);
outrem.setMinNeighborsInRadius (2);
// 应用滤波器
outrem.filter (*cloud_filtered);
// 显示滤波后的点云
pcl::visualization::CloudViewer viewer2("Cloud after filtering");
viewer2.showCloud(cloud_filtered);
pcl::PCDWriter writer;
writer.write<pcl::PointXYZ>("cloud_tBF01_gh.pcd",*cloud_filtered,false);
system("pause");
return 0;
}
页:
[1]