OBB包围盒的生成方法

来源:互联网 发布:路由器主人网络设置 编辑:程序博客网 时间:2024/05/22 21:02

OBB包围盒,具有两个显著的特点:

  • 在包含所有给定点的前提下,能够使得包围盒面积最小;
  • 所生成的包围盒带有方向。

这里,通过一段时间的积累,主要给出基于PCA主成分分析的OBB包围盒的生成方法(二维),如有不当的地方,望指教^_^!
有些基础的知识可以查阅其他资料

问题描述:给定n个二维坐标点{(x1,y1), (x2,y2), …, (xn,yn)},求能够包围所有这些点的OBB包围盒(长,宽,方向,中心店)。

求解概括:

  1. 按坐标类型对数据进行组合:x = {x1, x2, …, xn},y = {y1, y2, …, yn}
  2. 分别求出集合x和集合y的平均值averX和averY,并构建协方差矩阵:
    [cov(x,x)cov(y,x)cov(x,y)cov(y,y)](1)
  3. 再根据协方差矩阵求解其特征值和特征向量,其中特征值较大者为OBB包围盒的方向。
  4. 得到的特征向量即为新的坐标系,将原始数据回落到该坐标系下,即可求得OBB包围盒的长,宽以及中心点。

具体实例:

原始数据,第一列为x轴坐标,第二列为y轴坐标:

3.74.14.75.26.06.39.710.011.012.51.43.82.92.84.03.66.34.93.66.4(2)

计算得到协方差矩阵,网上方法很多,这里就不做介绍:
[10.09293.859563.859562.40233](3)

求出协方差的最大特征值为:11.6958
特征向量为
[0.9235250.383539](4)

将原始数据回落至新的坐标轴上,(首先原始数据 - 平均值)*特征向量组:
3.623.222.622.121.321.022.382.683.685.182.570.171.071.170.030.372.330.930.372.43[0.9235250.383539](5)

得到最终结果:
4.328853.038952.830022.406611.207551.08393.091642.831743.256665.715860.9850461.0780.01670180.267420.5339770.04950571.238990.1690081.753130.257431(6)

长度:10.0447
宽度:2.99212