赞
踩
先声明,点云的多边形求取必须在平面点云的基础上进行,可以把点云投影到平面,也可以直接把Z轴全部变为0,或者直接去掉Z轴数据不要来抽取平面点云
凸多边形边界:
- import open3d as o3d
- import numpy as np
- from scipy import spatial
- import matplotlib.pyplot as plt
-
-
- pcd = o3d.io.read_point_cloud("xxx.pcd")
- # 可视化点云
- o3d.visualization.draw_geometries([pcd])
- # 获取点云三维坐标
- points = np.asarray(pcd.points)
- # 获取点云XY坐标
- point2d = np.c_[points[:, 0], points[:, 1]]
- # 获取平面点云的凸多边形边界
- ch2d = spatial.ConvexHull(point2d)
- # 可视化凸多边形边界结果
-
-
- plt.figure()
- # 方法二:直接可视化
- ax = plt.subplot(aspect="equal")
- spatial.convex_hull_plot_2d(ch2d, ax=ax)
- plt.show()
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
凹多边形边界: 需要安装的 pclpy 的python whl 安装文件 在我的另外一篇文章中有下载链接,麻烦自己寻找下载
-
- from pclpy import pcl
-
- # -------------------------加载点云数据------------------------------
- cloud = pcl.PointCloud.PointXYZ()
-
- if pcl.io.loadPCDFile(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。