相机模型,坐标变换,畸变

小孔成像模型

墨子就记录了小孔成像是倒立的。这从几何光学的角度是很好理解的:光沿直线传播,上方和下方的光线交叉,导致在成像平面位置互换。

小孔的大小有什么影响?

小孔越大,进光量变大了,但是成像平面上一个点来源于物体的多个点,相当于画画的笔触越粗,所成的像也越模糊。

但是小孔越小成像就越清晰吗?先不说技术上无法实现,孔越小,光的衍射diffraction现象会越明显,光要越过障碍物,会出现水波纹:

小孔的形状有什么影响?

无论小孔什么形状,物体的每个位置会穿过小孔,在平面投下小孔形状的图案。但结果小孔的物体有无数道光线,所以最终成像来看没什么差异。正如前面的比方,改变小孔的形状,也可以理解为笔触的不同。

坐标变换

世界坐标到相机坐标

相机坐标系的原点是光心。世界坐标系到相机坐标系,是一个仿射变换:旋转+平移。

P_c=\begin{pmatrix} R & T\\ 0 & 1 \end{pmatrix}P_w

相机坐标到传感器坐标

图像坐标系是以传感器sensor为原点的,所以相机坐标系到图像坐标系就是一个缩放变换。

由三角形相似可以得到,缩小的尺度就是焦距f和物距的比值。

\begin{bmatrix} X\\ Y\\ Z \end{bmatrix}=\frac{1}{Z_c}\begin{pmatrix} f& 0& 0\\ 0 & f& 0\\ 0& 0 & 1 \end{pmatrix}\begin{pmatrix} X_c\\ Y_c\\ Z_c \end{pmatrix}

传感器坐标到像素坐标

像素坐标是离散化的,它是以传感器坐标以像素长宽为单位得到的。因为图像一般以左上角为原点,所以传感器坐标到像素坐标还需要一次平移。

内参和外参

前面从世界坐标系到像素坐标系经历了三次坐标变换。第一次涉及到的的平移和旋转构成了外参矩阵,后两次构成了内参矩阵。

外参有6个参数,3个控制旋转,3个控制平移。

内参有10个参数,其中五个是f,dx,dy,u_0,v_0,分别表示焦距,像素宽度,像素高度,图像宽度,图像高度。另外五个控制畸变。

畸变

近大远小

在相机坐标系到传感器坐标系转换中,涉及到了焦距和物距:

由上面的坐标变换公式可以看到, 成像大小与物距成反比,焦距成正比。这就可以解释透视关系中的近大远小。

那么是不是焦距和物距等比例同时放大缩小,成像就不变?理论上是这样的,但是物体不是一个平面,不同位置到镜头的距离是不一样的,没办法保证所有的点同时满足等比例变换,所以就会产生透视畸变:前景处被放大,背景处被缩小。

这就可以解释为什么拍特写摄影师都推荐用长焦。虽然剧烈近一点用短焦也可以拍出差不多大的像,但是因为焦距小,物距的微小变化就会被放大,导致畸变严重。

切向畸变

借鉴近大远小的分析,即便是平面物体,当平面和镜头不平行时,就产生了切向Tangential畸变。

径向畸变

径向是指半径的方向。因为镜头制作工艺,图像中心和边缘的折射有差异,所以产生了径向畸变。径向畸变又分为桶形畸变和枕形畸变:

很显然,径向畸变是关于半径r的函数,所以一般建模为r的指数多项式。

reference:

29. 小孔相机 - 知乎

为什么小孔成像实验中,孔的形状不影响像的形状? - 知乎

aachen数据集,其中一项是内参

> The intrinsic calibration is defined by the width `w` and height `h` of the image, its focal length 
`f`, the position of the principal point (`cx` and `cy`), and a radial distortion parameter `r`. 

Step1:模型 16个相机参数(内参、外参、畸变参数)-CSDN博客

Computer Vision

相机标定(Camera calibration)-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/328035.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion入门使用技巧及个人实例分享--大模型及lora篇

大家好,近期使用Stable Diffusion比较多,积累整理了一些内容,得空分享给大家。如果你近期正好在关注AI绘画领域,可以看看哦。 本文比较适合已经解决了安装问题,(没有安装的在文末领取) 在寻找合…

智能防疫电梯模拟控制系统设计-设计说明书

设计摘要: 本设计是基于单片机的智能防疫电梯模拟控制系统,主要实现了多项功能。首先,系统进行无接触测温,如果温度正常则可以启动电梯运行,如果温度异常则电梯会报警提示有乘客体温异常,电梯不会运行。其…

04、Kafka集群安装

1、准备工作 首先准备一台虚拟机,centos7系统,先在一台上配置安装后,最后克隆成多台机器。 1.1 安装JDK (1)下载JDK,上传到 /root/software 路径 下载地址:https://www.oracle.com/cn/java/…

Node.js 学习笔记 express框架

express express 使用express下载express 初体验 express 路由什么是路由1路由的使用验证的方法 2获取请求报文参数3获取路由参数4响应设置响应报文 express 中间件5中间件全局中间件路由中间件 6静态资源中间件注意事项案例 7请求体数据8防盗链实现防盗链 9路由模块化router E…

【解决】Unity Build 应用程序运行即崩溃问题

