相机标定-kinectv1外参数标定(没有高度,pnp)

2023-11-19

1、相机镜头表面距离桌面1m,输入的图像没有内参文件,内参和畸变采用freenect包默认参数,棋盘格19×14,每一个4厘米,实际坐标为,左上角(0,0)点,水平向右为x正方向,垂直向下为y轴负方向
在这里插入图片描述
2、四个角点分别为

pixel_point= np.array([
    [155.08159, 57.66385],
    [505.4953, 55.266895],
    [522.11066, 313.81503],
    [135.968, 311.828]
                            ])

起始点为左上角,顺时针。
在这里插入图片描述
3、实际对应坐标

world_point= np.array([
                            [0.0, 0.0, 0.0],
                             [720.0, 0.0, 0.0],
                             [720.0, -520.0, 0.0],
                            [0.0, -520.0, 0.0]
                            ])

4、验证结果,实际坐标

[[  -4.05488531  719.76483854  720.5608823    -4.77362602]
 [   8.235876      5.34935788 -521.29230982 -523.03245145]
 [   1.            1.            1.            1.        ]]

5、一些参数
(1)内参

[[561.19068618   0.         315.72071183]
 [  0.         558.64303535 240.36261192]
 [  0.           0.           1.        ]]

(2)畸变

[ 0.06844978 -0.05714101 -0.00097167 -0.00637341  0.        ]

(4)r1[0]

