相机模型浅析

相机模型

文章目录

  • 相机模型
    • 四个坐标系
    • 针孔相机模型
    • 世界坐标系到相机坐标系
    • 相机坐标系到图像坐标系
    • 图像坐标到像素坐标

四个坐标系

①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用 ( X w , Y w , Z w ) (X_w, Y_w, Z_w) (Xw,Yw,Zw)表示其坐标值。

②相机坐标系(光心坐标系):以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用 ( X c , Y c , Z c ) (X_c, Y_c, Z_c) (Xc,Yc,Zc)表示其坐标值。

③图像坐标系:以CCD 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用 ( x , y ) ( x , y ) (x,y)表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。

④像素坐标系:以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,用 ( u , v ) (u , v ) (u,v)表示其坐标值。

针孔相机模型

相机实质上就是完成一个3D空间到2D平面的投影的过程其中投影中心称为摄像机中心 ,也称为光心摄像机中心到图像平面的垂线称为摄像机的主轴或主射线 ,而主轴在图像平面的交点称为主点。过摄像机中心平行于图像平面的平面称为摄像机的主平面。

image-20240409190853397

世界坐标系到相机坐标系

image-20240409195432878

一般, 空间点采用不同的欧氏坐标系表示 ,称为世界坐标系。其中世界坐标系于相机坐标系通过旋转和平移相联系

因为可以将相机坐标系看作世界坐标系的一个欧式变换,设一个点 A A A在世界坐标系中的坐标为 [ X w , Y w , Z w , 1 ] T [X_w,Y_w,Z_w,1]^T [Xw,Yw,Zw,1]T,在相机坐标系中的坐标为 [ X c , Y c , Z c , 1 ] T [X_c,Y_c,Z_c,1]^T [Xc,Yc,Zc,1]T,则存在以下关系
[ X c Y c Z c 1 ] = [ R t 0 T 1 ] [ X w Y w Z w 1 ] \begin{bmatrix} X_c\\ Y_c\\ Z_c\\ 1 \end{bmatrix}= \begin{bmatrix} R&t\\ 0^T&1 \end{bmatrix} \begin{bmatrix} X_w\\ Y_w\\ Z_w\\ 1 \end{bmatrix} XcYcZc1 =[R0Tt1] XwYwZw1
其中 R , t R,t R,t称为相机的外部参数,并将 [ R t 0 T 1 ] \begin{bmatrix} R&t\\ 0^T&1 \end{bmatrix} [R0Tt1]即为 M e x t M_{ext} Mext

相机坐标系到图像坐标系

image-20240409194023129

根据相似三角形可得 ∥ O C ∥ ∥ A B ∥ = ∥ O O ∥ ∥ O A ∥ = ∥ O C ∥ ∥ O B ∥ = ∥ x C ∥ ∥ X B ∥ \frac{\|OC\|}{\|AB\|}=\frac{\|OO\|}{\|OA\|}=\frac{\|OC\|}{\|OB\|}=\frac{\|xC\|}{\|XB\|} ABOC=OAOO=OBOC=XBxC

可得在相机坐标系中的点 ( X c , Y c , Z c ) (X_c,Y_c,Z_c) (Xc,Yc,Zc)在图像平面上的投影为 ( f X c Z c , f Y c Z c ) (f\frac{X_c}{Z_c},f\frac{Y_c}{Z_c}) (fZcXc,fZcYc),其中在齐次坐标中表示为 ( f X c , f Y c , Z c ) (fX_c,fY_c,Z_c) (fXc,fYc,Zc)

可构造方程
[ f X c f Y c Z c ] = [ f 0 f 0 1 0 ] [ X c Y c Z c 1 ] \begin{bmatrix} fX_c\\ fY_c\\ Z_c \end{bmatrix} =\begin{bmatrix}f&&&0\\&f&&0\\&&1&0\end{bmatrix}\begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix} fXcfYcZc = ff1000 XcYcZc1
其中矩阵 [ f 0 f 0 1 0 ] \begin{bmatrix} f&&&0\\ &f&&0\\ &&1&0 \end{bmatrix} ff1000 记为 M p r o j M_{proj} Mproj

