图像缩放后相机内参变化

白昼怎懂夜的黑 提交于 2019-12-01 16:36:39

图像缩放之后相机内参变化

1. 问题描述

在对采集到的图像进行3D坐标相关计算时,需要用到相机内参信息,但是在对图像进行缩放之后相机内参如何变化呢?

在大多数书上只会给出结论(假设缩小一半):
\[ f_x'= \frac{f_x}{2},f_y'=\frac{f_y}{2},c_x'=\frac{c_x}{2},c_y'=\frac{c_y}{2} \]

2. 数学推导

以下函数把3D空间点\(P\)投影到像素坐标系中:\((x,y,z,1)\rightarrow(u,v,S)\)
$$
\begin{pmatrix}
a_x & 0 & u_0 \
0 & a_y & v_0 \
0 & 0 & 1 \end{pmatrix}
\begin{pmatrix}
R_{11} & R_{12} & R_{13} & T_x \
R_{21} & R_{22} & R_{23} & T_y \
R_{31} & R_{32} & R_{33} & T_z \

\end{pmatrix}
\begin{pmatrix}
x \
y \
z \
1
\end{pmatrix}
$$
之后,\((u,v,S)\rightarrow(u/S,v/S,1)\)得到非齐次的像素坐标.

可以简写为:
\[ u= \frac{m_1 P}{m_3 P} \\ v = \frac{m_2 P}{m_3 P} \]
其中\(m_i\)\(K[R|T]_{3\times4}\)构成的投影矩阵的第\(i\)行,在进行resize之后:
\[ u'=\frac{u}{2} \\ v' = \frac{v}{2} \]
因此:
\[ u' = (1/2) \frac {m_1 P} {m_3 P} \\ v' = (1/2) \frac {m_2 P} {m_3 P} \]
转换回最初的投影方程:
\[ \left( \begin{array}{ccc} 0.5 & 0 & 0 \\ 0 & 0.5 & 0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} a_x & 0 & u_0 \\ 0 & a_y & v_0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} R_{11} & R_{12} & R_{13} & T_x \\ R_{21} & R_{22} & R_{23} & T_y \\ R_{31} & R_{32} & R_{33} & T_z \\ \end{array} \right) \left( \begin{array}{ccc} x \\ y \\ z \\ 1 \end{array} \right) \]
与如下形式等价:
\[ \left( \begin{array}{ccc} 0.5 a_x & 0 & 0.5 u_0 \\ 0 & 0.5 a_y & 0.5 v_0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} R_{11} & R_{12} & R_{13} & T_x \\ R_{21} & R_{22} & R_{23} & T_y \\ R_{31} & R_{32} & R_{33} & T_z \\ \end{array} \right) \left( \begin{array}{ccc} x \\ y \\ z \\ 1 \end{array} \right) \]

如果使用的是Matlab类似的索引由1开始的,需要利用: \(u'=(u-1)/2+1,v'=(v-1)/2+1\)替换,并重新推导

3. 对于0.5pixel问题的处理

同样需要进行处理:
\[ u'=(u-0.5)/2+0.5\\ v'=(v-0.5)/2+0.5 \]
于是可以得到(假设缩放为\(s\)):
\[ \begin{pmatrix} sf_x & 0 & sc_x+0.5s-0.5 \\ 0 & sf_y & sc_y+0.5s-0.5 \\ 0 & 0 & 1 \end{pmatrix} \]
于是,对应的内参变化为:
\[ \begin{aligned} f_x' &= s*f_x\\ f_y' &= s*f_y\\ c_x' &= s*c_x+0.5s-0.5\\ c_y' &= s*c_y +0.5s-0.5 \end{aligned} \]

4. 参考资料

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!