scipy.spatial.transform.Rotation.

mean#

Вращение.mean(self, веса=None)#

Получить среднее значение вращений.

Используемое среднее — хордальное L2 среднее (также называемое проекционным или индуцированным арифметическим средним) [1]. Если A является набором матриц вращения, тогда среднее M это матрица вращения, которая минимизирует следующую функцию потерь:

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

где \(w_i\)’s являются веса соответствующий каждой матрице.

Параметры:
весаarray_like, форма (N,), опционально

Веса, описывающие относительную важность вращений. Если None (по умолчанию), то все значения в веса предполагаются равными.

Возвращает:
meanRotation экземпляр

Объект, содержащий среднее значение вращений в текущем экземпляре.

Ссылки

[1]

Хартли, Ричард и др., "Усреднение вращений", International Journal of Computer Vision 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])