开发平台:Unity 2021.3.7f1c1   一、问题描述 编辑器 Build 工程结束,但控制台 未显示 Build completed with a result of Succeeded [时间长度] 信息。该情况下打包流程正常,但应用程序包打开即崩溃。   二、问题测试记录 测试1&#xf…

CSS-flex布局

目录 flex布局组成 (flexible box弹性布局) display属性值:flex justify-content (主轴对齐方式) flex-start flex-end ​编辑 flex-center space-between 侧轴对齐方式 stretch center flex-end flex-direction (修改…

【C语言】4.C语言数组(1)

文章目录 1. 数组的概念2. 一维数组的创建和初始化2.1 数组创建2.2 数组的初始化2.3 数组的类型 3. 一维数组的使用3.1 数组下标3.2 数组元素的打印3.3 数组的输⼊ 4. 一维数组在内存中的存储5. sizeof计算数组元素个数 1. 数组的概念 数组是一组相同类型元素的集合。 数组分…

我和jetson-Nano的故事(10)——安装OpenCV3.2.0

1. 仓库地址 opencv https://opencv.org/releases/page/6/opencv_contrib https://github.com/opencv/opencv_contrib/tree/3.2.0 2. cmake-gui安装 安装指令 sudo apt-get install cmake-qt-gui如果安装过程中入到下面的问题 可以按照以下方法解决 sudo apt --fix-broke…

BakedSDF: Meshing Neural SDFs for Real-Time View Synthesis 论文阅读

(水一篇博客) 项目主页 BakedSDF: Meshing Neural SDFs for Real-Time View Synthesis 作者介绍 是 Mildenhall 和 Barron 参与的工作(都是谷歌的),同时一作是 Lipman 的学生,VolSDF 的一作。本文引用…

旧手机-基于Termux配置服务器(不用拿去换钢盆了)

Hi,大家好,我是抢老婆酸奶的小肥仔。 大家用手机这么多年了,手上或多或少都有一两个被替换下来的旧手机,也不用拿去换啥钢盆了,使用Termux可以将旧手机改造成一个服务器。 不多说,直接开干。 1、安装app…

基于springboot+vue+Mysql的在线答疑系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

经纬恒润助力AR-HUD市场发展,国产供应商共筑行业新篇章

根据盖世汽车研究院数据显示,1-2月经纬恒润AR-HUD出货量已达到国产供应商前五。未来,经纬恒润将持续努力,推动AR-HUD发展,共筑行业新篇章! 了解更多: 请致电 010-64840808转6115或发送邮件至market_depthi…

MySQL创建索引报错 Specified key was too long;max key length is 1000 bytes.

MySQL对创建索引的大小有限制,一般索引键最大长度总和不能超过1000个字节。 问题描述 MySQL创建索引时报错 Specified key was too long;max key length is 1000 bytes. 解决办法 (1) 修改存储引擎 InnoDB的索引字段长度限制大于MyISAM,可以尝试改成…

【面试必看】MySQL部分

MySQL 1. 基础 1. 什么是关系型数据库? 一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。各种表中(比如用户表),表中的每一行就存放着一条…

CAPL入门之使用CAPL记录测试Logging

0 前言 以往测试的log都是直接从trace导出,但是最近发现trace中能导出的数据是有限的,如果测试的时间过长,新的数据就会把之前的数据全部覆盖,并且对于长时间的测试,直接导出trace的内容也会造成查找效率低下的问题。因…

【计算机网络】HTTP协议详解实战抓包分析教程

文章目录 1.HTTP简介2.HTTP报文的结构3.HTTP协议中空行的作用4.uri和url的区别5.HTTP请求5.1 HTTP请求方法5.2 HTTP请求报头 6.HTTP响应6.1 状态码 7.HTTP位于应用层(基于TCP)8.非持久和持久连接8.1 非持久连接8.2 持久连接 1.HTTP简介 HTTP(Hypertext Transfer Pr…

Springboot+mybatis-plus+dynamic-datasource+继承DynamicRoutingDataSource切换数据源

Springbootmybatis-plusdynamic-datasource继承DynamicRoutingDataSource切换数据源 背景 最近公司要求支持saas,实现动态切换库的操作,默认会加载主租户的数据源,其他租户数据源在使用过程中自动创建加入。 解决问题 1.通过请求中设置租…

用户页面触发点击事件和 js 执行点击事件的区别

文章目录 情景展示情况一:用户点击页面触发情况二:通过 js 触发点击 结果分析情况一情况二 其实这个谜底揭开之后,第一反应都是,哦~,非常简单,但是细节决定成败,我被这个细节毁掉了,…

【十大排序算法】----选择排序(详细图解分析+实现,小白一看就会)

目录 一:选择排序——原理 二:选择排序——分析 三:选择排序——实现 四:选择排序——优化 五:选择排序——效率 一:选择排序——原理 选择排序的原理:通过遍历数组,选出该数组…

精酿啤酒:精酿文化的传承者与创新者

在啤酒的世界中,精酿啤酒是一种与众不同的文化现象。这种文化源于对啤酒品质的追求和对传统工艺的尊重,但在不断发展中也不断涌现出创新。作为精酿啤酒的品牌,Fendi club啤酒不仅是这种文化的传承者,更是创新者。 Fendi club啤酒始…