kinect v1 标定,深度图彩色图对齐

  • 棋盘格图片的pdf在下面的网址: 哈哈哈,终于被我找到了,不用花积分啦~ 所以好用的话请给这篇博文点个赞吧~~
  • 标定RGB:

rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_color camera:=/camera/rgb --size 7x9 --square 0.02

  • 标定ir:

rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image_raw camera:=/camera/ir --size 7x9 --square 0.02

上述是用来标定kinect1的彩色摄像头和深度摄像头的内参的。

参考网址:openni_launch/Tutorials/IntrinsicCalibration - ROS Wiki

  • 录制bag文件:(录制指定话题的bag包)

 rosbag record /camera/rgb/image_color /camera/depth/image

  • 如果已知外参了如何对齐

遇到的问题:如果将读到的图片直接以16UC1发布,rqt_image 里不显示图片。如果以8UC1发布到SLAM系统,系统则不识别,所以需要进行下面所述的“类型转换”。

1.readimg一直是:cv_ptrD = cv_bridge::toCvCopy(msgD, enc::TYPE_16UC1);  记住这时深度图读成bmp格式,如果是png格式则无法存储,并且之后的步骤也将不好使。

2.读到了图片后利用imgpub,其中:sensor_msgs::ImagePtr msg_dep = cv_bridge::CvImage(std_msgs::Header(), "8UC1", image_dep).toImageMsg();先用8UC1发布。运行的同时还要接收注意:这时接收的时候要将深度图存储为png格式(如果存为bmp,运行后将会变成白大面积白色图片。

3.接收后,再只将上句话改为"16UC1",这个时候看到话题上的深度图就对了,这时再开启SLAM系统就可以了。

上述内容虽然很复杂,但是亲测有效

如何对齐参考:kinect 2.0 SDK学习笔记(四)--深度图与彩色图对齐_jiaojialulu的博客-CSDN博客

你可能感兴趣的:(SLAM-传感器篇,kinect,标定,对齐)