scipy.spatial.transform.Rotation.

平均#

Rotation.mean(self, weights=None)#

获取旋转的平均值。

所使用的均值是弦长 L2 均值(也称为投影或诱导算术均值)[R0f5a3b2b2bd6-1]_。如果 A 是一组旋转矩阵,那么均值 M 是使以下损失函数最小化的旋转矩阵:

\[L(M) = \sum_{i = 1}^{n} w_i \lVert \mathbf{A}_i - \mathbf{M} \rVert^2 ,\]

其中 \(w_i\) 是对应于每个矩阵的 权重

参数:
权重类似数组的形状 (N,),可选

描述旋转相对重要性的权重。如果为 None(默认),则假定 weights 中的所有值都相等。

返回:
均值 : 旋转 实例旋转实例

包含当前实例中旋转平均值的对象。

参考文献

[1]

Hartley, Richard 等人,“旋转平均”,《国际计算机视觉杂志》103卷,2013年,第267-305页。

示例

>>> from scipy.spatial.transform import Rotation as R
>>> r = R.from_euler('zyx', [[0, 0, 0],
...                          [1, 0, 0],
...                          [0, 1, 0],
...                          [0, 0, 1]], degrees=True)
>>> r.mean().as_euler('zyx', degrees=True)
array([0.24945696, 0.25054542, 0.24945696])