当前位置: 首页 > article >正文

传感器——针孔相机模型

主要内容

针孔相机模型的建模及分析过程

针孔相机

推导过程:
针孔相机模型
对于现实中某个点P(x,y,z),由相似三角形有:
z f = x x ′ = y y ′ \frac{z}{f}=\frac{x}{x^{'}}=\frac{y}{y^{'}} fz=xx=yy
即:
{ x ′ = x z f y ′ = y z f \left\{ \begin{aligned} x^{'}=\frac{x}{z}f\\ y^{'}=\frac{y}{z}f \end{aligned} \right. x=zxfy=zyf
而像素坐标(u,v)通常经过一个平移 ( c x , c y ) (c_x,c_y) (cx,cy)和缩放α,β(x和y轴上的缩放比例)
{ u = α x ′ + c x v = β y ′ + c y \left\{ \begin{aligned} u &=αx^{'} + c_x \\ v &=βy^{'} + c_y \end{aligned} \right. {uv=αx+cx=βy+cy
x ′ 和 y ′ 代入得 x^{'}和y^{'}代入得 xy代入得
z [ u v 1 ] = K ⋅ R ⋅ X + t = K ⋅ P z \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \cdot R \cdot X + t=K \cdot P z uv1 =KRX+t=KP
K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1
其中 f x = α f , f y = β f f_x=αf,f_y=βf fx=αf,fy=βf
总结:
针孔相机模型是一种描述相机成像原理的数学模型,模拟了相机将三维世界中的物体投影到二维图像平面上的过程。以下是该模型的逐步解释:

  1. 基本原理

    • 相机通过一个“针孔”(小孔)接收光线,并在后方固定位置(成像平面)形成一个图像。
    • 这个过程类似于光学成像,三维空间中的点被映射到二维图像平面上。
  2. 数学描述

    • 使用齐次坐标表示点的位置和变换,将三维点投影到二维图像。
    • 基本公式为:
      z [ u v 1 ] = K ⋅ R ⋅ X + t = K ⋅ P z \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \cdot R \cdot X + t=K \cdot P z uv1 =KRX+t=KP
      其中,X 是三维空间点,K 是内参数矩阵,R 和 t 分别是相机的旋转和平移参数。等效的矩阵P是外参矩阵。
  3. 内参数矩阵 (K)

    • 包含相机的焦距、图像中心坐标等内参数。内参由相机性质决定,对于同一相机,内参数矩阵是相同的。因此基本为已知参数
    • 形式为:
      K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1
      其中, f x , f y f_x,f_y fx,fy 是焦距在成像平面上的缩放后的“像素焦距”,( c x , c y c_x, c_y cx,cy) 是成像平面相对于摄像机小孔的原点坐标。
  4. 外参数矩阵 ( P )

    • R 表示相机的姿态(旋转),t 表示相机的位置。
    • 经过齐次变换,RX+t可以等效成外参数矩阵P。
    • 描述了相机在三维空间中的方位和位置。
  5. 投影过程

    • 三维点 X 经过内参数矩阵 K 和外参数矩阵 (R, t) 的变换后,得到二维图像坐标 (x’, y’)。
    • 这一过程模拟了相机将物体成像到图像平面的过程。
  6. 应用与局限性

    • 在计算机视觉中,针孔相机模型是三维重建和图像合成的基础。
    • 由于实际相机存在透镜等复杂因素,模型有一定的简化假设,无法完美描述所有成像过程。

http://www.kler.cn/a/534017.html

相关文章:

  • Linux中的基本指令(二)
  • Mysql:数据库
  • 【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR
  • 扩展域并查集 带权并查集
  • 我主编的电子技术实验手册(24)——RL并联电路
  • 【实践案例】基于大语言模型的海龟汤游戏
  • java开发面试自我介绍模板_java面试自我介绍3篇
  • 8-登录流程
  • kakailio官网推荐的安装流程ubuntu 22.04
  • 解决php8.3无法加载curl扩展
  • 【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信
  • 【R语言】数据操作
  • trinitycore服务器离线,原来是mysql里数据库flag设置为2离线状态了
  • 安卓系统源码如何导入原生androidx资源文件?
  • 说一下JVM管理的常见参数
  • 怀旧经典:1200+款红白机游戏合集,Windows版一键畅玩
  • 【LeetCode 刷题】贪心算法(2)-进阶
  • LLM框架对比选择:MaxKB、Dify、FastGPT、RagFlow【RAG+AI工作流+Agent]
  • uniapp商城之用户模块【会员中心】
  • 老游戏回顾:G2
  • openwebui入门
  • 数字人|通过语音和图片来创建高质量的视频
  • 玩转Gin框架:Golang使用Gin完成登录流程
  • 如何通过 Logstash 将数据采集到 Elasticsearch
  • 基于单片机的智能安全插座(论文+源码)
  • 【DeepSeek】本地私有化部署 DeepSeek 模型教程