点云AABB/OBB包围盒 (附open3d python代码)

点云AABB/OBB包围盒 (附open3d python代码)_第1张图片点云AABB/OBB包围盒 (附open3d python代码)_第2张图片

AABB 包围盒: AABB 包围盒是与坐标轴对齐的包围盒, 简单性好, 
 紧密性较差(尤其对斜对角方向放置的瘦长形对象, 采用AABB, 
 将留下很大的边角空隙, 导致大量没必要的包围盒相交测试)。

 
OBB 包围盒: Oriented Bounding Box,有向包围盒;
OBB 碰撞检测方法紧密性是较好的, 
可以大大减少参与相交测试的包围盒的数目, 
因此总体性能要优于AABB 和包围球, 并且实时性程度较高。
当物体发生旋转运动后, 只需对OBB 进行同样的旋转即可。
因此, 对于刚体间的碰撞检测, OBB 不失为一种较好的选择。
OBB比AABB更加逼近物体,能显著减少包围体的个数


# coding:utf-8
import numpy as np
import open3d as o3d
print("->正在加载点云... ")
pcd = o3d.io.read_point_cloud("gongjian1.pcd")
print(pcd)

print("->正在计算点云轴向最小包围盒...")
aabb = pcd.get_axis_aligned_bounding_box()
aabb.color = (1, 0, 0)
print("->正在计算点云最小包围盒...") 
obb = pcd.get_oriented_bounding_box()
obb.color = (0, 1, 0)
o3d.visualization.draw_geometries([pcd, aabb, obb], window_name="wechat 394467238")

你可能感兴趣的:(点云-激光雷达处理代码合集,python为主,python,开发语言,numpy,算法)