PCL读取PLY文件并显示图像与数据
最近在做点云特征提取,想用法向量提取特征,但是总是运行不出来,只能一步步查看,发现输出PLY点云数据时总出现nan,但是数据是没有变的
- 代码(有些头文件不需要,我只是懒得挑选了)
#include<iostream>
#include<ctime>
#include<vector>
#include<pcl/point_cloud.h>
#include<pcl/kdtree/kdtree_flann.h>
#include <Eigen/Dense>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/filters/radius_outlier_removal.h>
#include <pcl/io/io.h>
#include <pcl/io/obj_io.h>
#include <pcl/PolygonMesh.h>
#include<pcl/ros/conversions.h>
#include <pcl/point_cloud.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/vtk_lib_io.h>//loadPolygonFileOBJ所属头文件;
#include<pcl/features/normal_3d.h>
#include<pcl/features/principal_curvatures.h>
#include<pcl/visualization/cloud_viewer.h>
using namespace std;
using namespace pcl;
using namespace Eigen;
int main()
{
//1.读取点云
pcl::PLYReader reader;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
reader.read("F:/zhoujie/点云配准练习/公开数据集/bunny/bunny/data/bun000.ply", *cloud);
//如果读取成功则会显示点云相关数据
if (cloud->size() > 0)
{
cout << "读取成功" << endl;
cout << cloud->width << endl;
cout << cloud->height << endl;
cout << cloud->size() << endl;
}
for (size_t i = 0; i < cloud->size();++i)
{
cout<< " " << cloud->points[i].x
<< " " << cloud->points[i].y
<< " " << cloud->points[i].z
<< std::endl;
}
//显示
pcl::visualization::CloudViewer viewer("cloud viewer");
viewer.showCloud(cloud);
system("pause");
return 0;
}
2.输出NAN和数字
3.与ply数据对比:经过一长串nan后是下一个数据
4.还有个疑问:nan数据会耽误程序运行吗?怎么才能跳过nan直接运行数据呢?求大神解答!!多谢!!!