OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
没有匹配项
公共类型 | 所有成员列表
cv::QuatEnum 类参考

#include <opencv2/core/quaternion.hpp>

cv::QuatEnum 的协作图

公共类型

枚举  EulerAnglesType {
  INT_XYZ ,
  INT_XZY ,
  INT_YXZ ,
  INT_YZX ,
  INT_ZXY ,
  INT_ZYX ,
  INT_XYX ,
  INT_XZX ,
  INT_YXY ,
  INT_YZY ,
  INT_ZXZ ,
  INT_ZYZ ,
  EXT_XYZ ,
  EXT_XZY ,
  EXT_YXZ ,
  EXT_YZX ,
  EXT_ZXY ,
  EXT_ZYX ,
  EXT_XYX ,
  EXT_XZX ,
  EXT_YXY ,
  EXT_YZY ,
  EXT_ZXZ ,
  EXT_ZYZ
}
 欧拉角类型的枚举。 更多...
 

成员枚举文档

◆ EulerAnglesType

欧拉角类型的枚举。

不考虑使用两种不同的转换来定义旋转轴的可能性,存在 12 种可能的旋转轴顺序,分为两组

  • 适当的欧拉角 (Z-X-Z, X-Y-X, Y-Z-Y, Z-Y-Z, X-Z-X, Y-X-Y)
  • 泰特-布莱恩角 (X-Y-Z, Y-Z-X, Z-X-Y, X-Z-Y, Z-Y-X, Y-X-Z)。

三个基本旋转可以是 外在的(绕原始坐标系轴 *xyz* 的旋转,该坐标系被认为保持静止),或 内在的(绕旋转坐标系轴 *XYZ* 的旋转,该坐标系与运动物体相连,在每次基本旋转后改变其方向)。

外在旋转和内在旋转是相关的。

欧拉角的定义如下,

  • \(\theta_1 \) 表示第一个旋转角,
  • \(\theta_2 \) 表示第二个旋转角,
  • \(\theta_3 \) 表示第三个旋转角。

对于按 X-Y-Z 顺序进行的内在旋转,旋转矩阵 R 可以通过以下方式计算

\[R =X(\theta_1) Y(\theta_2) Z(\theta_3) \]

对于按 X-Y-Z 顺序进行的外在旋转,旋转矩阵 R 可以通过以下方式计算

\[R =Z({\theta_3}) Y({\theta_2}) X({\theta_1})\]

其中

\[X({\theta_1})={\begin{bmatrix}1&0&0\\0&\cos {\theta_1} &-\sin {\theta_1} \\0&\sin {\theta_1} &\cos {\theta_1} \\\end{bmatrix}}, Y({\theta_2})={\begin{bmatrix}\cos \theta_{2}&0&\sin \theta_{2}\\0&1 &0 \\\ -sin \theta_2& 0&\cos \theta_{2} \\\end{bmatrix}}, Z({\theta_3})={\begin{bmatrix}\cos\theta_{3} &-\sin \theta_3&0\\\sin \theta_3 &\cos \theta_3 &0\\0&0&1\\\end{bmatrix}}. \]

该函数是根据以下约定集设计的

  • 右手 参考系被采用,并使用 右手法则 来确定角的符号。
  • 每个矩阵都表示 主动旋转(组合矩阵和被组合矩阵都应该作用于初始固定参考系中定义的向量的坐标,并作为结果给出在同一个参考系中定义的旋转向量的坐标)。
  • 对于 \(\theta_1\) 和 \(\theta_3\),有效范围为 (−π, π]。

    对于 \(\theta_2\),有效范围为 [−π/2, π/2] 或 [0, π]。

    对于泰特-布莱恩角,\(\theta_2\) 的有效范围为 [−π/2, π/2]。当将四元数转换为欧拉角时,欧拉角的解在 \( \theta_2 \in (−π/2, π/2)\) 的条件下是唯一的。如果 \(\theta_2 = −π/2 \) 或 \( \theta_2 = π/2\),则存在无限个解。这种情况的常用名称是万向节锁。对于适当的欧拉角,\(\theta_2\) 的有效范围在 [0, π] 内。欧拉角的解在 \( \theta_2 \in (0, π)\) 的条件下是唯一的。如果 \(\theta_2 =0 \) 或 \(\theta_2 =π \),则存在无限个解,并且会发生万向节锁。

枚举器
INT_XYZ 

欧拉角类型为 X-Y-Z 的内在旋转。

INT_XZY 

欧拉角类型为 X-Z-Y 的内在旋转。

INT_YXZ 

欧拉角类型为 Y-X-Z 的内在旋转。

INT_YZX 

欧拉角类型为 Y-Z-X 的内在旋转。

INT_ZXY 

欧拉角类型为 Z-X-Y 的内在旋转。

INT_ZYX 

欧拉角类型为 Z-Y-X 的内在旋转。

INT_XYX 

欧拉角类型为 X-Y-X 的内在旋转。

INT_XZX 

欧拉角类型为 X-Z-X 的内在旋转。

INT_YXY 

欧拉角类型为 Y-X-Y 的内在旋转。

INT_YZY 

欧拉角类型为 Y-Z-Y 的内在旋转。

INT_ZXZ 

欧拉角类型为 Z-X-Z 的内在旋转。

INT_ZYZ 

欧拉角类型为 Z-Y-Z 的内在旋转。

EXT_XYZ 

欧拉角类型为 X-Y-Z 的外在旋转。

EXT_XZY 

欧拉角类型为 X-Z-Y 的外在旋转。

EXT_YXZ 

欧拉角类型为 Y-X-Z 的外在旋转。

EXT_YZX 

欧拉角类型为 Y-Z-X 的外在旋转。

EXT_ZXY 

欧拉角类型为 Z-X-Y 的外在旋转。

EXT_ZYX 

欧拉角类型为 Z-Y-X 的外在旋转。

EXT_XYX 

欧拉角类型为 X-Y-X 的外在旋转。

EXT_XZX 

欧拉角类型为 X-Z-X 的外在旋转。

EXT_YXY 

欧拉角类型为 Y-X-Y 的外在旋转。

EXT_YZY 

欧拉角类型为 Y-Z-Y 的外在旋转。

EXT_ZXZ 

欧拉角类型为 Z-X-Z 的外在旋转。

EXT_ZYZ 

欧拉角类型为 Z-Y-Z 的外在旋转。


此类的文档是从以下文件生成的