《PCL点云库学习&VS2010(X64)》Part 21 VTK6.2+VS2013 利用PCL读取ply格式网格曲面

来源:互联网 发布:淘宝拍立淘不能用了 编辑:程序博客网 时间:2024/05/19 17:49

《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;intmain(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的中轴曲面。

效果图:


0 0
原创粉丝点击