【数字图像处理】立体视觉基础(1)

成像

成像过程:三维空间坐标到二维图像坐标的变换

相机矩阵:建立三维到二维的投影关系

相机的使用步骤(模型-视图变换):

(1)视图变换

(2)模型变换

(3)投影变换

(4)视口变换

相机的参数:含内参(intrinsics)、外参(extrinsics)、畸变系数(distortion coefficients)

相机内参矩阵

【1】针孔成像

障碍物滤除大多数的辐射线后,通过小孔成像。

即通过光圈孔径成像。

【2】相机模型基础

•针孔成像模型(Pinhole camera model)

•正射投影(Orthographic projection)

•缩放投影(Scaled orthographic projection)

•平行透视(Paraperspective projection)

•透视投影(Perspective projection)

【3】相机内参推演

内参矩阵:将3D相机坐标变换到2D齐次图像坐标

【4】相机内参矩阵计算

(1)焦距:从像素到世界单元

内参矩阵只关心相机坐标和图像坐标之间的关系,与相机的绝对尺寸无关

(2)2D变换中的相机内参的计算

方式一:将内参矩阵分解分别对应焦距、主点偏移、轴倾斜

方式二:将内参矩阵分解分别对应主点偏移、轴倾斜、焦距

内参不影响可见性——阻隔对象

在图像空间中无法通过简单的2D变换显示出来

相机外参矩阵

【1】相机外参导论

透视投影或立体投影

相机外参矩阵:世界坐标系到相机坐标系的刚体变换

旋转和平移来描述物体相对于相机坐标系统的相对姿态

世界坐标系与相机坐标系之间的关系可以用旋转矩阵 R 平移向量 t 来描述

(1)平移矩阵

(2)旋转矩阵

外参矩阵以刚体变换矩阵的形式:旋转矩阵 + 平移列向量

【2】相机外参求解

相机姿态的变换矩阵 (Rc |C)

        描述相机中心在世界坐标系中的位置的 向量 C 

        相机在世界坐标系旋转到当前姿态需要的 旋转矩阵 Rc

外参矩阵 是 相机姿态矩阵的逆

结合相机内参+外参:

镜头畸变

镜头畸变:透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真

分类:径向畸变和切向畸变

        一共有5个畸变参数:k1、k2、k3、p1、p2

(1)径向畸变

沿着透镜半径方向分布的畸变

主要包括:枕形畸变和桶形畸变

调节公式:

(2)切向畸变

透镜本身与相机传感器平面(成像平面)或 图像平面不平行

相机模型参数归纳

相机中四个坐标系:{world},{camera},{image},{pixel}

【1】从{world}到{camera}

【2】从{camera}到{image}

【3】从{image}到{pixel}

【4】从{world}到{pixel}四个坐标系的变换过程

镜头畸变:

16个单目相机的参数:

(1)10个内部参数

(2)6个外部参数

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

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

相关文章

实验4:列表与字典应用

目的 :熟练操作组合数据类型。 试验任务: 1. 基础:生日悖论分析。如果一个房间有23人或以上,那么至少有两个人的生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23 个人中至少两个人生日相同的…

c++之网络编程

网络编程:使得计算机程序能够在网络中发送和接受数据,从而实现分布式系统和网络服务的功能。 作用:使应用程序能够通过网络协议与其他计算机程序进行数据交换 基本概念 套接字(socket): 套接字是网络通信…

【Harmony_Bug】forEach + asyncawait 的异步陷阱

一、问题描述 今天在做一个RDB的小项目时,遇到一个问题,因为没报错其实也是不算是BUG,以下描述时我就直接说关键点,其他代码忽略。 我的数据模型初始化有六条数据如图 在持久化层,通过initUserData这个方法执行插入。…

大肠杆菌诱导蛋白时OD600=0.6-0.8添加IPTG的思考-实验操作系列-009

