单目视觉标定(1)原理解析

2023-05-16

标题:单目视觉标定(1)原理解析

一、相机标定目的

一、相机标定目的
为什么重要?
在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。
无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。
标定目的:
第一,要还原摄像头成像的物体在真实世界的位置就需要知道世界中的物体到计算机图像平面是如何变换的,相机标定的目的之一就是为了搞清楚这种变换关系,求解内外参数矩阵。
第二,摄像机的透视投影有个很大的问题——畸变。摄像头标定的另一个目的就是求解畸变系数,然后用于图像矫正。

二、相机标定原理

2.1坐标系转换

二、相机标定原理
2.1四大坐标系转换:
相机标定涉及四大坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。

(1)世界坐标系转换至相机坐标系:
在这里插入图片描述

(2)相机坐标系转换至图像坐标系:
在这里插入图片描述

(3)图像坐标系转换至像素坐标系:
在这里插入图片描述

(4)得出坐标转换最后公式
在这里插入图片描述

2.2坐标系旋转与齐次坐标的理解

2.2坐标系旋转与其次坐标的理解:

(5)坐标系旋转原理:
在这里插入图片描述
(6)其次坐标理解:在这里插入图片描述

2.3畸变参数影响

2.3畸变参数影响 :
2.2畸变参数
(1)畸变一般可以分为:径向畸变、切向畸变,其他畸变影响相对较小一般不考虑。
ps:畸变是相机本身的固有特性,和相机内参相同。
在这里插入图片描述

畸变相当于转换过程中增加了一步:

在这里插入图片描述
在这里插入图片描述

常见的畸变模型有一阶和二阶畸变模型,还有考虑了切向畸变的四阶和八阶模型。

(2)畸变类型
径向畸变:(桶形畸变和枕形畸变)
产生原因是在相机制造过程中,很难保证镜头的厚度完全均匀,由于制造工艺的原因,通常为这种情况为中间厚、边缘薄,因而光线在远离透镜中心的地方,会发生更大程度的扭曲。
在这里插入图片描述

切向畸变:(薄透镜畸变和离心畸变)
切向畸变原因:在于相机在制造过程中,成像平面与透镜平面不平行。
在这里插入图片描述

(3)畸变校正函数:一般采用泰勒展开来描述
径向畸变:
在这里插入图片描述

切向畸变:
在这里插入图片描述

所以得到5个畸变参数:
r 为曲率半径,有 r2=x2+y^2
—x,y 为发生畸变后像点的坐标,也就是我们实际看到的;
—x’,y’ 为畸变矫正,也就是去除畸变后的正确像点坐标;
—k1,k2,k3为径向畸变系数,
对于畸变较小的图像中心区域,主要是k1在起作用;
对于畸变较大的图像边缘区域,主要是k2在起作用;
而对于广角相机,才会用k3去校正相机的畸变。
—p1,p2为切向畸变系数

