目录
第一部分
3. 归一化坐标系 (Normalized Image Coordinates)
第二部分
2. 仿射变换(Affine Transformation)
3. 相似变换(Similarity Transformation)
4. 射影变换(Projective Transformation)
1. 世界坐标系 (World Coordinates)
- 定义:世界坐标系是一个全局的三维坐标系,用来描述物体在真实世界中的位置。
- 表示:通常用
(X_w, Y_w, Z_w)
表示。
2. 相机坐标系 (Camera Coordinates)
- 定义:相机坐标系是以相机为中心的三维坐标系,描述了物体相对于相机的位置。
- 表示:通常用
(X_c, Y_c, Z_c)
表示。 - 转换:从世界坐标系到相机坐标系的转换通常通过相机的外参矩阵(旋转矩阵
R
和平移向量t
)完成。 - 用途:用于描述物体在现实世界中的绝对位置,不受任何特定设备或传感器的影响。
-
- 世界坐标转化为相机坐标代码
Vector3d Camera::world2camera ( const Vector3d& p_w, const SE3& T_c_w ) { return T_c_w*p_w; }
-
相机坐标转化为世界坐标代码
Vector3d Camera::camera2world ( const Vector3d& p_c, const SE3& T_c_w ) { return T_c_w.inverse() *p_c; }
3. 归一化坐标系 (Normalized Image Coordinates)
- 定义:归一化坐标系是相机坐标系下的一个特殊形式,去除了深度信息,但保留了方向信息。
- 表示:通常用
(x_n, y_n)
表示。 - 转换:从相机坐标系到归一化坐标系的转换通过除以深度值
Z_c
完成。
相机坐标系到归一化坐标系代码
cv::Point2d cameraToNormalized(const cv::Point3d &p_c) {
// 计算归一化坐标系下的点
double x_n = p_c.x / p_c.z;
double y_n = p_c.y / p_c.z;
return cv::Point2d(x_n, y_n);
}
归一化坐标到相机坐标代码
cv::Point3d normalizedToCamera(const cv::Point2d &p_n, double depth) {
// 计算相机坐标系下的点
double X_c = p_n.x * depth;
double Y_c = p_n.y * depth;
double Z_c = depth;
return cv::Point3d(X_c, Y_c, Z_c);
}
4. 像素坐标系 (Image Coordinates)
- 定义:像素坐标系是在图像平面上的二维坐标系,描述了像素的位置。
- 表示:通常用
(u, v)
表示。 - 转换:从归一化坐标系到像素坐标系的转换通过相机的内参矩阵
K
完成
其中,内参矩阵 K
通常形式如下:
- fx 和 fy是焦距参数。
- cx和 cy 是主点坐标。
-
1.等距变换的定义
等距变换是一种将一个几何对象映射到另一个几何对象的变换,使得任意两点之间的距离在变换前后保持不变。等距变换可以分为两类:
-
刚体变换(Rigid Transformation):
- 刚体变换包括旋转和平移。
- 旋转矩阵 RR 是一个正交矩阵,满足 RTR=IRTR=I 且 det(R)=1det(R)=1。
- 平移向量 tt 是一个三维向量。
- 刚体变换可以用一个 4x4 的齐次变换矩阵表示:
- 对于一个点 PP,变换后的点 P′P′ 为:
-
反射变换(Reflection):
- 反射变换是一种特殊的等距变换,它通过一个平面(二维中是一条直线)进行镜像反射。
- 反射变换可以表示为一个矩阵,例如在二维中通过 x 轴反射的变换矩阵为:
2. 仿射变换(Affine Transformation)
定义
仿射变换是一种线性变换加上一个平移。它可以表示为一个 4x4 的齐次变换矩阵:
其中:
- AA 是一个 3x3 的矩阵,表示线性变换部分。
- tt 是一个 3x1 的平移向量。
性质
- 保持直线:仿射变换将直线映射为直线。
- 保持共线性:仿射变换保持点的共线性。
- 保持平行性:仿射变换保持平行线的平行性。
- 不保持长度和角度:仿射变换一般不保持长度和角度。
应用
- 图像处理:仿射变换常用于图像的旋转、缩放和平移。
- 计算机图形学:用于物体的变形和动画。
- 机器学习:用于数据的预处理和特征变换。
3. 相似变换(Similarity Transformation)
定义
相似变换是一种特殊的仿射变换,它包括旋转、平移和均匀缩放。它可以表示为:
其中:
- ss 是一个标量,表示均匀缩放因子。
- RR 是一个 3x3 的旋转矩阵。
- tt 是一个 3x1 的平移向量。
性质
- 保持直线:相似变换将直线映射为直线。
- 保持共线性:相似变换保持点的共线性。
- 保持平行性:相似变换保持平行线的平行性。
- 保持角度:相似变换保持角度不变。
- 保持形状的比例关系:相似变换保持形状的比例关系。
应用
- 图像配准:用于图像的对齐和匹配。
- 三维重建:用于保持几何形状的相似性。
- 计算机视觉:用于目标检测和识别。
4. 射影变换(Projective Transformation)
定义
射影变换是一种更一般的变换,它可以处理透视效果。射影变换可以表示为一个 4x4 的非奇异矩阵:
或者在二维情况下,可以表示为一个 3x3 的矩阵:
性质
- 保持共线性:射影变换保持点的共线性。
- 保持共面性:射影变换保持点的共面性。
- 不保持平行性:射影变换不保持平行线的平行性。
- 不保持角度和长度:射影变换不保持角度和长度。
应用
- 图像校正:用于校正图像中的透视畸变。
- 三维重建:用于从多视图图像中重建三维模型。
- 计算机视觉:用于处理相机的投影模型和多视图几何。