一、为什么用OD600表示菌液浓度? 1. 光密度与吸光值的关系 OD600是指在600纳米波长下的光密度(Optical Density),也就是通过细菌悬浮液的光的吸收程度。根据比尔-朗伯定律,光密度与溶液中光学活性物质(如…

OpenHarmony - 小型系统内核(LiteOS-A)(十),魔法键使用方法,用户态异常信息说明

OpenHarmony - 小型系统内核(LiteOS-A)(十) 十四、魔法键使用方法 使用场景 在系统运行出现无响应等情况时,可以通过魔法键功能确定系统是否被锁中断(魔法键也无响应)或者查看系统任务运行状态…

CUDA编程之Grid、Block、Thread线程模型

一、线程模型:Grid、Block、Thread概念 ‌1. 层级定义‌ ‌Thread(线程)‌ CUDA中最基本的执行单元,对应GPU的单个CUDA核心(SP)。每个线程独立执行核函数指令,拥有独立的寄存器和局部内存空间‌。 ‌Block(线程块)‌ 由多个线程组成(通常为32的倍数),是逻辑上的并…

实战交易策略 篇十九:君山居士熊市交易策略

文章目录 系列文章熊市三大特征熊市操作思维强势重势,弱势重质抢反弹重要前提和五大原则反弹逃顶操盘其他炒股的至高境界力戒“三进三出”八大心理误区八大戒律股市不败之法系列文章 实战交易策略 篇一:奥利弗瓦莱士短线交易策略 实战交易策略 篇二:杰西利弗莫尔股票大作手…

Flutter IOS 真机 Widget 错误。Widget 安装后系统中没有

错误信息: SendProcessControlEvent:toPid: encountered an error: Error Domaincom.apple.dt.deviceprocesscontrolservice Code8 "Failed to show Widget com.xxx.xxx.ServerStatus error: Error DomainFBSOpenApplicationServiceErrorDomain Code1 "T…

【计算机视觉】CV实战项目 - 深入解析基于HOG+SVM的行人检测系统:Pedestrian Detection

深入解析基于HOGSVM的行人检测系统:从理论到实践 技术核心:HOGSVM检测框架HOG特征原理SVM分类器 项目架构与数据准备INRIA Person数据集目录结构 实战指南:从零构建检测系统环境配置完整训练流程检测应用 关键技术问题与解决方案1. 难例挖掘不…

day01_编程语言介绍丶Java语言概述丶开发环境搭建丶常用DOS命令

编程语言介绍 ‌编程语言是一种用于人与计算机之间通信的语言,允许程序员编写代码,这些代码告诉计算机要执行哪些操作‌。编程语言可以被视为计算机可以理解并执行的指令集合,它是一种标准化的交流技巧,用于向计算机发出指令。‌…

告别默认配置!Xray自定义POC开发指南

文章涉及操作均为测试环境,未授权时切勿对真实业务系统进行测试! 下载与解压 官网地址: Xray GitHub Releases 根据系统选择对应版本: Windows:xray_windows_amd64.exe.zipLinux:xray_linux_amd64.zipmacOS:xray_darwin_amd64.zip解压后得到可执行文件(如 xray_linux_…

C语言编程--17.有效的括号

题目: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序…

代码随想录算法训练营第60期第十七天打卡

今天我们继续进入二叉树的下一个章节,今天的内容我在写今天的博客前大致看了一下部分题目难度不算大,那我们就进入今天的题目。 第一题对应力扣编号为654的题目最大二叉树 这道题目的坑相当多,我第一次题目没有看明白就是我不知道到底是如何…

Burp靶场JWT学习笔记1

JWT(JSON Web Token) 从其名字就可以看出来,它具有表示身份的作用,其本质是将用户信息储存到一串json字符串中再将其编码得到一串token JWT由三部分组成,分别是 Header,Payload,Signatrue JWTBase64(Header).Base6…

第53.5讲 | 小项目实战:用 SHAP 值解释农作物产量预测模型 [特殊字符][特殊字符]

目录 ✅ 项目背景 📦 所用工具 📁 数据字段(模拟) 🧑‍💻 代码实现步骤 🎯 解读与启发 🧠 项目拓展建议 ✅ 项目背景 我们使用一个简化的玉米产量数据集(可模拟实…

极狐GitLab 合并请求依赖如何解决?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 合并请求依赖 (PREMIUM ALL) 在极狐GitLab 16.6 中引入了对复杂合并依赖关系的支持,通过名为 remove_mr_blockin…

Django DRF实现用户数据权限控制

在 Django DRF 中使用 ModelViewSet 时,若需实现用户仅能查看和操作自己的数据详情,同时允许所有认证用户访问列表,需结合权限类和动态权限分配。以下是具体步骤: 1. 自定义对象权限类 创建一个 IsOwner 权限类,检查…

【数据结构】——线性表之单链表

一、单链表的概念和结构 1、单链表的概念: 链表也是属于我们的线性表中的一种,其物理结构上是不一定连续的,但是逻辑结构上是一定连续的,所以其是没办法像前面的顺序表一样通过找到下一个元素的,其是通过指针来找到下…

线程函数库

pthread_create函数 pthread_create 是 POSIX 线程库&#xff08;pthread&#xff09;中的一个函数&#xff0c;用于创建一个新的线程。 头文件 #include <pthread.h> 函数原型 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*s…

2.5 桥梁桥面系及附属结构施工

2.5.1 桥面系施工 1.排水设施 设置纵横坡及泄水孔&#xff0c;减少桥面积水、防排结合。汇水槽、泄水孔顶面高程低于桥面铺装10-15mm。泄水孔边缘设渗水盲沟泄水管下端至少应伸出构筑物底面100-150mm。泄水管通过竖向管道直接引至地面或雨水管线。竖向管道抱箍、卡环、定位卡…