如何使用pcl io :: loadplyfile导入.ply文件



在将ply文件导入我的程序时,我会收到错误消息,说以下消息出现问题:

C:Users...dataapple.ply:8: property 'list uint8 int32 vertex_indices' of element 'face' is not handled

我从以下方式使用了一个示例ply文件:

我已经尝试了来自不同来源的不同ply文件,但它们都没有用。调试程序时,io :: loadplyfile不会生成有效的点云。PCL的运行时库和我的程序相同。

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <pcl/search/kdtree.h>
#include <pcl/features/normal_3d_omp.h>
#include <pcl/surface/marching_cubes_rbf.h>
using namespace pcl;
using namespace std;
int
  main (int argc, char** argv)
 {
  PointCloud<PointXYZ>::Ptr cloud (new PointCloud<PointXYZ>);
  std::cout << "Start Debug?" << std::endl;
  std::cin.ignore();
  if(io::loadPLYFile<PointXYZ> (argv[1], *cloud) == -1){
    cout << "ERROR: couldn't find file" << endl;
    return (1);
  } else {
    cout << "loaded" << endl;
    NormalEstimationOMP<PointXYZ, Normal> ne;
    search::KdTree<PointXYZ>::Ptr tree1 (new search::KdTree<PointXYZ>);
    tree1->setInputCloud (cloud);
    ne.setInputCloud (cloud);
    ne.setSearchMethod (tree1);
    ne.setKSearch (20);
    PointCloud<Normal>::Ptr normals (new PointCloud<Normal>);
    ne.compute (*normals);

我希望pcl函数io :: loadPlyFile能够按照文档中所述正确加载文件

正如@kanstar已经建议的那样,控制台输出只是一个警告!它很容易被忽略。我的程序崩溃了,但没有发布时,我的Visual Studio链接到了错误的Boost库版本,导致了崩溃。固定链接使PCL :: normalimatimationomp符合预期的工作。

相关内容

  • 没有找到相关文章

最新更新