標定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的圖像,其他道理相同。
標定Kinect v2彩色攝像頭:使用iai_kinect2,采用qhd(960*540)大小的彩色圖像