机器视觉(三):摄像机标定技术

news2024/11/29 18:34:06

目录:

机器视觉(二):机器视觉硬件技术

机器视觉(三):摄像机标定技术

🌏🧐以下为正文🦄🪐

摄像机标定的目的:三维重建

       空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数,为了得到这些参数而进行的实验与计算的过程称为摄像机标定。

       在标定过程中通常要利用数学方法对从数字图像中获得的数据进行处理。通过这些数学处理,可以得到摄像机的内部和外部参数。

一、成像几何模型

1.世界坐标系

2.摄像机坐标系

3.图像坐标系

         M1只与摄像机内部结构有关,称为摄像机内部参数;M2只与摄像机相对于世界坐标系的方位有关,称为摄像机外部参数;X为空间点在世界坐标系下的齐次坐标,M为       矩阵,称为透视变换矩阵。

4.空间点与像点的非线性关系分析

        由于摄像机的光学成像系统与理论模型之间的差异,二维图像存在着不同程度的非线性变形,目标像点与理论成像点相比存在着多种类型的几何畸变.

        径向畸变主要是由镜头形状缺陷造成的,是关于摄像机镜头的主光轴对称的。正向畸变是枕形畸变,负向畸变是桶形畸变,其数学模型为:

        偏心畸变主要是由光学系统光心与几何中心不一致造成的,即各透镜的光轴中心不能严格共线。这类畸变既含有径向畸变,又含有切向畸变。切向畸变的数学模型为

        薄棱镜畸变是由于镜头设计、制造缺陷或加工安装误差所造成的,如镜头与摄像机像面有很小的倾角等。这类畸变相当于在光学系统中附加了一个薄棱镜,不仅会引起径向偏差,而且引起切向误差。其数学模型为:

二、典型标定方法

1.传统摄像机标定方法

优点:可以使用于任意的摄像机模型,标定精度高。

不足:标定过程复杂,需要高精度的已知结构信息。在实际应用中很多情况下无法使用标定块。

2.摄像机自标定方法

特点:仅依靠多幅图像之间的对应关系进行标定。

优点:仅需要建立图像之间的对应,灵活性强,潜在应用范围广。

不足:非线性标定,鲁棒性不高。

3.传统的摄像机标定方法

        利用已知的景物结构信息。常用到标定块。

  • 利用最优化算法的标定方法
  • 利用摄像机变换矩阵的标定方法
  • 两步法
  • 双平面标定法

基本原理:

        其中,K为摄像机的内参数矩阵。由于摄像机有5个未知内参数,所以当所摄取得的图象数目大于等于3时,就可以线性唯一求解出K。

张正友方法所用的平面模板

4.摄像机自标定方法

        利用本质矩阵和基本矩阵的摄像机标定方法;利用主动系统控制摄像机作特定运动的自标定方法(主动视觉标定方法)。

5.基于平面单应矩阵的正交运动方法原理

        t(1)、t(2)为摄像机一组正交的平移运动,两个单应矩阵:

五组两正交运动可完全求解5个内参数。

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

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

相关文章

ESP32使用MiroPython编程环境搭建

大家好! 今天和大家聊一聊ESP32使用MrioPython编程的环境搭建过程。 目录 一、在ESP32上使用MiroPython的必要条件 二、安装Thonny 1.安装地址 2.安装过程 三、下载MiroPython 四、下载ESP32驱动 五、烧录MicroPython到ESP32 六、点亮ESP32设备LED灯 一、在…

无人机技术服务应用

无人机技术服务应用 随着无人机的迅速发展,无人机行业应用越来越丰富,如何实现无人机行业内高效的运营一直是我们关注的重点。当今无人机具有的优势很多,例如:携带方便、操作简单、反应迅速、载荷丰富、任务用途广泛、起飞降落对…

计算机网络【HTTP协议】

计算机网络【HTTP协议】🍎一.HTTP协议概述🍒1.什么是HTTP协议🍒1.2 Fiddler(抓包工具)🍎二.HTTP协议格式🍒2.1HTTP请求🍉2.1.1 HTTP请求格式🍉2.1.2 HTTP请求格式URL&…

语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、路径覆盖

白盒测试的测试用例在大二学习软件工程的时候也是一个重点模块,但是上课没有太多时间做太多的测试用例,然后许久不用会搞乱,所以这里简单复盘一下。 白盒测试是结构测试,主要对代码的逻辑进行验证。 逻辑覆盖率:语句覆…

软件推荐:AList

软件推荐:AList AList是一个开源Web服务,可以添加多种网盘,将你的多个网盘应用集成到一个统一应用中使用,并且还支持通过WebDAV服务映射到操作系统本地目录使用。 GitHub:https://github.com/alist-org/alist 安装 …

双十一买什么比较划算?四款实用性超强不吃灰的数码好物推荐

现如今,越来越多的数码产品逐渐融入我们的生活当中。但是,在众多的数码产品中,很多人买来用过一两次就放着吃灰的产品也不在少数。因此,我来给大家推荐几款实用性强、不吃灰的数码好物,一起来看看吧。 一、南卡小音舱…

面试算法题

文章目录数组中的第K个最大元素快排k个一组反转链表解法一:栈解法二:模拟买卖股票最佳时机买卖股票最佳时机i买卖股票最佳时机ii贪心无重复长度子串最长递增子序列只出现一次的数字 IIIlru缓存合并K个升序链表数组中的第K个最大元素 快排 class Solutio…

