Meshlab读取三维点云、三维点云重建以及三维点云法向量计算

Meshlab是一个强大的三维模型处理的软件,在三维点云的处理方面也十分强大,不仅仅可以用三维点云重构出三维模型,还可以计算出三维点云每个点的法向量,这在逆向工程和基于三维点云的隐式曲面重建中非常有用。

   我的Meshlab的版本是3.3,可以在网上自行下载破解版。

1.Meshlab读取三维点云

第一步:打开Meshlab软件

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第1张图片


第二步:点击File菜单下的ImportMesh导入txt文档,需要选择你的txt文档中XYZ坐标之间的分隔符,导入成功后会显示你的三维点云数据

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第2张图片

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第3张图片

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第4张图片


2.三维点云重建

点击下图图标,弹出右侧图层侧边栏

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第5张图片


然后点击Fiter菜单下Normals,Curtavures and Oreientation下的Smooths normals on a point set计算三维点云的法向量,如下图

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第6张图片


然后设置计算点云法向量的参数,默认就好,如有需要可以自行设置,点击Apply等计算完成然后点击Close关闭对话框

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第7张图片


计算完点击法向量之后,点击Filter菜单下Remeshing Simplication and Reconstruction下的Surface Reconstruction:Ball Pivoting进行三维点云重建

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第8张图片


然后设置三维点云重建参数,默认就好,也可以自行设置,点击Apply等重建完成,点击close关闭对话框

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第9张图片


然后点击下列图标显示重建的三维模型,也可以设置光照等其他参数

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第10张图片


以下为三维重建结果

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第11张图片



3.法向量的导出与计算

三维点云的法向量的导出与计算有两种方式,一种是在上一节三维重建中我们已经得到了重建后的三维模型,那么每个点都带有法向量,可以直接导出即可,还有一种就是从杂乱的三维点中计算每一个三维点的法向量

3.1从三维模型中导出三维点云中每个点的法向量

接着第二节的步骤,点击File菜单下Export Mesh as 

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第12张图片


然后在接下来的对话框中选择xyz格式

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第13张图片


然后在 接下来的对话框中勾选Normal就可以生成文本格式的三维点以及三维点法向量

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第14张图片


以下为文本格式的三维点坐标以及三维点法向量的结果

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第15张图片


3.2 直接从三维散乱点云中生成三维点的法向量

然后点击Filter菜单下Normals,Curtavures and Oreientation下的Compute normals for point set计算三维点云的法向量,如下图

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第16张图片


在弹出来的对话框可以自行设置参数,先Apply然后再Close

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第17张图片


法向量的导出与3.1中的一样,可以自行参考。


以下为三维点云以及点云的法向量的可视化结果,点云表示为红色的点,法向量表示为绿色的线段

Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第18张图片Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第19张图片Meshlab读取三维点云、三维点云重建以及三维点云法向量计算_第20张图片

你可能感兴趣的:(OpenGL,C++,计算机图形图像)