当前位置:   article > 正文

点云的凹多边形和凸多边形边界获取(附open3d python 代码)_python 点云内围轮廓

python 点云内围轮廓

先声明,点云的多边形求取必须在平面点云的基础上进行,可以把点云投影到平面,也可以直接把Z轴全部变为0,或者直接去掉Z轴数据不要来抽取平面点云

凸多边形边界:

  1. import open3d as o3d
  2. import numpy as np
  3. from scipy import spatial
  4. import matplotlib.pyplot as plt
  5. pcd = o3d.io.read_point_cloud("xxx.pcd")
  6. # 可视化点云
  7. o3d.visualization.draw_geometries([pcd])
  8. # 获取点云三维坐标
  9. points = np.asarray(pcd.points)
  10. # 获取点云XY坐标
  11. point2d = np.c_[points[:, 0], points[:, 1]]
  12. # 获取平面点云的凸多边形边界
  13. ch2d = spatial.ConvexHull(point2d)
  14. # 可视化凸多边形边界结果
  15. plt.figure()
  16. # 方法二:直接可视化
  17. ax = plt.subplot(aspect="equal")
  18. spatial.convex_hull_plot_2d(ch2d, ax=ax)
  19. plt.show()

凹多边形边界:  需要安装的 pclpy 的python whl 安装文件 在我的另外一篇文章中有下载链接,麻烦自己寻找下载

  1. from pclpy import pcl
  2. # -------------------------加载点云数据------------------------------
  3. cloud = pcl.PointCloud.PointXYZ()
  4. if pcl.io.loadPCDFile(
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/764834
推荐阅读
相关标签
  

闽ICP备14008679号