版权声明:本文为博主原创文章,未经博主允许不得转载。 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_proc
是ros
的一个包,他就是专门用来矫正图像的。
怎么用呢?
image_proc
会默认订阅两个话题image_raw
和camera_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~