Kinect2.0相机标定
尝试进行Kinect2.0相机进行标定
1. Color镜头标定
$(u_{rgb},v_{rgb},1)=W_{rgb}*(x,y,z)$
Calibration results after optimization (with uncertainties): Focal Length: fc = [ 1094.03583 1087.37528 ] +/- [ 55.02816 51.42175 ]
Principal point: cc = [ 942.00992 530.35240 ] +/- [ 13.00131 31.27892 ]
Skew: alpha_c = [ 0.00000 ] +/- [ 0.00000 ] => angle of pixel axes = 90.00000 +/- 0.00000 degrees
Distortion: kc = [ 0.06857 -0.10542 0.00233 0.00092 0.00000 ] +/- [ 0.02206 0.02884 0.00379 0.00492 0.00000 ]
Pixel error: err = [ 0.49343 0.67737 ]
2. 红外镜头标定
$(u_{ir},v_{ir},1)=W_{ir}*(x,y,z)$
Calibration results after optimization (with uncertainties): Focal Length: fc = [ 379.40726 378.54472 ] +/- [ 40.73354 34.75290 ]
Principal point: cc = [ 263.73696 201.72450 ] +/- [ 9.17740 30.29723 ]
Skew: alpha_c = [ 0.00000 ] +/- [ 0.00000 ] => angle of pixel axes = 90.00000 +/- 0.00000 degrees
Distortion: kc = [ 0.03377 -0.04195 0.00519 0.00734 0.00000 ] +/- [ 0.07368 0.25678 0.01111 0.00965 0.00000 ]
Pixel error: err = [ 0.88997 0.92779 ]
根据上面两个式子可以推导出两个图像像素之间的对应关系。先将RGB图像映射和depth同样大小。
3. 2个相机相对关系计算
前面两个相机都是以相机中心作为世界坐标系的原点。要建立两个相机之间的关系,需要构建以统一的世界坐标系。以深度相机中心为世界坐标的原点。
则RGB相机和相机原点存在如下关系
$(x_{w},y_{w},z_{w})=(x_{ir},y_{ir},z_{ir})=R*(x_{rgb},y_{rgb},z_{rgb})+T$
补充:两个相机的配准问题当前的好多博客里写的方法,根据color和Ir 的外参计算的说法很扯淡。
因为2个图像的分辨率不同,外参根本不在一个框架下。这应该是一个立体匹配的问题。
A Quantitative Comparison of Calibration Methods for RGB-D Sensors Using Different Technologies
https://github.com/rgbdemo/rgbdemo/blob/master/calibration/calibrate_kinect.cpp
工具包:
Matlab自带工具箱:
http://www.ilovematlab.cn/thread-267670-1-1.html
http://www.cnblogs.com/li-yao7758258/p/5929145.html
其他工具箱:
张正友标定法 Camera Calibration Toolbox for Matlab 这个工具箱使用standard可以,但是另外一个不读到内存的好像有bug。
http://www.vision.caltech.edu/bouguetj/calib_doc/index.html
http://blog.csdn.net/felix86/article/details/38401447
kinect 2.0 SDK学习笔记(四)--深度图与彩色图对齐
orbslam2的基础理论(一):https://blog.csdn.net/qq_18661939/article/details/51829573
Kinect2.0相机标定的更多相关文章
- 相机标定:关于用Levenberg-Marquardt算法在相机标定中应用
LM算法在相机标定的应用共有三处. (1)单目标定或双目标定中,在内参固定的情况下,计算最佳外参.OpenCV中对应的函数为findExtrinsicCameraParams2. (2)单目标定中,在 ...
- OpenCV相机标定和姿态更新
原帖地址: http://blog.csdn.net/aptx704610875/article/details/48914043 http://blog.csdn.net/aptx704610875 ...
- 相机标定 matlab opencv ROS三种方法标定步骤(2)
二 ubuntu下Opencv的相机标定 一般直接用Opencv的源码就可以进行相机的标定,但是可能只是会实现结果,却不懂实现的过程,我也是模模糊糊的看了<计算机视觉中的多视图几何>以及 ...
- 相机标定 matlab opencv ROS三种方法标定步骤(3)
三 , ROS 环境下 如何进行相机标定 刚开始做到的时候遇到一些问题没有记录下来,现在回头写的时候都是没有错误的结果了,首先使用ROS标定相机, 要知道如何查看节点之间的流程图 rosrun r ...
- 相机标定 matlab opencv ROS三种方法标定步骤(1)
一 . 理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解 计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表 示各个 ...
- 相机标定:kalibr标定工具箱使用总结
1 多相机标定 1.1采集图像和IMU 1.2制作Bag包 1)组织文件结构 ~/kalibr_workspace/test/stereo_calib bagsrc cam0 (1+time(0))* ...
- SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解
想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...
- OpenCV相机标定
标签(空格分隔): Opencv 相机标定是图像处理的基础,虽然相机使用的是小孔成像模型,但是由于小孔的透光非常有限,所以需要使用透镜聚焦足够多的光线.在使用的过程中,需要知道相机的焦距.成像中心以及 ...
- 相机标定问题-Matlab & Py-Opencv
一.相机标定基本理论 1.相机成像系统介绍 图中总共有4个坐标系: 图像坐标系:Op 坐标表示方法(u,v) Unit:Dots(个) 成像坐标系:Oi ...
随机推荐
- checkmysql.sh
#!/bin/sh # add by lxr MYSQL_SOCK="/tmp/mysql.sock" MYSQL_PWD="qq139547" ARGS=1 ...
- umi怎么去添加配置式路由
今天在学习umi,他的路由机制非常的方便,但是在学到配置式路由的时候,看官方文档里面一笔带过: 对于我这种小萌新来说,有点懵,我需要把配置文件放到哪里呢?经过一番研究,发现它是放在根目录的.umirc ...
- 【转载】技巧:Vim 的纵向编辑模式
如果要我选一个Vim中让我觉得Life Changing功能的话,我一定会选Vim的块编辑功能,也就是Ctrl+V,虽然还有些别的编辑器也有这功能,但目前为止,我从中受益颇大 原文地址:技巧:Vim ...
- 如何将Unicode文本写到日志文件中
有时为了定位问题,我们需要结合打印日志来处理.特别是较难复现的,一般都需要查看上下文日志才能找出可能存在的问题.考虑到程序要在不同语言的操作系统上运行,程序界面显示要支持Unicode,打印出来的日志 ...
- 修改testtools框架,将测试结果显示用例注释名字
在之前介绍的测试框架testtool中,发现测试结果中显示的都是测试用例的函数名,并没有将注释显示出来 这很不符合国人使用阿,没办法,自己动手来改改吧 首先,testtools是继承unittest的 ...
- win10 开启蓝 由于其配置信息(注册表中的)不完整或已损坏
在管理员命令提示符下键入以下命令: Dism /Online /Cleanup-Image /ScanHealth 这条命令将扫描全部系统文件并和官方系统文件对比,扫描计算机中的不一致情况. Dism ...
- Android新手系列教程(申明:来源于网络)
Android新手系列教程(申明:来源于网络) 地址:http://blog.csdn.net/column/details/androidcoder666.html
- 排查 docker flow proxy 的 503 问题
这是今天我们在开发环境下 docker swarm 集群上遇到的问题,在这篇博文中记录一下排查过程. 先登录到应用容器内检查一下其中运行的站点是否能正常访问: # docker exec -it 02 ...
- C和C指针小记(十)-函数
1.函数的定义 函数的定义就是函数体的实现. 语法: 类型 函数名(形式参数) 代码块 函数返回类型和函数名分开写是代码风格的问题,现代语言如swift返回值在函数名和参数表的后面,这样使得某些工程工 ...
- Instruments学习之Core Animation学习
当App发展到一定的规模,性能优化就成为必不可少的一点.但是很多人,又对性能优化很陌生,毕竟平常大多时间都在写业务逻辑,很少关注这个.最近在优化自己的项目,也收集了很多资料,这里先浅谈一下使用Inst ...