可视化网格与其点云之间的区别

gui*_*gui 4 3d mesh point-cloud-library

我正在使用PCL和Mesh编辑器(MeshLab).我有兴趣将我的网格导入PCL进行一些3D处理.

我有一个网格模型.当我用代码加载模型时:

PointCloud<PointXYZRGBA>::Ptr cloud (new PointCloud<PointXYZRGBA> ()); 
pcl::io::loadPLYFile<pcl::PointXYZRGBA>(argv[1], *cloud); 
Run Code Online (Sandbox Code Playgroud)

我把它想象成一个点云:

visualization::PCLVisualizer viewer ("Model"); 
viewer.addPointCloud (cloud,"model"); 
Run Code Online (Sandbox Code Playgroud)

几何体与直接加载和可视化网格物体不同:

viewer.addModelFromPLYFile(argv[1], "model"); 
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,我完全像使用网格编辑器一样可视化模型,但在第一种情况下,我可视化它的变形版本,即球体就像椭圆体一样.这里发生了什么?也许我应该手动采样网格?

如果我在观察器中添加两个模型,差异非常明显,点云比网格小,并且它遭受了一些奇怪的变形(请参见附图)

非常感谢你

ply http://www.pcl-users.org/file/n4028582/meshply.png

gui*_*gui 5

如果有人有兴趣,这就是答案:

PointCloud<PointXYZRGBA>::Ptr cloud (new PointCloud<PointXYZRGBA> ());
pcl::PolygonMesh triangles;
pcl::io::loadPolygonFilePLY(argv[1], triangles);
pcl::fromROSMsg(triangles.cloud, *cloud);
Run Code Online (Sandbox Code Playgroud)

此代码打开一个PLY文件,并将其转换为具有正确形状的点云.