STL模型转点云数据

将STL模型转成点云有许多方法,最简单的应该是直接利用 pcl_mesh2pcd,这个网上有许多教程,直接跑 _exe_程序就行了,不过如果需要自己进行编辑的话可以上GitHub看看代码,个人觉得比较复杂,对我不是特别友好,因此这里记录一下另一个将STL模型转成点云数据的简单方法,参照博客PCL学习(二)三维模型转点云 obj转pcd—-PCL实现,最少只需要四行代码就行了。

  • 系统:Windows10 x64
  • 编程软件:Visual Studio 2022 current
  • 语言:C、C++
  • 包含内容:PCL 1.11.0(包括Boost、Eigen、FLANN、Qhull、VTK、OpenNI2)

直接贴代码

pcl::PolygonMesh mesh;
pcl::io::loadPolygonFile("D:/MNI152_1mm_value1/all1_anat.stl", mesh);
pcl::PointCloud<pcl::PointXYZ>::Ptr stl_cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::fromPCLPointCloud2(mesh.cloud, *stl_cloud);

原博客中是将 obj_转为 _pcd,不过 polygonmesh类型数据也可以读取 stl_文件,因此也可以用来将 _stl_转为 _pcd,如果单个面的点过少,原博客还提供了进一步的方法( pcl_mesh_sampling)。

另外还在网上看到了从多个视角将stl模型转换为点云的代码,核心是利用 renderViewTesselatedSphere函数,具体可以参照博客3D视觉学习之路——基于pcl从CAD模型中获取单视角点云,不过由于视角固定,除非更改函数内部代码,否则只能从固定的几十个视角获取点云。

最后有一点,编译的时候可能会出现PCL有关的 _C4996_错误,解决方法可以在网上找到很多,我的情况是之前还能顺利编译,突然就出现这个错误了,在重启了一遍VS之后就解决了。

Original: https://blog.csdn.net/st_dog/article/details/122193880
Author: 绅士007
Title: STL模型转点云数据

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/533547/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球