【计算机视觉】 摄像机标定

news2024/11/16 13:32:12

摄像机标定

齐次坐标

齐次坐标,将欧氏空间的无穷远点,与投影空间中有实际意义的消失点,建立起映射关系

把齐次坐标转化为笛卡尔坐标的方法:是前面n-1个坐标分量分别除以最后一个分量即可

image-20221204123738060

一些解释和性质:

image-20221204123928555

img

比较好的理解:

表达一个点比一个向量需要额外的信息。如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点!

如果用齐次坐标————上面的(1, 4, 7)如果写成(1,4,7,0),它就是个向量;如果是(1,4,7,1),它就是个点。因此可以用齐次坐标很好的将向量和点统一起来表示。

详见:https://blog.csdn.net/wonengguwozai/article/details/126123349

线性变换

线性变换包括:欧式变换Euclidean、仿射变换affine和透视变换projective。

欧式变换Euclidean

欧式变换保持了长度和角度平移旋转是欧式变换。也叫刚体变换。

平移

将一个点从一个位置转换到另一个位置

image-20221204144606996

其中:

image-20221204144503649

推广到三维:

旋转

image-20221204160006245

推广到三维:

image-20221204160039937

仿射变换affine

仿射变换保持了长度和角度比值,仿射变换的例子是剪切缩放

缩放

image-20221204160230100

剪切

image-20221204160252458

透视变换projective

透视变换可以来实现有限范围的点变换为无穷远点,将图像投影到一个新的视平面(也叫投影变换)

image-20221204160551432

图像成像

针孔透视

针孔模型中,光线通过一个无限小的孔,并且在成像平面上呈现出倒像。

**透视投影:**将三维物体的信息映射到二维平面上。

image-20221204161745792

弱透视

弱透视投影:平面中的所有线段都以相同的放大倍数进行投影。

相机事实上成像在后面,然后取倒像

image-20221204161841404

摄像机镜头

Snell定律

image-20221204162230448

薄透镜

image-20221204162328694

厚透镜

image-20221204162344794

z是镜到cmos的距离,Z是物体到镜的距离

相机的视野

相机的视野:即实际投影到相机视网膜上的景物部分,不仅由焦距定义,还取决于视网膜的有效面积(例如,相机中可曝光的胶片面积,或数码相机中的传感器面积)。

球形像差

简单地说:就是大光圈进光亮大造成虚化。

标准答案:

球形像差,顾名思义是由于透镜的球形表面造成的像差。实际上,球面镜不能将所有光线聚焦在同一点,透过镜片边缘进入的光线会偏离焦点形成像差。尤其在大光圈的时候,有较多光线可以通过镜片。最明显就是一些光点会虚化成一团光,这是由于边缘位置进入的光线与中心聚焦的偏差较大所致。

色差

不同波长(颜色)的光线由于折射系数的差异(色散),在通过透镜时将发生不同程度的折射然后与光轴相交于不同的位置,并在同一图像平面上形成不同的模糊圈(横向色差)。

摄像机的几何标定

内参矩阵

在u和v方向上分辨率分别为mu和mv,tu和tv是平移量。

image-20221204163348061

外参矩阵

相机的投影中心不在(0,0,0),主轴不在Z轴上,图像平面虽然仍然与主轴正交,但也不平行于XY平面。

设这个平移矩阵为T(Tx, Ty, Tz)。让主轴与Z轴重合的旋转矩阵由3×3旋转矩阵R给出,子矩阵(RT是平移矩阵)相乘得到3×4变换矩阵。

image-20221204164900311

E被称为外参矩阵

相机标定矩阵

image-20221204165051674

张正友标定法

image-20221204170055552

1.求解内参矩阵和外参矩阵的积H

image-20221204171818688

image-20221204170443815

当一张图片上的标定板角点数量等于4时,即可求得该图片对应的矩阵H 。当一张图片上的标定板角点数量大于4时,利用最小二乘法回归最佳的矩阵H 。

最小二乘法:简单地说就是通过n组X(u,v)和Y(U,V),求解八个参数。

https://blog.csdn.net/W1995S/article/details/118153146

2.求解内参矩阵

image-20221204175704911

image-20221204175733225

3.求解外参矩阵

image-20221204175824030

4、标定相机的畸变参数

image-20221204181321248

r为图像像素点到图像中心点的距离,即 image-20221204181517165

在这里,x->u y->v

image-20221204181808329

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux最常用命令用法总结(精选)

1. su 普通用户切换root用户 ubuntuubuntu20:~$ su Password: rootubuntu20:/home/ubuntu# exit exit ubuntuubuntu20:~$ 2. clear 清除当前终端显示的输出快捷键ctrlL键 3. cd 改变目录 ubuntuubuntu20:~/workspace$ cd .. ubuntuubuntu20:~$ cd / ubuntuubuntu20:/$ c…

docker下搭建redis集群

1. 环境准备 准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。学习docker基础知识可以参考这篇博文 安装好并启动docker后就可以开始搭建redis了 2. docker容器下安装redis 本篇文章…

数据链路层(必备知识)

文章目录1、数据链路层的作用2、认识以太网<1>以太网帧格式<2>认识MAC地址<3>认识MTU<4>查看硬件地址和MTU3、ARP协议<1>什么是ARP协议<2>ARP数据报格式<3>ARP协议的工作机制4、其他重要协议或技术<1> DNS<2>NAT技术1、…

《MySQL实战45讲》——学习笔记19 “SQL查一行执行慢的排查、锁等待/一致性读“【建议收藏】

由于SQL本身的写法问题&#xff08;如join太多表、未走索引/索引失效、一次查太多数据等&#xff09;&#xff0c;或是MySQL节点CPU占用率很高或IO利用率很高&#xff0c;都会导致一条SQL执行的比较慢&#xff1b;但是有时候&#xff0c;"只查一行数据"&#xff0c;也…

