相机几何学——相机投影矩阵( Camera Projection Matrix)

2023-05-16

相机投影矩阵为P,是MTMC任务中每个标定好的摄像机所配备的参数。总是忘记关于它的基本性质,现在写在这里

1. P矩阵的维度是3*4。

2. 相机成像过程可以描述为x=PX,其中X是一个4*1的向量:(X,Y,Z,1)T。

3. 左侧的x是成像后的像素点坐标(x,y,1)。

4. 成像过程:3*1 = 3*4   *   4*1。

P矩阵的内部目前还没有探究,但是已经了解到P的构成,P中包含旋转、平移矩阵,包含与世界坐标系的关系。(盗的柳桢的图hhh)
 

最近需要对EPFL的WildTrack数据集进行探究,第一步就是要明确相机标定的参数含义,将其使用起来。此数据集给定了K矩阵(3x3)、R参数(1x3)、T参数(1x3)。明确了这些参数后就可以通过P= K\left [ R|t \right ]公式计算投影矩阵。

要注意此处的R是rx、ry、rz(三个弧度值)通过三角函数运算来得到的,这三个弧度值不能直接用。在计算R的过程中有很多的版本,最后试来试去都不行,最后还是通过OpenCV自带的Rodrigus函数来将rx、ry、rz映射为R。

还有一点需要明确:下图公式中,K是3x4,RT是4x4,乘到一起是P(3x4)。实际也可以去掉底部的增广行,K是3x3,RT是3x4,乘到一起依然是P(3x4)。

 

注意:

当使用x=P*X进行投影时,得到的x是3*1维,此时最后一位不一定是1,一定要进行归一化,即x中的值全部除以最后一位。此时的x和y才能做为图像上的点。

