射影几何 -- 摄像机几何 1

三维计算机视觉的主要任务是利用三维物体的二维图像所包含的信息,获取三维物体的空间位置与形状等几何信息,并在此基础上识别三维物体。
摄像机关于空间平面的投影是平面到平面的一个二维中心投影变换
对于空间物体,由于摄像机将三维物体表面投影到二维平面上,是一个 ( 退化的 )射影变换,因此不可能从三维物体的单幅图像恢复其三维结构。能否从多幅图像恢复物体的三维结构?这是三维计算机视觉中三维重构问题
摄像机模型
摄像机的基本成像模型,通常称为基本针孔模型,由三维空间到平面的中心投影变换所给出。
令空间点 O c 是投影中心,它到平面 π 的距离为 f 。空间点 X c 在平面 π 上的投影 ( 或像 ) m 是以点 O c
端点并经过点 X c 的射线与平面 π 的交点,如图 3.1.1( a ) 所示。平面 π 称为摄像机的像平面,点 O c
为摄像机中心 ( 或光心 ) f 称为摄像机的焦距,以点 O c 为端点且垂直于像平面的射线称为光轴或主
轴,主轴与像平面的交点 p 称为摄像机的主点。
知空间点 X c 与它的像点 m 满足下述关系:
其中,
分别为空间点和图像点的齐次坐标。它是从空间到像平面的一个齐次线性变换。
记  P = diag ( f , f , 1)( I , 0) ,则 m = P X c
矩阵 P 是一个 3 × 4 矩阵,通常称它为摄像机矩阵。这就是基本成像模型的代数表示
主点偏离图像中心
若主点在上述坐标系下的坐标为 ,则摄像机的投影关系变为:

P = K ( I , 0 )
,为摄像机内参数矩阵
摄像机矩阵的一般形式
令空间点在世界坐标系与摄像机坐标系的坐标分别为 ,则:

其中C~ 表示摄像机中心在世界坐标系中的非齐次坐标

于是,摄像机矩阵的一般形式:

摄像机矩阵是一个秩 3 3 × 4 矩阵,因为它的前三列所构成的子矩阵是一个可逆矩阵。另外,由于摄像机矩阵的齐次性,所以它仅有 11 个独立元素

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

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

相关文章

单例模式( Singleton)——创建型模式

单例模式——创建型模式 什么是单例模式? 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。简单来说如果你创建了一个对象, 过一会儿后你决定再创建一个新对象, 此…

中国京津冀太阳能光伏推进大会暨展览会

能源是国民经济发展的重要基础之一。随着国民经济的发展,能源的缺口增大,能源安全及能源在国民经济中的地位越显突出。我国是世界上少数几个能源结构以煤为INVITATION主的国家之一,也是世界上最大的煤炭消费国,燃煤造成的环境污染…

Linux操作系统——常见指令(1)

今天分享一下Linux操作系统常见一些指令。今天介绍 ls pwd cd touch mkdir rmdir rm这几个指令。 ls指令 语法 ls 选项 目录或者文件 功能 对于目录,该命令列出该目录下的所有子目录和文件,对于文件,将列出文件名以及其他信息。 我们常用…

【单调栈】代码随想录算法训练营第六十天 |84.柱状图中最大的矩形(待补充)

84.柱状图中最大的矩形 1、题目链接:. - 力扣(LeetCode) 2、文章讲解:代码随想录 3、题目: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱…

将SQL数据库转换为Mysql数据库

一、准备工作 1、SQL server安装包与已经有数据的mdf、ldf数据库文件; 2、.net Framework安装包;(用于支持SQL Server安装的组件) 3、MySql安装包;(用于目标数据库的环境安装) 4、navicat安装包…

基于SpringBoot的“家乡特色推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“家乡特色推荐系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 文章分享界面…

WeiPHP Notice/index接口处存在RCE漏洞

产品介绍 WeiPHP是一款基于PHP开发的开源微信公众号开发框架。它提供了丰富的功能和易于使用的接口,使开发者能够快速构建和管理微信公众号应用。WeiPHP支持自定义菜单、消息管理、用户管理、素材管理、支付接口等功能,同时还提供了插件机制和模块化开发…