内存优化之重新认识内存

我们知道&#xff0c;手机的内存是有限的&#xff0c;如果应用内存占用过大&#xff0c;轻则引起卡顿&#xff0c;重则导致应用崩溃或被系统强制杀掉&#xff0c;更严重的情况下会影响应用的留存率。因此&#xff0c;内存优化是性能优化中非常重要的一部分。但是&#xff0c;很…

深入体会线程状态的切换

✨✨hello&#xff0c;愿意点进来的小伙伴们&#xff0c;你们好呐&#xff01; &#x1f43b;&#x1f43b;系列专栏&#xff1a;【JavaEE初阶】 &#x1f432;&#x1f432;本篇内容&#xff1a;线程状态详解 &#x1f42f;&#x1f42f;作者简介:一名现大二的三非编程小白&am…

微机-------CPU与外设之间的数据传送方式

目录 一、无条件方式二、查询方式三、中断方式四、DMA方式一、无条件方式 外设要求:简单、数据变化缓慢。 外设被认为始终处于就绪状态。始终准备好数据或者始终准备好接收数据。 IN AL,数据端口 数据端口的地址通过CPU的地址总线送到地址译码器进行译码,同时该指令进行的是…

JAVASE(复习)——异常

所有的异常都是在java.lang包中的Throwable类中 一、Exception 和 Error 的区别 exception&#xff1a;程序本身发生的异常&#xff0c;可以捕获抛出异常&#xff0c;一般用try—catch—finally捕获。 error&#xff1a;发生在jvm层面的错误&#xff0c;程序无法处理。 二…

Git 如何调整 commit 的顺序

title: Git 如何调整 commit 的顺序 date: 2022-12-02 23:11 tags: [git] 〇、问题 使用哪条命令调整commit的顺序&#xff1f; git rebase -i 一、前言 今天测试了git hooks&#xff0c;产生了大量的commit&#xff0c;而后又进行了正常的commit&#xff0c;因此在这里是想要…

java——mybatis——Mybatis注解开发——@Update——修改数据

DAO接口&#xff1a; package com.sunxl.dao;import com.sunxl.pojo.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.SelectKey; import org.apache.ibatis.annotations.Update;impo…

SpringBoot+Thymeleaf上传头像并回显【表单提交】

参考文章&#xff1a;springbootthymeleaf实现图片上传并回显https://www.wanmait.com/note/shaowei/javaee/b3717a24fde24d3e89c47765a1a63214.html 一、新建SpringBoot项目 添加 spring web和 thymeleaf 的依赖 二、在templates新建页面 在页面中添加一个表单和一个文件上传…

8086,8088CPU管脚,奇偶地址体, ready信号,reset复位信号。规则字和非规则字

8086/8088均为40条引线&#xff0c;双列直插式封装&#xff0c;某些引线有多重功能&#xff0c;其功能转换有两种情况&#xff1a;一种是分时复用&#xff0c;一种是按组态定义。 用8088微处理器构成系统时&#xff0c;有两种不同的组态&#xff1a; 最小组态&#xff1a;808…

@AutoWired与@Resource

参考 : Qualifier - 搜索结果 - 知乎 Autowired和Resource的区别是什么&#xff1f; - 知乎 面试突击78&#xff1a;Autowired 和 Resource 有什么区别&#xff1f; - 掘金 目录 同一类型多个Bean报错问题 Resource注解 Resource的查找顺序 Resource注解实现依赖注入 Reso…

网课题库接口调用方法

网课题库接口调用方法 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点…

QT对象树机制

Qt提供了对象树机制&#xff0c;能够自动、有效的组织和管理继承自QObject的Qt对象。 每个继承自QObject类的对象通过它的对象链表&#xff08;QObjectList&#xff09;来管理子类对象&#xff0c;当用户创建一个子对象时&#xff0c;其对象链表相应更新子类对象信息&#xff0…

Docker快速入门

容器Docker技术的演进 1.曾经部署应用&#xff0c;使用物理机部署&#xff0c;这可能会因为不同应用所依赖的版本号不同&#xff0c;不得已购买一套全新的机器&#xff0c;所以成本高、部署慢、资源浪费、难以迁移和拓展、可能会被限定硬件厂商。 2.之后引入了VMVare&#xff…

使用JPA和Hibernate查询分页

介绍 受到我最近给出的StackOverflow答案的启发&#xff0c;我决定是时候写一篇关于使用JPA和Hibernate时查询分页的文章了。 在本文中&#xff0c;您将了解如何使用查询分页来限制 JDBC大小并避免获取不必要的数据。ResultSet 如何在#Hibernate中使用查询分页来限制 JDBC 结…

pytorch深度学习实战lesson32

第三十二课 分布式训练 这个是15年的时候沐神在 CMU 装的一个小机群&#xff0c;里面有30台机器&#xff0c;各机群有大概60块 GPU &#xff0c; 60块 GPU一共花了三四万美金的样子&#xff0c;就是大概20万人民币。沐神表示最亏的是当年他们跑了太多深度学习的实验&#xff0c…

C语言-const char*,char const*,char *const理解

By: Ailson Jack Date: 2022.12.04 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/150.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…

传奇外网开服教程-GEE传奇外网全套架设教程

版本不同&#xff0c;所用的引擎和配置也会不同&#xff0c;但是架设方法都是大同小异&#xff0c;今天明杰给大家分享GEE引擎的外网架设教程。​ 需要准备的东西&#xff1a;DBC200版本&#xff0c;补丁&#xff0c;客户端&#xff0c;服务器&#xff0c;备案域名&#xff0c…