参考:
四大坐标系变换:
https://blog.csdn.net/qq_36537774/article/details/81604481?
一文图解相机标定:
https://blog.csdn.net/Yong_Qi2015/article/details/108332697?
三维坐标旋转矩阵:
https://blog.csdn.net/Nr0315/article/details/89813587?
齐次坐标的理解:https://www.cnblogs.com/csyisong/archive/2008/12/09/1351372.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单目视觉标定(1)原理解析 的相关文章

  • python中函数的参数分类

    python中函数的参数 形参 xff1a 定义函数时代表函数的形式参数 实参 xff1a 调用函数时传入的实际参数 列如 xff1a def f x y x y形参 print x y f 1 2 1 2 实参 定义函数时 xff0c 形
  • 信号量(sem)控制访问有限共享资源的线程数

    信号量 sem t就是个资源计数器 xff0c 用于控制访问有限共享资源的线程数 span class token macro property span class token directive keyword include span
  • 不需要各种代码的MATLAB语法高亮的设置,简单实用

    文章目录 前言一 代码高亮是什么 xff1f 二 设置步骤1 点击主页再点击预设2 点击MATLAB再点击颜色别着急因为是窗口太小哦所以要放大取消使用系统颜色 xff0c 然后自己选择文本颜色和背景颜色 总结 前言 这次主要想说说MATLA
  • 优先级队列(堆)

    优先级队列 1 什么是优先级队列2 什么时候用它什么时候不用它3 它的具体用法记得import两个库 xff1a 3 1定义3 2输入输出 1 什么是优先级队列 优先级队列就是用库内已有的类 xff0c 这个类名字是队列 xff0c 其实不
  • 2.1 关系模型的基本概念

    文章目录 2 1 1 基本术语定义2 1 用二维表格表示实体集 xff0c 用关键码表示实体间联系的数据模型称为关系模型 xff08 relational Model xff09 在关系模型中 xff0c 关键码 key 简称键 由一个或多
  • 2.2 关系代数的五个基本操作

    文章目录 前言2 2 关系代数2 2 1 关系代数的五个基本操作 1 投影 xff08 Projection xff09 2 选择 xff08 Selection xff09 选择与投影组合 3 xff09 并 xff08 Union xf
  • web的一些介绍

    文章目录 前言一 什么是Web xff1f 二 基本Web服务结构软件编程体系C S xff08 Client Server xff09 软件体系结构B S xff08 Brower Server xff09 软件体系结构C S结构与B S
  • .net技术第一章

    文章目录 NETC C Sharp 的特点C 的应用范围 NET Framework1 2 创建简单的C 程序结构和书写规则类型的声明和使用类型的声明和使用命名空间使用方法命名空间举例 注释Main方法命令行参数Main返回值 控制台输入和
  • .net----委托和事件

    委托和事件 委托声明实例化调用将类型安全的函数指针 方法 作为其他方法的参数进行传递 xff0c 从而实现函数回调方法委托 xff1a 匿名方法委托 多播委托委托 xff1a 委托的异步调用委托 xff1a 委托的兼容性 事件事件实际上是委
  • .net-----语言集成查询LINQ

    语言集成查询LINQ 前言相关语言要素初始值设定项匿名类型相关语言要素Lambda表达式扩展方法 LINQ的概念和基本操作集成语言查询LINQLINQ查询操作 标准查询运算符数据排序数据筛选数据投影数据分组联接运算数据分区限定运算聚合运算集
  • .net-----Windows 窗体应用程序包括控件,对话框,多重窗体,绘制图形,菜单和工具栏

    目录 前言Windows窗体应用程序概述 xff1b 窗体和大部分控件常用的事件创建Windows窗体应用程序使用Visual Studio集成开发环境实现Hello World程序 使用常用Windows窗体控件 xff1b Label
  • python字符串内建函数

    在八进制数前面显示零 0 xff0c 在十六进制前面显示 0x 或者 0X 取决于用的是 x 还是 X 0 显示的数字前面填充 0 而不是默认的空格 输出一个单一的 var 映射变量 字典参数 m n m 是显示的最小总宽度 n 是小数点后
  • 物理层-计算机网络速成

    物理层 1 物理层的基本概念1 1四大特性机械特性电气特性功能特性过程特性 1 2两种信号1 3 调制编码调制编码区别 1 4 传输介质双绞线光纤同轴电缆 xff1a 淘汰 xff0c 有线电话无线 xff1a IEEE802 11 1 5
  • 考研第一天,汤家凤基础班,连续与极限复习笔记

    函数连续极限 性质保号性证明极值点 xff1a 夹逼准则二项式展开根号下 xff0c 大于一 xff0c 小于一的讨论直接放缩求和分子分母齐次 xff0c 且分母大一次 xff0c 用积分 单调有界存在极限几个重要的切线放缩证明有界 xff
  • Ubuntu双系统安装教程

    安装Ubuntu双系统 1 下载Ubuntu镜像源文件2 下载制作U盘启动工具3 磁盘分区4 安装Ubuntu 1 下载Ubuntu镜像源文件 18 04 6链接 xff1a http mirrors aliyun com ubuntu r
  • Arduino造轮子—红外遥控器

    今天练习的程序是实现红外遥控器的控制 xff0c 首先 xff0c 通过太极创客的视频来看看最终的实现结果 xff1a 太极创客 零基础入门学用Arduino 第三部分 智能应用篇 合辑 本次程序例程来自太极创客官网 xff0c 此平台的A
  • 嵌入式软件刷题日记【第一天】

    1 什么是同步IO xff0c 什么是异步IO 同步就是在发出一个功能调用时 xff0c 会一直阻塞等地结果 异步就是在发出一个功能调用时 xff0c 无需阻塞等待结果 xff0c 当结果产生一般通过状态 xff0c 回调等方法来通知调用者
  • 嵌入式软件刷题笔记【第四天】

    1 头文件的两种包含形式的区别 xff1f lt gt 尖括号形式表示引用系统编译器类库路径里面的头文件 34 34 双引号则表示引用当前文件工作目录相对路径里面的头文件 2 STM32 中断是怎么进入到中断服务程序的 xff1f STM3
  • 嵌入式软件刷题【第五天】

    1 在请求分页式存储管理中 xff0c 假设一次内存访问时间为 100ns xff0c 一次快表 xff08 TLB xff09 访问时间为 20ns xff0c 地址转换计算时的快表命中率为 80 xff0c 请计算平均有效内存访问时间为
  • OSlab

    OSlab B站链接 xff1a https www bilibili com video BV1kU4y1m7QW share source 61 copy web Linux环境实践作业 在Windows Terminal的Ubuntu

随机推荐