相机投影模型

news/2024/10/22 10:37:35/
对于研究计算机视觉的人来说,相机模型是一个非常头疼而又非常重要的理论,虽然我们可以只是对一些离线图片做各种算法开发,但那些图像的获取归根结底还是从相机获得,并且如果我们想要把开发出来的各种计算机视觉的算法应用到实际生活中,那么也必不可少要涉及到相机投影模型的概念。

虽然我们或多或少听说过理想相机模型就是一个“小孔成像”模型,什么“相似三角形”啦、什么透视变换啦、“相机畸变”啦等各种概念,但要想真正理解并应用到实际中,以及理解各种所谓的“相机标定”方法的内在含义,并不是一件简单的事,此处我结合自己的理解和实践,尽我的能力尽量将所想所感阐释清楚,以供大家学习和借鉴,如有不正确之处,还望不吝赐教!

一、坐标系定义

世界坐标系、相机坐标系、图像坐标系(胶卷坐标系,连续值)、像素坐标系
目的: 用数学方式描述3D点如何投影到2D像素坐标系中(正投影:Forward projection),以及反过来的投影过程(Back projection)。
其中描述相机坐标系下的3D点投影到图像坐标系的过程称为透视投影(perspective projection):
其中f为相机焦距,X,Y,Z为相机坐标系下某点坐标,x,y为相机图像坐标系下对应该点坐标。

描述世界坐标系下的3D点到相机坐标系下的表示的过程为刚体坐标系变换——旋转+平移变换:
该过程也称为相机的 外参标定 ,不涉及到相机的任何内部参数,只是坐标系的变换关系,可以用一个齐次矩阵将旋转和平移统一表示。
描述从图像坐标系到像素坐标系的过程为一个仿射变换(Affine Transformation)过程:

完整相机投影过程:


http://www.ppmy.cn/news/545809.html

相关文章

鱼眼相机投影模型

1、 成像投影原理 其成像过程分解成两步: 1.归一化平面上(Zc 1)的三维空间点线性地投影到一个球面上,它是一个虚拟的单位球面,它的球心与相机坐标系的原点重合; 2&…

android4.2 小红盒,不插电也能用!网红爆款:天猫精灵妙物“小红盒”投影仪评测...

如今在“线上”买东西俨然成为了生活中的一种常态操作,毕竟有些小伙伴们因忙于工作,没有时间去实体店铺买东西,继而才会选择“线上买”这种方式。但是,在线上买东西虽然快捷、方便,但是也会面临一无法避免的问题&#…

摄像机投射投影模型

转载于:https://blog.csdn.net/shenziheng1/article/details/52890223 1.写在前面的话 摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可以用成像变换进行表示,也就是我们平常说的摄像机投影模型。摄像机成像模型有不同的描…

VSCode gdb 调试 qemu u-boot 的方法

前言 最近使用 VS Code GDB 调试 qemu,有了一点收获,u-boot 编译后生成了一个 elf 文件:u-boot,是否也可以调试一下? 为何需要 VS Code GDB 调试,直接 gdb 调试不就可以了吗?答案就是&#xff…

设计模式-工厂方法模式

​ 文章目录 发展:简单实现:命名不规范:可读性差可维护性差可扩展性差团队合作问题 除数不能为0问题:开闭原则问题:想象力创造力:首先是发现力:接下来是想象力:总结 大话设计模式这本书反反复复…

2023年如何选购一部4000元价位的笔记本电脑(附跳坑说明)

2023年如何选购一部4000元价位的笔记本电脑(附带坑的说明) 本文是一个快速指南,不包含选购中涉及的所有知识点,尤其是大量的具体硬件参数,内容主要关注在如何快速抓住自己真正的需求,快速筛选掉不匹配的型…

你真的会写 HelloWorld 吗?

目录 Hello World 写一个批处理命令行脚本 关于include 关于程序的入口 输出充定向 在内存的存储详情 WinHex工具介绍 初学C语言时,第一个程序一定是Hello World!。但是Hello World的具体实现细节你真的了解吗? Hello World C语言代码如下&#…

java replace会替换吗,java replace replaceAll 替换字符串的用法和区别实例

java replace replaceAll 是替换字符串最常用的方法,但实际上用法是有区别的,replace只能传字符不能传正则表达式,replaceAll 默认传入的就是正则表达式。下面是实例测试代码: public class TestDemo { public static void main(S…