【DL经典回顾】激活函数大汇总(八)(Maxout Softmin附代码和详细公式)

激活函数大汇总(八)(Maxout & Softmin附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不…

学生时期学习资源同步-1 第一学期结业考试题4

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载

PBKDF2算法:保障密码安全的利器

title: PBKDF2算法:保障密码安全的利器 date: 2024/3/14 16:40:05 updated: 2024/3/14 16:40:05 tags: PBKDF2算法密码安全性迭代盐值密钥 PBKDF2算法起源: PBKDF2(Password-Based Key Derivation Function 2)算法是一种基于密码…

如何理解闭包

闭包是编程语言中一个重要的概念,特别是在函数式编程中常常会遇到。以下是对闭包的理解: 1. 定义: 闭包是一种函数,它引用了在其定义范围之外的自由变量(非全局变量),并且这些引用的变量在函数…

pip 配置镜像加速安装

在使用pip安装Python第三方库时,默认是使用pip官网的非常慢,可通过配置国内镜像源加速下载速度,以下是如何使用国内镜像源安装Python库的两种常见方式: 临时使用镜像源安装 如果你只是想临时使用某个镜像源安装单个或几个库&…

基于UE官方像素实现的像素流部署程序

写了很多像素流部署的技术文章,但因为大部分做UE的研发人员对于前端都不太熟悉,很难里面NodeJS中的官方像素流插件的使用。为此,我花了两天时间对官方像素流程序进行大量优化,支持以下特性。 单程序,支持windows和linux,无任何其他第三方依赖,双击即可运行完成像素流部署…

string接口[小白理解篇]

作文目的 本文是为了加深对string底层函数的一点理解(请勿与底层源码混为一谈),下面从模拟与注意项出发。 一.string 功能化模拟 1.迭代器模拟 迭代器,为实现简单便理解故使用指针的方式(非说明迭代器使用该方法实现)。其中的begin、end都是为了给迭代…

LVGL移植到ARM开发板(GEC6818开发板)

LVGL移植到ARM开发板(GEC6818开发板) 一、LVGL概述 LVGL(Light and Versatile Graphics Library)是一个开源的图形用户界面库,旨在提供轻量级、可移植、灵活和易于使用的图形用户界面解决方案。 它适用于嵌入式系统…

MySQL 系统变量查看与设置(System Variables Configuration)

MySQL中有大量的系统变量控制服务器的行为,大部分的系统变量是不需要我们调整的,保持默认即可。但为了获得更高的性能和稳定性,有时需要适当对部分变量进行调整,本文总结了MySQL中系统变量的查看与设置方法。 目录 一、变量的类型…

整数序列删除指定数字,其他数顺序不变

#include <stdio.h>//整数序列删除一个数&#xff0c;其他数顺序不变 int main() {int arr[50] {0};//int arr[50] {1,2,3,4,5};int n 0;int del 0;int i 0;int j 0;scanf("%d",&n);for(i 0;i < n;i)scanf("%d",&arr[i]);scanf(&q…

未来城市:数字孪生技术助力智慧城市构建

目录 一、数字孪生技术的兴起与定义 二、数字孪生技术在智慧城市构建中的应用 1、城市规划与管理 2、智慧交通 3、智慧能源 4、智慧环保 三、数字孪生技术助力智慧城市构建的挑战与对策 四、结语 随着科技的飞速发展&#xff0c;未来城市正在经历一场前所未有的变革。数…

Maven简单入门

Maven 一&#xff1a;什么是Maven&#xff1a; Maven是一个项目管理工具&#xff0c;用于构建和管理Java项目。它可以帮助开发人员自动化构建过程&#xff0c;管理项目依赖关系&#xff0c;并协助项目的发布和部署。通过Maven&#xff0c;开发人员可以定义项目的结构、依赖关…

C语言例3-11:使用算术运算符的例子。

代码如下&#xff1a; int main(void) {int a12, b10;float c2.0, d0.5;double e6.5, f13.0;printf("-a %d\n",-a);printf("ab %d\n",ab);printf("a-b %d\n",a-b);printf("a*b %d\n",a*b);printf("a/b %d\n"…