(array([[ 0.99921849,  0.01026611, -0.03817089],
       [ 0.00246621, -0.97999406, -0.19901145],
       [-0.03945032,  0.19876179, -0.9792535 ]])

(5) t

[[-332.09409591]
 [-375.87254215]
 [1172.22871055]]

(6) R1R2

[[ 9.99218489e-01  1.02661114e-02 -3.32094096e+02]
 [ 2.46621039e-03 -9.79994061e-01 -3.75872542e+02]
 [-3.94503238e-02  1.98761786e-01  1.17222871e+03]]

(3)还原的相机坐标

print(np.dot(np.linalg.inv(K),pixel_yanzheng))
[[-0.28624695  0.33816418  0.36777151 -0.32030594]
 [-0.32704026 -0.33133093  0.13148364  0.12792675]
 [ 1.          1.          1.          1.        ]]

继续乘外参数的逆矩阵

a=np.dot(np.linalg.inv(K),pixel_yanzheng)
pixel_to_world=np.dot(np.linalg.inv(R1R2T),a)

结果

[[  -4.05488531  719.76483854  720.5608823    -4.77362602]
 [   8.235876      5.34935788 -521.29230982 -523.03245145]
 [   1.            1.            1.            1.        ]]

求得的四个点的深度值

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

相机标定-kinectv1外参数标定(没有高度,pnp) 的相关文章

随机推荐

  • 您的云,您做主:Google Distributed Cloud Hosted 全面可用

    近日 谷歌宣布Google 分布式云 GDC 托管的全面可用性来扩展该产品组合 它支持具有最严格要求的客户的需求 包括机密 受限和绝密数据 GDC Hosted 包括部署 操作 扩展和保护完整托管云所需的硬件 软件 本地控制平面和操作工具
  • GetDlgItem所获取CWnd*的时效性

    GetDlgItem所获取的窗口CWnd 并非一定是全局的 若控件绑定了变量 那么通过GetDlgItem所获取的CWnd 是全局的 对该CWnd 进行保存 随时都可以正确调用 若控件没有绑定变量 仅仅只有一个ID 那么通过GetDlgIt
  • 面向过程和面向对象的语言有哪些,以及优缺点(一篇文章让你理解)

    C语言是面向过程的 而C python java是面向对象的 面向过程的编程思想将一个功能分解为一 个一个小的步骤 我们通过完成一个一 个的小的步骤来完成一个程序 优点 这种编程方式 符合我们人类的思维 编写起来相对比较简单 缺点 但是这种
  • 自定义View的绘制:Xfermode用法解析

    文章目录 1 PorterDuff概述 1 1 源码结构 PorterDuff java android 34 1 2 PorterDuff Mode 1 2 1 Alpha合成模式 12种 1 2 2 混合模式 5种 1 2 3 ADD模
  • win10 redis后台启动命令

    windows 下后台启动 redis 进入 DOS窗口 在进入Redis的安装目录 输入 redis server service install redis windows conf loglevel verbose 安装redis服务
  • 解决You will need to adjust your conda configuration to proceed.Use `conda config --show channels` to

    在anaconda中安装pytorch框架时遇到的问题 出现以下的原因就是你当前设定的镜像源已经不支持该包了 所以需要重新设定 先移除源 设置为默认的源 先移除默认的源 查看源 查看源是defaults 然后输入下面的命令创建pytorch
  • SDUT--OJ《数据结构与算法》实践能力专题训练6 图论

    A 数据结构实验之图论一 基于邻接矩阵的广度优先搜索遍历 Description 给定一个无向连通图 顶点编号从0到n 1 用广度优先搜索 BFS 遍历 输出从某个顶点出发的遍历序列 同一个结点的同层邻接点 节点编号小的优先遍历 Input
  • 解决VC 6.0 fatal error C1033: cannot open program database '.\debug\vc60.pdb'问题

    VC 6 0编译了几次后 突然出现个 cannot open program database debug vc60 pdb 然后再编译就一直是这个错误信息 网上有几下几种说法 1 文件的属性问题 改为存档就行了 试过了 不行 2 只需修改
  • sql根据某一字段值的不同关联不同的表(一)

    一 数据库数据数据 deed records sport records match ticket record 二 sql语句 SELECT d integral CASE WHEN d deed type 1 THEN SELECT s
  • 第五章-数字水印-1-位平面

    数字水印概念 数字水印是一种将特定数字信息嵌入到数字作品中从而实现信息隐藏 版权认证 完整性认证 数字签名等功能的技术 以图片水印为例 水印嵌入过程 版权信息水印A嵌入到图像B中 得到含有水印的图像C 图像C与图像B在外观上基本一致 肉眼无
  • 机器学习之【蒙特卡罗法】

    机器学习之 蒙特卡罗法 一 蒙特卡罗法 二 随机抽样 三 数学期望估计 四 积分计算 五 示例 六 接受 拒绝法 七 示例 一 蒙特卡罗法 蒙 特 卡 罗 法 Monte Carlo method 也 称 为 统 计 模 拟 方 法 sta
  • Html如何引用公用的JS和CSS

    1 问题原因 项目开发几乎每个Html都会引用JS和CSS 那么就会有一些常用JS或者CSS 我们不希望每个Html文件都引用一堆文件 而是只引用公用的JS和CSS就可以了 2 解决办法 2 1定义commonJs js添加公用的JS文件引
  • LightingandRenderingScenes_译

    LightingandRenderingScenes 译 在这个教程中 你会学到怎样快速设置场景实现高视觉保真渲染和截图 然而这些技术的一部分是为实时体验 这些设置的一部分为实时体验可能太重表现了 你会学到怎样 1 设置和调整全球后处理体积
  • 10款Visual Studio实用插件

    目录 前言 Visual Studio插件搜索 Visual Studio插件市场 ReSharper 付费 GitHub Copilot 付费 CodeMaid 免费 CSharpier 免费 Visual Studio Theme Pa
  • 绪论、Ambari二次开发思路

    1 总体思路 1 对ambari admin ambari web模块进行单独编译 二次开发主要针对这两个模块 2 利用Brunch watch功能 对文件夹源码进行实时监控编译 提高开发效率 2 开发方向 1 参照HDP 基于Apache
  • Git安装

    1 Git官网 地址 https git scm com 下载自己需要的安装包 2 安装过程 选择安装位置 安装完成后右键 git bash here 打开
  • Unity3D实战【六】SetCursor 设置鼠标指针

    一 修改人物移动的方法 上一节使用的是将人物拖拽的方法实现人物移动 这一节我们进行修改一下 首先打开mousemanger脚本代码 单例模式 首先创建一个自身的static变量 通常取名Instance public static Mous
  • java基础知识精讲视频教程百度云盘分享!

    java基础知识精讲视频教程百度云盘分享 课程简介 本课程是由尚观科技java资深讲师讲述的java基础知识视频教程 适合零基础同学学习的Java基础视频教程 课程目录 1 java介绍 2 进制 3 标识符 4 变量二 5 类型转换 6
  • java并查集 - Kaiqisan

    大家好 都吃晚饭了吗 我是Kaiqisan 是一个已经走出社恐的一般生徒 最近被力扣的每日一题给整破防了 天天都是并查集 我麻了 所以最近都在学习并查集 现在终于搞懂了 于是有了这篇博客 文章目录 什么是并查集 代码实现 优化 代码 总结
  • 相机标定-kinectv1外参数标定(没有高度,pnp)

    1 相机镜头表面距离桌面1m 输入的图像没有内参文件 内参和畸变采用freenect包默认参数 棋盘格19 14 每一个4厘米 实际坐标为 左上角 0 0 点 水平向右为x正方向 垂直向下为y轴负方向 2 四个角点分别为 pixel poi