标定Kinect v2相机彩色摄像头:使用iai_kinect2,可以采用qhd(960*540)或其他大小的图像

开篇一作,这篇博文是纯应用的,没有任何理论说明,就当是一个实践提醒啦。

安装kinect v2相机驱动和标定程序得益于下面二位前辈的引荐工作:

http://www.cnblogs.com/gaoxiang12/p/5161223.html

http://www.cnblogs.com/hitcm/p/5118196.html

十分感谢!

请读者先按照上面前辈的博文安装好libfreenect2和iai_kinect2。

在iai_kinect2标定步骤中(https://github.com/code-iai/iai_kinect2/tree/master/kinect2_calibration)输入命令:

  rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record color

后,弹出显示图像的窗口,在终端中显示信息:

 [ INFO] [main] Start settings:
       Mode: record
     Source: color
      Board: chess
 Dimensions: 5 x 7
 Field size: 0.03
Dist. model: 5 coefficients
Topic color: /kinect2/hd/image_mono
   Topic ir: /kinect2/sd/image_ir
Topic depth: /kinect2/sd/image_depth
       Path: ./

说明默认标定程序使用的彩色图像大小是hd(1920*1080),标定出的相机内参数矩阵只适合于1920*1080大小的图像。

为了使用Kinect v2采集的qhd(960*540)、或sd(480*270)的彩色图像,需要相应的标定出的相机内参。

于是,贴出我的实践经验:

在  catkin_ws/src/iai_kinect2/kinect2_calibration/src   文件夹下找到:kinect2_calibration.cpp 文件。查看该文件中1311-1313这三行命令:

    std::string topicColor = "/" + ns + K2_TOPIC_HD + K2_TOPIC_IMAGE_MONO;
    std::string topicIr = "/" + ns + K2_TOPIC_SD + K2_TOPIC_IMAGE_IR;
    std::string topicDepth = "/" + ns + K2_TOPIC_SD + K2_TOPIC_IMAGE_DEPTH;

正好和上面的输出信息:

  Topic color: /kinect2/hd/image_mono

    Topic ir: /kinect2/sd/image_ir

  Topic depth: /kinect2/sd/image_depth

对应,因此把  K2_TOPIC_HD  改为 K2_TOPIC_QHD 即可。保存。然后重新编译:

  cd ~/catkin_ws      (进入自己路径下的catkin_ws文件夹)
  catkin_make -DCMAKE_BUILD_TYPE="Release"
  rospack profile
(命令来自:http://www.cnblogs.com/hitcm/p/5118196.html)
然后重新回到之前,运行

  rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record color

则弹出来的窗口显示的是960*540的图像,其他道理相同。

posted on 2017-07-03 21:31  ysuhao  阅读(1343)  评论(1编辑  收藏  举报