Kinect相机标定(camera_calibration)

本文介绍了如何使用ROS中的标定工具进行Kinect_v1相机标定,包括启动标定工具、调整参数和理解标定结果。标定过程中详细说明了相机内参、畸变系数和投影矩阵的含义,提供了标定完成后yaml文件的内容解析,帮助理解相机参数对图像处理的重要性。
摘要由CSDN通过智能技术生成

Kinect_v1的相机标定这里我使用的是ROS中的标定工具,具体的参考可以参考ros.wiki官方资料。

1、连接相机

相机驱动在上一章中已经写了,过程其实很简单,安装两个ROS的资源包就可以了。

2、启动标定工具

启动标定包:

这个是启动相机的

roslaunch openni_launch openni.launch

这是是启动标定程序的:

rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb --size 5x4 --square 0.0245

注意这里的size是标定板的尺寸,但是好像可以任意设置,我用的标定板是10x10的,但是我用10x10很难完全检测到特征,最后用的5x4似乎也可以。最后一项是每个格子的边长,单位是米。启动后可以看到这样一个界面:
在这里插入图片描述
此时使用标定板在图像前方移动变换位置,会看到图像窗口的右上角有四个参数以及进度条:
在这里插入图片描述

等四个进度条都变成绿色的时候,点下面三个灰色中的第一个,这时候它应该是蓝色的。点这个之后过一会儿终端会提示生成了一些参数,这些其实就是相机的内参。
在这里插入图片描述
然后点三个灰色按钮中的第二个save,会提示出一条保存路径,该路径下保存了标定过程中采集的图片信息以及标定完成后的内参。
在这里插入图片描述
例如我这里的路径就是/tmp/calibrationdata.tar.ga,这是一个压缩包文件。
打开压缩包,里面有一个yaml文件,这里面放的就是最后的标定结果。文件如下:

image_width: 640
image_height: 480
camera_name: narrow_stereo
camera_matrix:
  rows: 3
  cols: 3
  data: [527.676729, 0.000000, 318.030590, 0.000000, 527.481801, 261.715150, 0.000000, 0.000000, 1.000000]
distortion_model: plumb_bob
distortion_coefficients:
  rows: 1
  cols: 5
  data: [0.159570, -0.266279, -0.001665, -0.005238, 0.000000]
rectification_matrix:
  rows: 3
  cols: 3
  data: [1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
projection_matrix:
  rows: 3
  cols: 4
  data: [539.786560, 0.000000, 315.015406, 0.000000, 0.000000, 541.949707, 261.172141, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]

从中我们可以看到,文件的最上面是图像大小,这里我的相机是640*480的,下面是相机名称,感觉更加现实类型。

再往下是几个矩阵:

camera_matrix:

这个矩阵包含了相机的焦距以及中心坐标
在这里插入图片描述
也就是对应图片中等式右侧的第一个矩阵。

distorition_coefficients

畸变参数,畸变类型是上面distorition_model中的plumb_bob类型,这个跟传统的有一点点不一样,根据这其中的参考文献二
在这里插入图片描述
虽然其中的字符定义和我们习惯性用的不太一致,但是二者含义是一样的。从上面图中可以看出,畸变参数中,第1,2,5个参数对应的是式(2.1)中的k1,k2,k3第3,4个参数对应的是式(2.1)中的 p1,p2因此我们可以知道:distortion_coefficients中的五个参数从前到后分别对应的是:k1,k2,p1,p2,k3。更详细的也可以参考这里的博文。

rectification_matrix

这个其实就是一个单位矩阵,用于去畸变。具体在ORB_SLAM2的去畸变部分中的代码中好像用的就是单位矩阵。

projection_matrix

为外部世界坐标到相平面的投影矩阵。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶执念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值