1. 程式人生 > >標定Kinect v2彩色攝像頭:使用iai_kinect2,采用qhd(960*540)大小的彩色圖像

標定Kinect v2彩色攝像頭:使用iai_kinect2,采用qhd(960*540)大小的彩色圖像

路徑 相同 release www 分享 程序 image string 步驟

開篇一作,這篇博文是純應用的,沒有任何理論說明,就當是一個實踐提醒啦。

安裝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的圖像,其他道理相同。

技術分享

標定Kinect v2彩色攝像頭:使用iai_kinect2,采用qhd(960*540)大小的彩色圖像