在Open3D中,open3d.geometry.OrientedBoundingBox
表示放置在物体周围的正方形或立方体,它可以由一组三维坐标点计算得出。dimension
是OrientedBoundingBox
对象的一个属性,表示其三个轴的长度。
dimension = oriented_bounding_box.dimension
oriented_bounding_box
:类型为open3d.geometry.OrientedBoundingBox
的对象。要访问其尺寸属性,必须先创建该对象。dimension
返回一个包含三个浮点数的列表,表示OrientedBoundingBox对象在其三个轴上的长度。列表的顺序为$[length, width, height]$。
import open3d as o3d
import numpy as np
# 创建点云
points = np.random.rand(100, 3)
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(points)
# 创建OrientedBoundingBox
obb = pcd.get_oriented_bounding_box()
# 获取尺寸
dimension = obb.dimension
print(dimension) # [0.4393892305538871, 0.5122305737484659, 0.32638281150377535]
在这个例子中,我们先创建一个包含100个随机三维坐标的点云对象。接着,我们使用pcd.get_oriented_bounding_box()
方法获取点云的OrientedBoundingBox对象,最后打印出其尺寸。
尺寸属性始终返回一个包含三个数字的列表,即使我们使用open3d.geometry.AxisAlignedBoundingBox
或自己编写的OrientedBoundingBox对象。这些数字表示沿其三个轴的长度,而不是体积。尽管这可能很明显,但是请注意,OrientedBoundingBox通常被称为“盒子”而不是“长方体”,因为它的三个轴不一定是垂直的。