ROS+opencv实践-USB单目相机实现标定

摄像头为什么要标定?

摄像头这种精密仪器对光学器件的要求较高,由于摄像头内部与外部的一些原因,生成的物体图像往往会发生畸变,为避免数据源造成的误差,需要针对摄像头的参数进行标定。

安装标定的功能包

sudo apt-get install ros-melodic-calibration

标定流程

1.启动摄像头

roslaunch robot_vision usb_cam.launch

2.启动标定包

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam

命令说明:
1.8x6指的是:棋盘格标定靶上横向8个以及纵向6个的内部角点。
2.square 0.024指的是:棋盘格上每个格子的边长为0.024米
3.image和camera指的是:摄像头发布的话题。

ROS+opencv实践-USB单目相机实现标定_第1张图片
ROS+opencv实践-USB单目相机实现标定_第2张图片
相机对着标定靶对角点的进行定位:标定靶在视野范围内通过左右上下前后移动和旋转,参数对应关系如下:

1.X:左右移动
2.Y:上下移动
3.Size:前后移动
4.Skew:旋转

使右边的进度条变为绿色,calibrate按钮变为深绿色后,点击该按钮,此时由于正在计算标定参数会导致界面卡顿一会时间,直至卡顿消失,说明标定结束,点击save将标定数据保存起来。
ROS+opencv实践-USB单目相机实现标定_第3张图片

ROS+opencv实践-USB单目相机实现标定_第4张图片
ROS+opencv实践-USB单目相机实现标定_第5张图片
ROS+opencv实践-USB单目相机实现标定_第6张图片
ROS+opencv实践-USB单目相机实现标定_第7张图片
找到这个生成的压缩文件后,解压缩打开,包含了之前标定的一系列图像和两个文件,其中yaml才是我们最终需要的输出文件。
ROS+opencv实践-USB单目相机实现标定_第8张图片
打开yaml文件后,里面显示相机拍摄图像的尺寸以及相机名称。

ROS+opencv实践-USB单目相机实现标定_第9张图片

你可能感兴趣的:(opencv,ROS学习历程,机器学习)