【三维重建系列】相机模型部分公式详解记录

1|0相机模型P矩阵

公式:

P=KR[I|C]

其中C表示平移矩阵 为齐次坐标 即世界坐标系原点到相机坐标系原点的距离 R同样表达的也是这个关系。

也写成这种形式:

P=M[I|M1p4]

其中M=KRp4为P的第四列
如果M矩阵不可逆时 为无穷远相机
原文对相机中心点坐标的描述:
在这里插入图片描述

2|0相机模型P矩阵分解

2|1行向量

P=[p11p12p13p14p21p22p23p24p31p32p33p34p41p42p43p44]=[P1TP2TP3T]

P3T为主平面 通过相机光心点并且平行于相机成像平面 P2T通过相机光心点和成像平面的X轴 另一个同理
在这里插入图片描述

2|2列向量

P=[p11p12p13p14p21p22p23p24p31p32p33p34p41p42p43p44]=[P1P2P3P4]

P1为世界坐标系X轴的消影点 x轴方向为D=(1,0,0,0)T 所以P1=PD
同理P2为世界坐标系Y轴的消影点
P3为世界坐标系Z轴的消影点
P4为世界坐标系原点的图像点 P4=P(0,0,0,1)T

3|0消影点投影

设消影点的齐次坐标为D=(dT,0) 则消影点映射到成像平面的公式为:

x=PD=[M|p4]D

但是此时D的最后一维为0 所以p4相当于没有计算(很容易推)所以结果为:

x=Md

可见消影点投影只与M有关 与相机的位置无关

4|0点的深度问题

x=ω(x,y,1)T=PX

ω其实为三维点原深度 也可以解释为从相机中心到三维空间点的射线与主轴方向的点积。 (x,y,1)在第三维只有深度的体现 所以可以单独求出深度:

ω=P3TX=P3T(XC)=m3T(XC)

其中C为相机中心 PC = 0 所以随便加
另外从齐次到非齐次 丢掉了最后一个维度 所以P相应也舍去最后一个维度 又因为前面是M[I|t]最后一个维度t干掉后 只剩MI 所以等于M矩阵的第三行 即m3T

5|0主点与主轴方向

主轴即通过相机光心 并且垂直于主平面的轴 主轴和成像平面的交点称为主点
已知主平面和主平面的法向量 讲主平面的法向量写成无穷远点的形式:

(p31,p32,p33,0)

经过相机的任何一条射线 与像平面的交点可以表示为:PD 这个也等价于这个点的无穷远点在像平面的投影 P是3 * 4 D要求是 4 * 1嘛 最后一维就是0 已知三维点非齐次坐标 变成无穷远点的齐次坐标只需在最后一维添加0即可

所以主点即为主平面的法向量的无穷远点形式在像平面的投影

Pmain=PPinfine=[M|p4]Pinfine

然后干掉第四维 和上面的消影点投影那里一样 p4就不参与运算了:

Pmain=MPinfine=Mm3T

等于M和他自己的第三行相乘 此处很容易推导顺出来 其中m3T被称为主轴方向

6|0对极线区分有限相机和无穷远相机

有限相机的所有对极线都会相交于一点 这一点即一个相机的光心在另一个相机的像平面成像的位置。
对于无穷远相机的话 主平面即无穷远平面 所有的对极线也相交 但是交点在无穷远平面 即相交于无穷远点 所以对极线是平行的。

7|0根据相机参数计算相机内参

在这里插入图片描述
原作者链接:传送门


__EOF__

本文作者铃灵狗的水墨书香
本文链接https://www.cnblogs.com/linglingdog/p/17059845.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   铃灵狗  阅读(134)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示