ROS UVC相机标定和图像矫正

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24894159/article/details/82945589

相机标定

甩个链接,这里将讲解的非常清楚。

相机标定这里不管是uvc摄像头也好还是usb摄像头,主要是能不能把相机图像显示出来,当有话题image_raw有数据后,就可以进行标定了。
标定完成后点save,在我电脑是将数据存放到了/tmp/下,具体会在终端提示路径。

标定完成后,接下就是怎么用.yaml参数了。

图像矫正

我使用的是uvc_camera,具体怎么使用请查看我的上篇关于uvc的博文。

按照官方的给的样例,在launch 文件中通过指定camera_info_url参数来加载标定数据。

你没看错,它仅仅是加载了数据而已,然后以/camera/camera_info话题给发布了出来。尼玛,KD啊这是。

那么怎么来进行图像矫正呢?

当当当当~

image_proc登场!

image_procros的一个包,他就是专门用来矫正图像的。

怎么用呢?

image_proc会默认订阅两个话题image_rawcamera_info,运行之前需要指定命名空间(namespace),当然这个不是随便指定的。和你为矫正的图像话题名称有关。

例如:我的原始数据话题为:/camera/image_raw/camera/camera_info,那么你就需要指定命名空间为camera
怎么指定呢?两种方式:

  • launch文件:
<launch>
...
<group ns="camera">
	<node pkg="image_proc" type="image_proc" name="suibian" />
</group>
...
</launch>
  • 命令方式:$ ROS_NAMESPACE=camera rosrun image_proc image_proc

显示矫后的图像

image_proc会发布很多话题,单目我用到的是/camera/image_rect_color,不加color的为灰度图,把原来image_view节点定于的话题改为这个,就可以显示矫正后的彩色图像了,

ok,搞定!

ps:发现标定的结果不是很完美,2333~

猜你喜欢

转载自blog.csdn.net/qq_24894159/article/details/82945589