图像坐标到像素坐标

image-20240409195339999

可得以下关系
[ u v 1 ] = [ k u 0 l v 0 1 ] [ x y 1 ] \begin{bmatrix} u\\ v\\ 1 \end{bmatrix} =\begin{bmatrix} k&&u_0\\ &l&v_0\\ &&1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} uv1 = klu0v01 xy1
其中 k k k l l l分别是每个像素在图像平面x和 y方向上的物理尺寸。

其中将矩阵 [ k u 0 l v 0 1 ] \begin{bmatrix} k&&u_0\\ &l&v_0\\ &&1 \end{bmatrix} klu0v01 记为 M a f f M_{aff} Maff

image-20240409201002059

u , v u,v u,v不垂直,其夹角为 θ \theta θ。则 M a f f = [ k − k cos ⁡ θ u 0 l / sin ⁡ θ v 0 1 ] M_{aff}=\begin{bmatrix} k&-k\cos\theta&u_0\\ &l/\sin\theta&v_0\\ &&1 \end{bmatrix} Maff= kkcosθl/sinθu0v01

image-20240409201104193

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

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

相关文章

【opencv】示例-image_alignment.cpp 利用ECC 算法进行图像对齐

affine imshow("image", target_image); imshow("template", template_image); imshow("warped image", warped_image); imshow("error (black: no error)", abs(errorImage) * 255 / max_of_error); homography 这段代码是一个利用EC…

