scipy.spatial.transform.Rotation.

mean#

Rotation.mean(self, weights=None)#

取得旋轉的平均值。

使用的平均值是弦長 L2 平均值(也稱為投影或誘導算術平均值) [1]。如果 A 是一組旋轉矩陣,則平均值 M 是最小化以下損失函數的旋轉矩陣

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

其中 \(w_i\) 是對應於每個矩陣的 weights

參數:
weightsarray_like shape (N,), optional

描述旋轉相對重要性的權重。如果為 None(預設值),則假定 weights 中的所有值都相等。

回傳:
meanRotation 實例

包含目前實例中旋轉平均值的物件。

參考文獻

[1]

Hartley, Richard, et al., “Rotation Averaging”, International Journal of Computer Vision 103, 2013, pp. 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])