Как импортировать файлы .ply, используя PCL io :: loadPLYFile? - PullRequest
0 голосов
/ 18 февраля 2019

При импорте ply-файла в мою программу я получаю сообщение об ошибке, в котором говорится, что что-то пошло не так со следующим сообщением:

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

Я использовал образец файла ply из: https://people.sc.fsu.edu/~jburkardt/data/ply/apple.ply

Я уже пробовал разные файлы ply из разных источников, но ни один из них не работает.При отладке программы io :: loadPLYFile не генерирует правильное pointcloud.Runtime Library для 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 правильно загрузит файлы, как описано в документации http://docs.pointclouds.org/1.3.1/group__io.html

1 Ответ

0 голосов
/ 20 февраля 2019

вывод на консоль - всего лишь предупреждение, как уже предложил @kanstar!Это можно легко игнорировать.Причиной сбоя моей программы в Debug, но не в Release, было то, что моя Visual Studio связалась с неверной библиотечной версией boost, что привело к сбою.Исправление связывания заставило pcl :: NormalEsvaluationOMP работать как ожидалось.

...