【300套】基于Springboot+Vue的Java毕业设计项目(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 🧡今天给大家分享300的Java毕业设计,基于Springbootvue框架,这些项目都经过精心挑选,涵盖了不同的实战主题和用例,可做毕业…

银行司库系统应用架构介绍

继国务院国资委印发了《关于推动中央企业加快司库体系建设进一步加强资金管理的意见》以及《关于中央企业加快建设世界一流财务管理体系的指导意见》,司库体系建设开始得到了更多重视。其中,作为改革风向标,央企数字化转型及司库建设对整个行…

【YUNBEE云贝-进阶课】MySQL8.0性能优化实战培训

众多已经学习过MySQL 8.0 OCP认证专家的课程的同学们对 MySQL 8.0 的安装部署、体系结构、配置监控、用户管理、主从复制、系统运维、MGR等基础操作和动手实验有了一定的学习基础.很多学员反馈希望更进一步提升技术能力、解决工作中碰到的性能问题。 针对MySQL8.0的数据库性能优…

Ubuntu 20.04 设置开启 root 远程登录连接

Ubuntu默认不设置 root 帐户和密码 Ubuntu默认不设置 root 帐户和密码 Ubuntu默认不设置 root 帐户和密码 如有需要,可在设置中开启允许 root 用户登录。具体操作步骤如下: 操作步骤 1、首先使用普通用户登录 2、设置root密码 macw:~$ sudo passwd …

基于STM32F103单片机的时间同步项目

一、前言 本项目为前一个时间同步项目的更迭版本,由于之前的G031开发板没有外部晶振,从机守时能力几乎没有,5秒以上不同步从机时间就开始飞了。在考虑成本选型后,选择了带有外部有缘晶振的STM32F103C8T6最小单片机,来作…

DRF的认证、权限、限流、序列化、反序列化

DRF的认证、权限、限流、序列化、反序列化 一、认证1、直接用,用户授权2、认证组件源码3、第三方认证djangorestframework-simplejwt 二、权限1. 直接使用,用户权限2.权限组件源码 三、序列化1. 序列化1.1 自定义Serailizer类序列化1.2 在视图APIView中使…

嵌入式驱动学习第七周——GPIO子系统

前言 GPIO子系统是用来统一便捷地访问实现输入输出中断等效果。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦&#xff0…

spring boot整合Redis监听数据变化

一、前言 Redis提供了数据变化的通知事件,可以实时监测key和value的变化,客户端可以通过订阅相关的channel来接收这些通知事件,然后做相应的自定义处理,详细的介绍可以参考官方文档Redis keyspace notifications | Docs 使用Red…

httpsok-快速申请谷歌SSL免费证书

🔥httpsok-快速申请谷歌SSL免费证书 使用场景: 部署CDN证书、OSS云存储证书证书类型: 单域名 多域名 通配符域名 混合域名证书厂商: ZeroSSL Lets Encrypt Google证书加密类型: ECC、 RSA 一、证书管理 进入 证书管…

【数学建模】2024Mathorcup数学建模C题完整思路与代码论文解析

2024Mathorcup数学应用挑战赛C题|图神经网络的预测模型ARIMA时间序列预测模型人员排班混合整数规划模型|完整代码和论文全解全析 我们已经完成了2024Mathorcup数学建模挑战赛C题的40页完整论文和代码,相关内容可见文末,部分图片如下: 问题分…

[蓝桥杯] 岛屿个数(C语言)

提示: 橙色字体为需要注意部分,红色字体为难点部分,会在文章“重难点解答”部分精讲。 题目链接 蓝桥杯2023年第十四届省赛真题-岛屿个数 - C语言网 题目理解 这道题让我们求岛屿个数,那么我们就应该先弄懂,对于一…

Qt5 编译oracle数据库

库文件 1、Qt源码目录:D:\Qt5\5.15.2\Src\qtbase\src\plugins\sqldrivers\oci 2、oracle客户端SDK: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载各版本中的如下压缩包,一定要版本相同的 将两个压缩包…

【简单讲解如何安装与配置Composer】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Rust语言入门第四篇-变量与可变性以及隐藏(Shadowing)

文章目录 Rust语言入门第四篇-变量与可变性以及隐藏(Shadowing)概要let 关键字自动判断变量类型隐藏(Shadowing)let关键字支持的数据类型let 关键字声明的变量类型转换 Rust语言入门第四篇-变量与可变性以及隐藏(Shado…

机器学习和深度学习 -- 李宏毅(笔记与个人理解)Day 13

Day13 Error surface is rugged…… Tips for training :Adaptive Learning Rate critical point is not the difficult Root mean Square --used in Adagrad 这里为啥是前面的g的和而不是直接只除以当前呢? 这种方法的目的是防止学习率在训练过程中快速衰减。如果只用当前的…

02_JavaWeb中的Tomcat(详解)

文章目录 Tomcat1, 概述1.1 安装1.2 目录结构1.3 启动/停止 2, 资源部署2.1 直接部署: 主要和重要的方式2.2 虚拟映射: 重要2.2.1 方式一:2.2.1 方式二: 2.3 原理解析 3, Tomcat组件3.1 Connector3.2 Engine3.2.1 Host3.2.1.1 Context 4, 其它: 重要4.1 设置 Tomcat 1, 概述 w…

Android网络抓包--Charles

一、Android抓包方式 对Https降级进行抓包,降级成Http使用抓包工具对Https进行抓包 二、常用的抓包工具 wireshark:侧重于TCP、UDP传输层,HTTP/HTTPS也能抓包,但不能解密HTTPS报文。比较复杂fiddler:支持HTTP/HTTPS…

文献速递:深度学习肝脏肿瘤诊断---基于多相增强 CT 和临床数据的恶性肝肿瘤鉴别诊断深度学习

Title 题目 Deep learning for diferential diagnosisof malignant hepatic tumors based on multi-phase contrast-enhanced CT and clinical data 基于多相增强 CT 和临床数据的恶性肝肿瘤鉴别诊断深度学习 Abstract 摘要 Liver cancer remains the leading cause of can…

云计算:Linux 部署 OVS 集群(控制端)实现OpenFlow

目录 一、实验 1.环境 2.Linux 部署 OVS 集群(控制端) 3.控制端对接服务端OVS网元 4.服务端OVS添加流表 5.服务端删除OVS 二、问题 1. ODL如何查找已安装插件 2.查看流表显示不全 3.如何删除OVS流表 一、实验 1.环境 (1) 主机 表1 宿主机 主…