本文主要是介绍《PCL点云库学习VS2010(X64)》Part 21 VTK6.2+VS2013 利用PCL读取ply格式网格曲面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《PCL点云库学习&VS2010(X64)》Part 21 VTK6.2+VS2013 利用PCL读取ply格式网格曲面
写这个主要是在三维网格重构后用的,利用vtk显示点云数据,对ply格式是有要求的,有的ply格式纯粹就是点云数据,也可以理解为是pcd格式的电云数据。
但是在使用Crust算法生成曲面后,在Meshlab中渲染出来的效果才能出现曲面,在CloudCompare中却是零碎的曲面,就和破面一样,它里面有没有其他的高级渲染功能我就不知道了,试过但是没有找到。
然后就自己去网上找了一个例子来尝试自己的想法。
#include <pcl/common/io.h>
#include <pcl/io/io.h>
#include <pcl/point_cloud.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/ply/ply.h>
#include <pcl/console/parse.h>
#include <iostream>
#include <string>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/PolygonMesh.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/vtk_lib_io.h>
//#include <pcl/io/vtk_lib_io.hpp>
#include <pcl/io/vtk_io.h>#include <stdlib.h>
using namespace pcl;
using namespace pcl::io;
using namespace pcl::console;using namespace std;int
main(int argc, char** argv)
{//pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);PolygonMesh cloud;//boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer;pcl::visualization::PCLVisualizer viewer("PCL PolygonMesh");string filename = "Output_.ply";pcl::io::loadPolygonFilePLY(filename, cloud);viewer.addPolygonMesh(cloud);viewer.setBackgroundColor(0.2, 0.0, 0.0);while (!viewer.wasStopped()){viewer.spinOnce();}return 0;
}
上面的头文件有的是多余的,自己看着删除,不删也没关系。
还有自己的Output_.ply是Power Crust算法得到的结果,也就是上面所说的曲面,放在不同软件里效果不同。
看看该程序效果:
再分别看看cloudcompare(左图)和meshlab(右图)中的效果:
这个程序经过修改后可以得到以下的效果,结合PCL,将效果展示出来,也可以根据这个做出MAT的中轴曲面。
效果图:
这篇关于《PCL点云库学习VS2010(X64)》Part 21 VTK6.2+VS2013 利用PCL读取ply格式网格曲面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!