计算机视觉当中相机成像模型坐标转换
世界坐标系到相机坐标系的转换
世界坐标系是在环境当中选定的一个三维坐标系,用于描述环境中任何物体的位置,符合右手坐标系。相机坐标系的原点位于镜头的光心,x,y轴分别与相机的边缘平行,z轴为垂直于成像平面的光轴。世界坐标系到相机坐标系属于刚体变换,即只发生平移及旋转,属于3D到3D的转换。
绕x轴旋转为俯仰角,对应的旋转矩阵可以表示为
绕y轴旋转为翻滚角,对应的旋转矩阵可以表示为
绕z轴旋转为航向角,对应的旋转矩阵可以表示为
世界坐标系的建立一般为东北天方向,按照航向,俯仰,翻滚的顺序进行旋转,则旋转矩阵可记为
由此可见旋转矩阵为一个33的矩阵,记为R,平移矩阵为31的矩阵,记为t,R与t共同构成了外参矩阵
设相机坐标系为
世界坐标系为
为了方便描述问题,下面我们在三维坐标的基础上增加一维,采用齐次坐标形式进行描述,世界坐标系与相机坐标系之间的关系为
相机坐标系到图像坐标系的转换
图像坐标系用物理单位描述目标位置,坐标原点为光轴与坐标系的交点处,投影示意图如下图所示:
三角相似公式可以得到:
则相机坐标系到图像坐标系的齐次坐标变换关系为:
图像坐标系到像素坐标系的转换
像素坐标系以图像左上顶点为坐标原点,假设每个像素点在图像坐标系x轴与y轴方向上的尺寸为dx,dy,则图像坐标系到像素坐标系可以表示为:
齐次坐标表示为:
将3个方程连续相乘可得:
记:
则可进一步表示为:
其中s为尺度因子,记作:
其中矩阵
为内参矩阵。
往期文章:
-
FPGA 中的有符号数乘法
猫叔,公众号:科学计算technomaniaFPGA 中的有符号数乘法 为什么推荐使用XPM?
FPGA资料分享
RAM IP Core中 Write First Read First和No Change的区别
Vivado调试小结:ILA debug中的数据也许并不可信
FPGA复位的正确打开方式
如何使用Git进行Vivado工程的管理
大家一致避免使用的锁存器为什么依然存在于FPGA中?我们对锁存器有什么误解?
影响FPGA时序的进位链(Carry Chain), 你用对了么??
Virtex7 Microblaze下DDR3测试
Matlab高效编程技巧
生成Verilog HDL例化模板
DCM/DLL/PLL/MMCM区别
FPGA时序约束教程:
FPGA时序约束理论篇之建立保持时间
FPGA时序约束理论篇之时序路径与时序模型
3. FPGA时序约束理论篇之IO约束
4. FPGA时序约束理论篇之时钟周期约束
5. FPGA时序约束理论篇之两种时序例外
6. FPGA时序约束理论篇之xdc约束优先级
7. FPGA时序约束实战篇之梳理时钟树
8. FPGA时序约束实战篇之主时钟约束
9. FPGA时序约束实战篇之衍生时钟约束
10. FPGA时序约束实战篇之延迟约束
11. FPGA时序约束实战篇之伪路径约束
12. FPGA时序约束实战篇之多周期路径约束
13. Vivado时序约束辅助工具
14. FPGA时序约束之Tcl命令的对象及属性