相机校正与相机内参外参
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相机校正与相机内参外参相关的知识,希望对你有一定的参考价值。
简 介: 对于相机进行校正,是为之后视觉测量奠定基础。本文在总结了相机校正中的基本概念。使用cv2的函数说明校正的过程。
关键词
: 相机校正,内参,外参
§01 相机标定
这部分内容来自于 python+OpenCV 相机标定 。
1.1 相机标定基本原理
摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 P 的过程。 根据相机标定(一)-原理及内参、外参 博文中的定义,在整个转换过程中,包括有四个坐标系:
- 图像像素坐标系
- 图像物理坐标系
- 相机坐标系
- 世界坐标系
一般来说,标定的过程分为两个部分:
- 第一步是从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,包括 R , t R,t R,t(相机外参)等参数;
- 第二部是从相机坐标系转为图像坐标系,这一步是三维点到二维点的转换,包括 K K K(相机内参)等参数;
1.1.1 世界坐标转换为相机坐标
世界坐标就是实际外部环境坐标,原点为 O O O,三个正交坐标轴分别为 X , Y , Z X,Y,Z X,Y,Z。相机位于世界坐标内, O X , Y , Z O_X,Y,Z OX,Y,Z,原点为 C C C,镜头方向坐标为 Z c a m Z_cam Zcam,另外两个坐标轴 X c a m , Y c a m X_cam ,Y_cam Xcam,Ycam与镜头方向垂直。
▲ 图1.1.1 世界坐标转换为相机坐标
从 O X , Y , Z O_X,Y,Z OX,Y,Z到 C X c a m , Y c a m , Z c a m C_Xcam,Ycam,Zcam CXcam,Ycam,Zcam的 映射转换公式为: X ^ c a m = R ( X ^ − C ^ ) \\hat X_cam = R\\left( \\hat X - \\hat C \\right) X^cam=R(X^−C^)
其中:
- R R R表示旋转矩阵;
- X ^ \\hat X X^表示 X X X点在世界坐标 O X , Y , Z O_X,Y,Z OX,Y,Z中的位置;
- C ^ \\hat C C^表示相机原点 C C C在世界坐标中的位置;
- X ^ c a m \\hat X_cam X^cam表示 X X X点在相机坐标中的位置;
▲ 图1.1.2 世界坐标系与相机坐标系
1.1.2 相机坐标转换为图像坐标
下图给出了在相机坐标系内的成像平面,
p
x
,
y
p_x,y
px,y与相机坐标主轴垂直,交点为图像坐标原点
p
p
p,距离相机与原点距离为相机焦距
f
f
f。相机坐标中任何一点
X
X
X在成像平面上的位置,也称为图像坐标,是由连线
X
,
C
X,C
X,C在成像平面上的交点
x
x
x确定。
▲ 图1.1.3 相机坐标中的点与成像平面
其中:
-
C
C
C表示
camera center
,即相机的中心店,也是相机坐标系的原点; -
Z
Z
Z表示
principal axis
,即相机的主轴; -
p
p
p点所在的平面表示
image plane
,即相机的像平面,也就是图片坐标系所在的二维平面; -
p
p
p 点表示
principal point
,即主点,也就是主轴与想平明香蕉的点;
成像坐标 x x x的位置可以由三角几何比例关系确定。
▲ 图1.1.4 相机坐标系以及成像平面之间的关系
▲ 图1.1.5 利用三角几何比例关系确定成像位置
其中:
- C C C 点到 p p p 点的距离,就是相机的焦距 f f f;
对于相机坐标中的点
(
X
,
Y
,
Z
)
\\left( X,Y,Z \\right)
(X,Y,Z),在成像平面上的位置为:
x
=
f
⋅
X
Z
,
y
=
f
⋅
Y
Z
x = f \\cdot X \\over Z,\\,\\,y = f \\cdot Y \\over Z
x=Zf⋅X,y=Zf⋅Y
简记为: ( X , Y , Z ) ↦ ( f ⋅ X / Z , f ⋅ Y / Z ) \\left( X,Y,Z \\right) \\mapsto \\left( f \\cdot X/Z,f \\cdot Y/Z \\right) (X,Y,Z)↦(f⋅X/Z,f⋅Y/Z)。
加上偏移量,如下图所示, 其中 p p p是像平面坐标系的 原点,在图像坐标系中的位置为 ( p x , p y ) \\left( p_x ,p_y \\right) (p计算机视觉——相机内外参、相机标定