open3d 包围体积
一、包围体积
1.1 轴对齐的边界框(AxisAlignedBoundingBox
)
import open3d as o3d
if __name__ == '__main__':
pcd = o3d.io.read_point_cloud('res/bunny.pcd')
pcd.paint_uniform_color([0.5, 0.5, 0.5]) # 渲染颜色
aabb = pcd.get_axis_aligned_bounding_box() # 获得轴对齐边界框
aabb.color = (1, 0, 0) # 渲染颜色
o3d.visualization.draw_geometries([aabb, pcd])
原理
get_axis_aligned_bounding_box()
方法用于获取点云中点的轴对齐边界框(AABB)。轴对齐边界框是一个与坐标轴平行的立方体,用于包围给定的点云或几何体,并且是包围体积最小的边界框之一。
在 Open3D
中,get_axis_aligned_bounding_box()
方法可以应用于点云对象(PointCloud
)或几何对象(TriangleMesh
)。对于点云对象,它将返回一个包围点云的轴对齐边界框。对于几何对象,它将返回一个包围几何体的轴对齐边界框。
调用该方法后,你可以获得轴对齐边界框的最小和最大坐标,以及其中心点和边长等信息。这些信息对于诸如碰撞检测、物体定位和包围盒显示等任务非常有用。
效果
1.2 定向包围框(OrientedBoundingBox
)
import open3d as o3d
if __name__ == '__main__':
pcd = o3d.io.read_point_cloud('res/bunny.pcd')
pcd.paint_uniform_color([0.5, 0.5, 0.5]) # 渲染颜色
obb = pcd.get_oriented_bounding_box() # 定向包围框
obb.color = (0, 1, 0) # 渲染颜色
o3d.visualization.draw_geometries([obb, pcd])
原理
get_oriented_bounding_box()
是 Open3D 中用于获取点云几何体的定向包围盒的方法。定向包围盒是指一个可以沿着任意方向旋转的包围盒,与轴对齐包围盒不同,它的边界框不一定与坐标轴对齐。通过这个方法,可以获取点云数据的定向包围盒,用于描述点云的边界范围及其方向。
效果
二、测试直接使用
import open3d as o3d
if __name__ == '__main__':
pcd = o3d.io.read_point_cloud('res/bunny.pcd')
pcd.paint_uniform_color([0.5, 0.5, 0.5]) # 渲染颜色
aabb = pcd.get_axis_aligned_bounding_box()
aabb.color = (1, 0, 0) # 渲染颜色
obb = pcd.get_oriented_bounding_box()
obb.color = (0, 1, 0)
o3d.visualization.draw_geometries([obb, aabb, pcd])
效果
三、相关资料获取
基础点云学习 基础点云学习:点云上色、大小改变、窗口背景改变、绘制常用类型图形-CSDN博客
百度网盘数据集:
包括 obj
,pcd
,las
,png
,ply
等
百度网盘链接:https://pan.baidu.com/s/1JFxKUk_xMcEmpfBHtuC-Pg
提取码:cpev