图像缩放对相机内外参矩阵的影响

参考资料:https://zhuanlan.zhihu.com/p/87185139

一、3D空间中点到图像的投影

  设3D空间中的点 ( x , y , z ) (x,y,z) (x,y,z)投影到图像上的像素坐标(连续值,以左上角像素的左上角为原点的坐标系,注意与整数值的图像像素索引相区别,详见此文第2部分)为 ( u , v ) (u,v) (u,v),深度为 d d d,图像内参矩阵为 I 3 × 3 I_{3\times3} I3×3,外参矩阵为 E 3 × 4 E_{3\times4} E3×4。则存在如下关系:
( u d v d d ) = I 3 × 3 E 3 × 4 ( x y z 1 ) \begin{pmatrix} ud \\ vd \\ d \end{pmatrix}=I_{3\times3}E_{3\times4}\begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} udvdd =I3×3E3×4 xyz1
I 3 × 3 E 3 × 4 = M 3 × 4 = ( m 1 m 2 m 3 ) ,    P = ( x y z 1 ) I_{3\times3}E_{3\times4}=M_{3\times4}=\begin{pmatrix} m_1 \\ m_2 \\ m_3 \end{pmatrix},\ \ P=\begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} I3×3E3×4=M3×4= m1m2m3 ,  P= xyz1 其中 m i ∈ R 1 × 3 m_i\in\mathbb{R}^{1\times3} miR1×3,易得
{ u d = m 1 P v d = m 2 P    d = m 3 P \left\{ \begin{matrix} ud=m_1P \\ vd=m_2P \\ \ \ d=m_3P \end{matrix}\right. ud=m1Pvd=m2P  d=m3P

二、图像缩放及同一3D点在缩放前后图像中的投影坐标

  设原始图像的宽和高分别为 W W W H H H,其缩放比例(缩放因数)分别为 s 1 s_1 s1 s 2 s_2 s2(即缩放后图像的宽和高分别为 s 1 W s_1W s1W s 2 H s_2H s2H),如下图所示(图中 W = 6 , H = 4 , s 1 = 1 / 3 , s 2 = 1 / 2 W=6,H=4,s_1=1/3,s_2=1/2 W=6,H=4,s1=1/3,s2=1/2;左图为原始图像,右图为缩放后的图像):
在这里插入图片描述
  对于3D空间中的同一个点,其投影到缩放前后图像上的相对位置是相同的(图中黄点)。换句话说,若以左上角像素的左上角为原点建立图像坐标系,其在缩放前后图像中的坐标(分别记为 ( u , v ) (u,v) (u,v) ( u ′ , v ′ ) (u',v') (u,v))之比即为 ( 1 / s 1 , 1 / s 2 ) (1/s_1,1/s_2) (1/s1,1/s2)
  由深度的几何(物理)含义可知同一个点在缩放前后图像中的深度不变。

三、图像缩放后内外参矩阵的变化

  根据第一节中的最后一个公式和第二节中的分析: { u d = m 1 P v d = m 2 P    d = m 3 P ,     { u ′ d ′ = s 1 u d = m 1 ′ P v ′ d ′ = s 2 v d = m 2 ′ P d ′ = d = m 3 ′ P \left\{ \begin{matrix} ud=m_1P \\ vd=m_2P \\ \ \ d=m_3P \end{matrix}\right.,\ \ \ \left\{ \begin{matrix} u'd'=s_1ud=m'_1P \\ v'd'=s_2vd=m'_2P \\ d'=d=m'_3P \end{matrix}\right. ud=m1Pvd=m2P  d=m3P,    ud=s1ud=m1Pvd=s2vd=m2Pd=d=m3P可知 m 3 ′ = m 3 m'_3=m_3 m3=m3,而 m 1 ′ = s 1 m 1 ,   m 2 ′ = s 2 m 2 m'_1=s_1m_1,\ m'_2=s_2m_2 m1=s1m1, m2=s2m2
  故结论为:图像缩放时,内外参矩阵之积的第一行需要乘上宽的缩放因数,第二行需要乘上高的缩放因数

注意:设缩放前像素的整数索引为 ( u , v ) (u,v) (u,v),图像的宽和高分别为 W W W H H H,缩放比例(缩放因数)分别为 s 1 s_1 s1 s 2 s_2 s2,若仍按照第二节的方式计算缩放后的坐标 ( u ′ , v ′ ) (u',v') (u,v)(即 u ′ = s 1 u , v ′ = s 2 v u'=s_1u,v'=s_2v u=s1u,v=s2v),则存在参考资料中所谓的“0.5像素问题”。这是因为像素的整数索引和像素的连续坐标之间相差了0.5(同样可见此文第2部分)。如果在缩放时考虑到了这一点(如使用cv2.resize()函数实现缩放),则可直接使用第三节的结论。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

byzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值