关闭

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

标签: plyPCLPowerCrustVTK
2004人阅读 评论(2) 收藏 举报
分类:

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

效果图:


1
0
查看评论

PLY文件读取与显示

用OpenGL写了一份读取PLY文件并显示的代码,支持以下关键字:  ply/format/element vertex/property/element face/end_header 以及数据类型:  char(int8)/uchar(uint8)/short(int1...
  • u010281174
  • u010281174
  • 2015-04-19 18:53
  • 4878

PCL读取与保存点云文件

#include #include #include int main (int argc, char** argv) { pcl::PointCloud::Ptr cloud (new pcl::PointCloud); if (pcl::io::loadPCDFile (&qu...
  • breeze5428
  • breeze5428
  • 2014-05-19 16:54
  • 5177

pcl:三维模型obj格式转成pcl常用点云处理格式.pcd+matlab:.ply<->.pcd+其他.stl,.obj,.ply等三维格式互相转化方法

代码: #include #include #include #include #include #include //loadPolygonFileOBJ所属头文件; using namespace pcl; int main() { pcl::PolygonMesh mesh; pc...
  • baidu_26408419
  • baidu_26408419
  • 2016-12-29 19:07
  • 3953

PCL中将PCD文件转换成PLY文件

转载请注明出处:http://my.csdn.net/ye_shen_wei_mian PCL中的常用的点云存储文件为.pcd文件,但是很多场合下使用的点云存储文件为.ply文件,特别是要在meshlab中查看的时候。 PCL中有相应的类PLYWriter可以帮助我们实现从.pcd文件到.ply...
  • ye_shen_wei_mian
  • ye_shen_wei_mian
  • 2015-12-21 16:25
  • 4830

PCL 加载并显示三角网格模型的PLY文件

  • 2015-05-03 21:59
  • 952B
  • 下载

pcl 1.8.0(5) VTK编译

pcl1.8.0源码编译的第5步:VTK源码编译和配置
  • rs_huangzs
  • rs_huangzs
  • 2016-03-10 15:42
  • 1628

《PCL点云库学习&VS2010(X64)》Part 6 VTK6.2+VS2013+Qt5.5 测试VTK基于VS2013的Qt程序之PCLViewer

Part 6 VTK6.2+VS2013+Qt5.5 测试VTK基于VS2013的Qt程序之PCLViewer                           ...
  • sinat_24206709
  • sinat_24206709
  • 2016-05-25 22:48
  • 1948

PCL+QVTK点云可视化

  • 2016-11-27 00:04
  • 1.01MB
  • 下载

VTK修炼之道49:图形基本操作进阶_网格平滑(点云的曲面重建技术)

1.网格平滑 现代扫描技术的发展使得获取点云数据不再困难,通过曲线重建技术可以获取表面网格来表示各种复杂的实体。但是点云数据中往往存在噪声,这样得到的重建网格通常都需要进行平滑处理。 拉普拉斯平滑是一种常用的网格平滑算法。该方法的原理比较简单,如下图所示: 将每个点用其邻域点的...
  • shenziheng1
  • shenziheng1
  • 2017-02-03 19:30
  • 1339

ply格式点云在PCL中显示

PCL点云的显示首先要安装PCL,我的环境是VS2013,安装包大约306M,因为之前找到的一个安装包不全,我卸载了重新安装了全的,要不然很多函数都用不了,这个一定得注意。 安装PCL后,要配置电脑的环境变量,然后在VS里添加属性表(记得属性表里的相应位置也要改成自己的路径),就可以使用PCL的函数...
  • qq_28713863
  • qq_28713863
  • 2017-06-11 20:43
  • 853
    个人资料
    • 访问:165230次
    • 积分:3109
    • 等级:
    • 排名:第13242名
    • 原创:143篇
    • 转载:25篇
    • 译文:1篇
    • 评论:116条
    最新评论