points_8 = Get_3D_rect(x, y, rect)    # points_8含有8个3D点,维度是4*8的array
img_points_8 = np.matmul(Ps[cam], points_8)    # 3*4的P矩阵和点进行相乘
img_points_8 = img_points_8/img_points_8[2,:]	# homogeneous进行归一化,之后可以在image上绘制

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相机几何学——相机投影矩阵( Camera Projection Matrix) 的相关文章

  • 拓展模块使用教程和心得(三):ULN2003模块与28BYJ48步进电机(测试平台:STC8A8K,STM32F103)

    成就更好的自己 关于ULN2003模块和对应的28BYJ48步进电机 xff0c 网上现有的资料与教程对于初学者有点不太友好 xff0c 造成的现象是仅仅只能让步进电机转起来 xff0c 但是没有对于控制转速和转角的实践分析 xff0c 本
  • intellij 从2020升级到2023 踩坑实录

    1 下载新版本intellij 工作机器上的intellij版本为2020社区版 xff0c 版本比较老旧 xff0c 需要进行升级 IDE这种提高生产力的工具 xff0c 还是蛮重要的 xff0c 也是值得稍微多花点时间研究一下的 升级之
  • 拓展模块使用教程和心得(五):HC08及HC系列蓝牙模块

    成就更好的自己 今天在做单片机的数据采集并给PC处理 xff0c 根据前期的想法本来是要使用nRF24L01进行的 xff0c 奈何nRF无线模块转USB接口太不给力 xff0c 因此使用到了HC08作为发送和接收数据的模块 目录 简介 内
  • ROS四旋翼无人机快速上手指南(3):工作环境文件框架与各功能包整体讲解

    成就更好的自己 这一章节主要讲解无人机平台的控制文件架构和各个功能包组成和用法 uav ws与shell源码链接 xff1a https gitee com theroadofengineers ros uav 目录 主要项目文件架构概述
  • STM32程序不运行与MicroLIB讲解

    成就更好的自己 目录 引言 什么是MicroLIB 不使用Microlib导致卡死的原理 卡死解决办法 xff1a 优化空间测评 引言 先说问题 xff0c 这几天在使用STM32H750调试程序的过程中出现了一些问题 xff0c 博主使用
  • 拓展模块使用教程和心得(7):3irobotix杉川Delta-1A激光雷达的STM32F407HAL驱动

    成就更好的自己 随着现代智能化设备程度的提高 xff0c 激光雷达已经是在智能控制与检测领域的极其常用的智能化传感器 xff0c 今天就来介绍一下3irobotix公司的Delta 1A激光雷达 Delta 1A激光雷达是一款低成本中等性能
  • RT-Thread&&STM32开发系列(2):FAT头文件包含报错与RTT和CubeMX文件兼容问题

    成就更好的自己 近期的项目需要在RTT下 xff0c 使用SD卡运行FAT文件系统 xff0c 而且还能通过USB将这个SD卡虚拟化成大容量可存储设备 xff0c 在项目初期遇到了一些小问题 xff0c 记录一下 xff0c 防止别的朋友踩
  • [已解决] RTT 串口DMA接受 开头丢失一整包的问题

    起因 项目需求需要设备通过串口的方式发送信息 xff0c STM32F4将串口的信息接收并保存到SD卡中 xff1b 通过XCOM串口助手发送文件的方式进行功能测试 xff0c 测试的时候发现总会丢弃一部分头 项目需要两路串口都保存到SD卡
  • 用实际的激光雷达和里程计运行gmapping历程

    我用的激光雷达是LMS1XX系列的 xff0c 该系列的激光雷达有ROS下的驱动程序可以到网上下载编译 里程计是自己机器人发布的信息 一开始以为自己得到了这两个信息就能运行gmapping了 xff0c 结果发现自己太天真 上网查了一下原因
  • 无数四轴的航模常识

    KV 值 无刷电机KV值定义为 转速 V xff0c 意思为输入电压增加1伏特 xff0c 无刷电机空转转速增加的转速值 例如KV1000的无刷电机 xff0c 代表电压为11V的时候 xff0c 电机的空转转速为11000转 分 KV值越
  • 5G系统的性能指标

    ITU R制定了5G系统的8个性能指标和3种应用场景 流量密度 xff1a 10Tbit s km 2 连接数密度 xff1a 10 6每平方千米 时延 xff1a 空口1ms 能效 xff1a 相对于4G xff0c 100倍提升 用户体
  • find命令用法小结

    0 前言 不管我决心如何组织文件 xff0c 似乎总有无法找到文件的时候 有时是因为我不记得最初的文件名 xff0c 其他时候 xff0c 我知道名字 xff0c 但我不记得在哪里保存它了 甚至有时我需要一个我最初就没有创建的文件 但是 x
  • 在EBAZ4205 zynq7010上运行AXI_DMA中断回环测试

    在EBAZ4205 zynq7010上运行AXI DMA loop interrupt 整体的布局图 这是上面的一张接口图 下面对每个模块附上截图 AXI DMA的输出mm2s introut s2mm introut接到PS系统的中断触发
  • http 方式请求pos请求和get请求,认证方式 用户名密码

    利用apache包请求get和post请求 xff0c 用户名和密码认证 xff0c 用户名密码填则认证 xff0c 不填测不认证 利用maven构建项目 需要导入一个包 lt dependency gt lt groupId gt org
  • jenkins部署jar包到远程服务器

    jenkins部署jar包到远程服务器 1 安装Publish Over SSH插件2 配置ssh以及jenkins的ssh配置3 jenkins任务的配置4 总结 一 xff0c 安装Publish Over SSH插件 xff0c 进入
  • java把文件流转base64,然后前端展示base64图片

    一 xff0c java端 1 xff0c 项目是基于springboot的 读取本地图片 xff0c 转成base64编码字节数组字符串 xff0c 传到前端 2 xff0c 这种传输图片的方式可以用于Java后台代码生成条形码二维码 x
  • 使用nacos配置教程

    1 xff0c 访问nacos网页 默认nacos网页为 uat环境地址 进入网页 默认账号 nacos 密码 nacos 2 xff0c 配置管理 1 xff0c 页面概述 进来页面如下 xff0c 我已经建立了三个命名空间 xff0c
  • redis实现延时队列的两种方式

    背景 项目中的流程监控 xff0c 有几种节点 xff0c 需要监控每一个节点是否超时 按传统的做法 xff0c 肯定是通过定时任务 xff0c 去扫描然后判断 xff0c 但是定时任务有缺点 xff1a 1 xff0c 数据量大会慢 xf
  • go集成gin处理error

    1 gin的使用 gin在go开发web的占比是挺大的 很好用的web框架 xff0c 简单快速高效 但是呢 xff0c 在使用gin的过程中 xff0c 如何去统一去处理error和数据返回给客户端呢 xff1f 原始的做法如下 xff1
  • Okhttp3最佳使用方式

    Okhttp3最佳使用方式 一 xff0c 使用前准备 要使用okhttp3 xff0c 首先我们要引入相关依赖 xff0c 至于版本的选择 xff0c 就根据自己项目的需求了 span class token tag span class

随机推荐