机器视觉刚体变换公式
时间: 2025-06-19 14:53:26 浏览: 13
### 机器视觉中的刚体变换公式
在机器视觉领域,刚体变换是描述两个坐标系之间关系的基本工具。刚体变换通常由旋转矩阵 \( R \) 和平移向量 \( T \) 组成[^1]。假设一个点 \( P \) 在原坐标系中的位置为 \( P_1 \),在目标坐标系中的位置为 \( P_2 \),那么刚体变换可以表示为:
```math
P_2 = R \cdot P_1 + T
```
其中:
- \( R \) 是一个 \( 3 \times 3 \) 的正交矩阵,满足 \( R^T \cdot R = I \) 且 \( \det(R) = 1 \)[^1]。
- \( T \) 是一个 \( 3 \times 1 \) 的平移向量[^1]。
为了简化计算和表达,刚体变换常被写成齐次坐标的形式。在这种形式下,变换可以表示为一个 \( 4 \times 4 \) 的矩阵 \( H \),定义如下:
```math
H =
\begin{bmatrix}
R & T \\
0 & 1
\end{bmatrix}
```
齐次坐标下的点 \( P_1 \) 可以表示为 \( [x, y, z, 1]^T \),经过刚体变换后得到的点 \( P_2 \) 为:
```math
P_2 = H \cdot P_1
```
这种表示方法的优势在于能够将旋转和平移统一到一个矩阵中,便于进行多次变换的级联操作。
在实际应用中,例如计算机视觉中的相机标定或三维重建,刚体变换用于描述相机坐标系与世界坐标系之间的关系[^2]。通过求解旋转矩阵和平移向量,可以实现对物体的识别、跟踪和测量。
```python
import numpy as np
# 定义旋转矩阵 R 和平移向量 T
R = np.array([[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
T = np.array([1, 2, 3])
# 构造齐次变换矩阵 H
H = np.hstack((R, T.reshape(3, 1)))
H = np.vstack((H, np.array([0, 0, 0, 1])))
# 原始点 P1
P1 = np.array([1, 2, 3, 1]).reshape(4, 1)
# 计算变换后的点 P2
P2 = H @ P1
print("变换后的点 P2:", P2)
```
阅读全文
相关推荐
















