假设每个像素在
x
x
x方向的长度表示为
d
x
d_x
dx,
y
y
y方向表示为
d
y
d_y
dy,单位是毫米,根据相似三角形的简单规律,则关于图中像点有如下公式成立:
[
Z
c
/
f
=
X
c
/
(
(
u
−
c
x
)
d
x
)
Z
c
/
f
=
Y
c
/
(
(
v
−
c
y
)
d
y
)
]
\begin{equation}\begin{bmatrix} Zc/f=X_c/((u-c_x)d_x)\\ Zc/f=Y_c/((v-c_y)d_y) \end{bmatrix} \end{equation}
[Zc/f=Xc/((u−cx)dx)Zc/f=Yc/((v−cy)dy)]
进一步整理得:
[
u
d
x
−
c
x
d
x
=
f
X
c
/
Z
c
v
d
v
−
c
y
d
y
=
f
Y
c
/
Z
c
]
\begin{equation}\begin{bmatrix} ud_x-c_xd_x=fX_c/Z_c\\ vd_v-c_yd_y=fY_c/Z_c \end{bmatrix} \end{equation}
[udx−cxdx=fXc/Zcvdv−cydy=fYc/Zc]
进一步整理得:
[
u
=
f
X
c
/
(
d
x
Z
c
)
+
c
x
v
=
f
Y
c
/
(
d
y
Z
c
)
+
c
y
]
\begin{equation}\begin{bmatrix} u=fX_c/(dxZ_c)+c_x\\ v=fY_c/(dyZ_c)+c_y \end{bmatrix} \end{equation}
[u=fXc/(dxZc)+cxv=fYc/(dyZc)+cy]
令
[
f
x
=
f
/
d
x
f
y
=
f
/
d
y
]
\begin{equation}\begin{bmatrix} f_x=f/d_x\\ f_y=f/d_y \end{bmatrix} \end{equation}
[fx=f/dxfy=f/dy]
公式(3)可以写成
[
u
=
f
x
X
c
/
Z
c
+
c
x
v
=
f
y
Y
c
/
Z
c
+
c
y
]
\begin{equation}\begin{bmatrix} u=f_xX_c/Z_c+c_x\\ v=f_yY_c/Z_c+c_y \end{bmatrix} \end{equation}
[u=fxXc/Zc+cxv=fyYc/Zc+cy]
写成矩阵形式:
[
u
v
]
=
[
f
x
0
c
x
0
f
y
c
y
]
[
X
c
/
Z
c
Y
c
/
Z
c
1
]
\begin{equation}\begin{bmatrix} u\\v \end{bmatrix}=\begin{bmatrix} f_x&0&c_x\\ 0&f_y&c_y\\ \end{bmatrix} \begin{bmatrix} X_c/Z_c\\ Y_c/Z_c\\ 1\\ \end{bmatrix}\end{equation}
[uv]=[fx00fycxcy]⎣
⎡Xc/ZcYc/Zc1⎦
⎤
两边同时乘以
Z
c
Z_c
Zc可得:
Z
c
[
u
v
]
=
[
f
x
0
c
x
0
f
y
c
y
]
[
X
c
Y
c
Z
c
]
\begin{equation}Z_c\begin{bmatrix} u\\v \end{bmatrix}=\begin{bmatrix} f_x&0&c_x\\ 0&f_y&c_y\\ \end{bmatrix} \begin{bmatrix} X_c\\ Y_c\\ Z_c\\ \end{bmatrix}\end{equation}
Zc[uv]=[fx00fycxcy]⎣
⎡XcYcZc⎦
⎤把中间的矩阵写成方阵的形式,上式可以整理成:
Z
c
[
u
v
1
]
=
[
f
x
0
c
x
0
f
y
c
y
0
0
1
]
[
X
c
Y
c
Z
c
]
\begin{equation}Z_c\begin{bmatrix} u\\v\\1 \end{bmatrix}=\begin{bmatrix} f_x&0&c_x\\ 0&f_y&c_y\\ 0&0&1\\ \end{bmatrix} \begin{bmatrix} X_c\\ Y_c\\ Z_c\\ \end{bmatrix}\end{equation}
Zc⎣
⎡uv1⎦
⎤=⎣
⎡fx000fy0cxcy1⎦
⎤⎣
⎡XcYcZc⎦
⎤
中间的矩阵即为相机的内参数矩阵。