相机标定:理论与实践

先讨论相机模型,说明投影关系的描述,介绍相机的内外参,最后完成标定。

一、内参含义

把需要标定的相机参数叫做内参(intrinsics matrix),它决定了物体的实际位置Q在成像平面上的投影位置q,如下图所示:
在这里插入图片描述
数学表示为
在这里插入图片描述
内参M的组成元素包含焦距f(像素表示)和成像平面的中心c
对标定内参有一个较为直观的理解,因为具体的标定方法都已经是很成熟且易用的,因此理解基本理论显得更为重要。

二、外参的含义

我们知道内参是相机坐标系到像素坐标系的转换,外参就是两个三维坐标系间的刚体变换,从世界坐标系到相机坐标系

1、从世界坐标系到相机坐标系

简单说就是左乘一个旋转矩阵R ,然后再平移t 。用公式表示如下:
在这里插入图片描述
也就是:
在这里插入图片描述
其中, P0 为世界坐标系中的点, Pc
为相机坐标系中的点。这里面有个加法,如果需要转换多个坐标系就会层层嵌套,不够优雅,这里我们引入齐次坐标:
在这里插入图片描述
用齐次坐标就可以用一个矩阵乘法完成坐标变换,需要变换多个坐标系时也仅需要左乘多次即可。

此处的 (R,T) 即为外参。

2、从相机坐标系到像素坐标系

由上一步的变换,我们已经求得了相机坐标系的点,接下来我们就可以运用内参投影公式,将3D点投影到成像平面上了:
即:
在这里插入图片描述
其中,M为内参, Pc 为相机坐标系下一点。用齐次坐标形式表示出来:
在这里插入图片描述

最终的 (u,v) 即是 P0 的像素坐标。

三、内参的组成

标定的目的,直观来讲,就是找出三维空间中的物体在二维感光元件的投影位置的计算模型

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

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

相关文章

基于FPGA的图像RGB转HSV实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. RGB与HSV色彩空间 4.2. RGB到HSV转换原理 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的仿真结果导入到matlab中: 2.算法运行软件版本 vivado2019.2 matlab2022a …

java正则表达式(Pattern类和Matcher类)

文章目录 前言一、Java中使用正则表达式①捕获组②Pattern类与Matcher类Pattern类:Matcher类:Pattern类&Matcher类方法:Pattern类调用方法(静态方法):1、public static Pattern compile(String regex)2、public st…

Power Automate-创建审批流

提前在SharePoint上创建好对应的表 在创建中选择自动化云端流 选择当创建项时触发 选择站点和列表,再点击添加新步骤 搜索审批,点击进入 操作里的选项区别: 1)创建审批:创建一个审批任务 2)等待审批&…

适合汽车音频系统的ADAU1977WBCPZ、ADAU1978WBCPZ、ADAU1979WBCPZ四通道 ADC,24-bit,音频

一、ADAU1977WBCPZ 集成诊断功能的四通道ADC,音频 24 b 192k IC,SPI 40LFCSP ADAU1977集成4个高性能模数转换器(ADC),其直接耦合输入具有10 V rms性能。该ADC采用多位Σ-Δ架构,其连续时间前端能够实现低EMI性能。它可以直接连接…

Leetcode_3:无重复字符的最长子串

题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s "bbbbb"…

2011年09月01日 Go生态洞察:Go语言词法扫描与App Engine演示

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

《DevChat:AI编程助手引领开发新潮》

1. DevChat是什么? DevChat是一款由思码逸打造的AI编程工具,致力于提升开发者的编程效率。它集成了多种主流大模型,包括ChatGPT、Codex等,支持自然语言编程、代码编写、代码生成、代码补全等功能。DevChat的最大优势在于一站式服…

关于mac下pycharm旧版本没删除的情况下新版本2023安装之后闪退

先说结论,我用的app cleaner 重新删除的pycharm ,再重新安装即可。在此记录一下 之前安装的旧版的2020的pycharm,因为装不了新的插件,没办法就升级了。新装2023打开之后闪退,重启系统也不行,怀疑是一起破解…

虚假内容检测,谣言检测,不实信息检测,事实核查;纯文本,多模态,多语言;数据集整理

本博客系博主个人理解和整理所得,包含内容无法详尽,如有补充,欢迎讨论。 这里只提供数据集相关介绍和来源出处,或者下载地址等,因版权原因不提供数据集所含的元数据。如有需要,请自行下载。 “Complete d…

小程序 打开方式 页面效果 表单页面 点击跳到详情页 图标 获取后台数据 进行页面渲染

请求地址:geecg-uniapp 同源策略 数据请求 获取后台数据 ui库安装 冲突解决(3)-CSDN博客 一.uniapp转小程序 (1) 运行微信开发工具 (2) 配置id 然后运行 打开小程序 路径 E:\通\uniapp-jeecg\unpackage\dist\d…

【JavaEE初阶】 TCP三次握手四次挥手(超详细版)

文章目录 🌴三次握手四次挥手总览🛫三次握手(建立连接)🚩为什么要三次握手📌解决彼此双发彼此认同的问题📌验证双方的接听发送能力是否正常 🚩建立连接阶段涉及到的两个重要状态: &a…

盘点10个地推拉新和网推拉新app推广接单平台,免费一手渠道平台

首推:”聚量推客“ 一手官签服务商 官方邀请码 000000 在地推行业里,每个人心中的第一的地推拉新app推广接单平台可能不一样,但之所以会把相关的地推拉新app推广平台推上第一的宝座,就是因为这些地推平台有过人的优势。因此本篇文…

electron安装报错:Electron failed to install correctly...解决方案

问题描述: 按照官方文档在yarn dev时报错: 一般遇到Electron failed to install correctly,please delete node_moules/electron and try installing again这种错误时,就是electron本体没有下载成功 解决方案: 1、…

【技术驿站】分布式基础与常见面试问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java / Android 多线程和 synchroized 锁

s AsyncTask 在Android R中标注了废弃 synchronized 同步 Thread: thread.start() public synchronized void start() {/*** This method is not invoked for the main method thread or "system"* group threads created/set up by the VM. Any new functionali…

JVM垃圾回收机制

JVM 可达性分析法 1. 垃圾回收器的基本概念 什么是垃圾回收器:JVM 为 Java 提供了垃圾回收机制,其实是一种偏自动的内存管理机制。简单来说,垃圾回收器会自动追踪所有正在使用的对象,并将其余未被使用的对象标记为垃圾&#xff…

IntelliJ Idea 撤回git已经push的操作

最初的样子 现在的样子 解决方案 第一步,commit到本地撤回: 打开提交历史记录,选中回退的版本右键,点击“Reset Current Branch to Here…”,然后选中“Mixed”,点击Reset后,之前commit的代码会在本地显…

【Proteus仿真】【Arduino单片机】LCD1602-IIC液晶显示

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶等。 主要功能: 系统运行后,LCD1602液晶显示各种效果。 二、软件设计 /* 作者:嗨小…

STM32笔记—EXTI外部中断

一、简介 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行; 中断优先级&…

线程池创建、执行、销毁的原理解析

目录 线程池的执行原理线程执行参考: 线程池的执行原理 假设最大核心数是2,非核心线程数为1,队列长度是3 来第一个任务的时候,没有工作线程在工作,需要创建一个 来第二个任务的时候,发现当前核心线程数…