第一个程序

第一个程序 1. 常用DOS命令 1.1 打开命令提示符窗口 1. winR2. cmd3. 按下回车键 1.2 常用命令 2. Path 环境变量的配置 2.1 为什么要配置 Path环境变量 开发 Java程序, 需要使用 JDK 提供的开发工具, 而这些工具在 JDK 的 安装目录的 bin目录 下。未来…

【测试代码 基于Pytorch】的卷积神经网络(CNN) || 【基于Pytorch】的深度卷积神经网络(DCNN)

声明:仅学习使用~ 目录 一、卷积神经网络 CNN1、【基于Pytorch】的卷积神经网络(CNN)2、【基于Pytorch】的深度卷积神经网络(DCNN)一、卷积神经网络 CNN CNN,这里以 LeNet 为例。LeNet神经网络由深度学习三巨头之一的Yan LeCun提出,他同时也是卷积神经网络 (CNN,Convo…

RHCE之路配置本地DNS服务器的正反向解析

第十天 SOA格式 ---(序列号,同步时间,重试时间,过期时间,TTL) 正向解析 [roota ~]# mount /dev/sr0 /mnt mount: /mnt: WARNING: device write-protected, mounted read-only. [roota ~]# yum install bin…

Java 8 新特性 ---- Lambda 表达式

Java 8 新特性 ---- Lambda 表达式1. Java7与Java8的区别2. Lambda表达式3. 语法4. Lambda 表达式实例5. 变量作用域1. Java7与Java8的区别 // 使用 java 7 排序private void sortUsingJava7(List<String> names){ Collections.sort(names, new Comparator<String&g…

matplotlib中的pyplot实用详解

matplotlib中的pyplot实用详解示例1&#xff1a;使用axes确定子图的位置相关函数详解1、plt.subplot()2、plt.subplots_adjust() 与 plt.axes()来控制子图的位置示例1&#xff1a;使用axes确定子图的位置 import matplotlib.pyplot as plt import numpy as np# 固定随机种子 np…

Typescript 学习笔记(二)高级类型二

交叉类型 交叉类型&#xff08;&&#xff09;&#xff1a;功能类似于接口继承&#xff08;extends&#xff09;&#xff0c;用于组合多个类型为一个类型&#xff08;常用于对象类型&#xff09; interface Person2 {name: string} interface Contact {phone: number} typ…

有一个是对的,就是坚持去做难的事情。

不要总是想着去找那些让自己赚到的工作&#xff0c;你自己心里清楚&#xff0c;自己有几斤几两&#xff0c;配什么样的公司。不要贪&#xff0c;不然最后原本该得到的都没有得到。你找差点的工作心里也踏实对不对&#xff0c;不会说比较慌&#xff0c;每天都过不安稳。不要幻想…

软件设计师--其他高频考点总结

视频2022软件设计师-提炼高频考点-个人学习过程的总结&#xff0c;仅供参考&#xff01;_哔哩哔哩_bilibili 目录 1&#xff0c;网络攻击 2&#xff0c;网络安全 3,防火墙 4&#xff0c;耦合 --模块之间相对独立性的度量 5&#xff0c;内聚--模块间内部元素彼此紧密的程度…

Python与爬虫有什么关系?

爬虫一般是指网络资源的获取&#xff0c;因为python的脚本特征&#xff0c;Python易于配置&#xff0c;对字符的处理也非常灵活&#xff0c;加上python有丰富的网络抓取模块&#xff0c;所以两者经常联系在一起。 接下来我们可以详情了解python到底有什么作用。 首先Python翻译…

B树和B+树的区别

【篇首语】&#xff1a; 渐渐地&#xff0c;面试时被问起数据结构&#xff0c;MySQL调优&#xff0c;索引的原理等。首先感谢《王道计算机考研》的一些课程&#xff0c;让我学到了很多。 其实在这个问题之前&#xff0c;应该先了解扇区、磁道、磁盘存储数据的方式等相关概念&a…

荧光标记染料:diSulfo-Cy3 azide,2055138-89-9,二磺酸-Cy3-叠氮

【中文名称】二磺酸-Cy3-叠氮 【英文名称】 diSulfo-Cy3 azide 【结 构 式】 【CAS】2055138-89-9 【分子式】C33H41KN6O7S2 【分子量】736.94 【纯度标准】95% 【包装规格】1mg&#xff0c;5mg&#xff0c;10mg 【是否接受定制】可进行定制 【外观颜色】 红色固体&#xff0…

Spring注解@NonNull作用 Spring注解@Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用

Spring注解NonNull作用 Spring注解Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用 一、概述 在看Spring源码的时候&#xff0c;经常会发现有 NonNull 或 Nullable 注解的标记&#xff0c;一般是在方法上&#xff0c;或在 参数中&#xff0c;本着好奇的心里&…

【JavaWeb】第三章 JavaScript基础

文章目录1、JavaScript介绍2、JavaScript和HTML代码的结合方式2.1 第一种方式2.2 第二种方式3、JS的变量和数据类型4、JS关系运算符5、JS逻辑运算符6、数组7、JS函数的定义8、JS函数的隐形参数arguments9、JS中的自定义对象1、JavaScript介绍 JavaScript&#xff08;JS&#x…