相机内参标定

相机内参标定简单教程

简介

​ 摄像头属于对光学器件要求较高的精密仪器,图像采集过程中可能会鉴于其内部或外部环境某些因素的影响,导致生成物件图像产生畸变,为排除数据源对最后结果产生的误差,必须在图像采集前对摄像头参数进行标定。
在这里插入图片描述

标定方法

​ 使用 ROS 自带的 camera_calibration 功能包即可标定摄像头。通过采集的数据可确定空间物件轮廓上某一点的三维几何位置和它在图像中相应点之间的彼此联系,建立摄像机成像的几何模型,获得几何模型的对应参数即是所需要的摄像机参数。
1)安装相机ROS包和依赖,放置在工作空间的src文件夹下编译;
2)启动标定工具箱
启动color彩色相机的标定工具箱:

rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.015 image:=/camera/color/image_raw

启动ir红外线相机的标定工具箱:

rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.015 image:=/camera/ir/image_raw

在启动文件launch中更改calibration_info_url为标定文件的路径

<arg name="ir_info_uri" default="file:///you_ir_camera_calib_path/depth_camera.yaml"/>
<arg name="color_info_uri" default="file:///you_depth_camera_calib_path/rgb_camera.yaml"/>

启动相机节点,这里以Realsense为例:

roslaunch realsense2_camera rs_camera.launch

一般深度相机出厂自带官方标定参数,如RealSenseD415,可通过ROS命令查询相机参数信息:

rostopic echo /camera/color/camera_info

参数含义

D:相机的畸变系数矩阵,大小为1x5
D = [ k 1 k 2 t 1 t 2 k 3 ] D=\begin{bmatrix} k1&k2&t1&t2&k3 \end{bmatrix} D=[k1k2t1t2k3]
其中:
​ k1、k2、k3 是径向畸变系数(radial distortion coefficients) ;
​ p1、p2 是切向畸变系数(tangential distortion coefficients)。

K:内参矩阵,大小为3x3
K = [ f x 0 c x 0 f y c y 0 0 1 ] K=\begin{bmatrix} fx&0&cx\\ 0&fy&cy\\ 0&0&1 \end{bmatrix} K= fx000fy0cxcy1
其中:
​ fx和fy是焦距(focal length)参数;
​ cx和cy是图像平面原点(principal point)的坐标。
R: 3*3的旋转矩阵,表示相机的旋转姿态,仅对双目相机有效,使左右极线平行。

P: 投影矩阵P=K · [R|T]
P = [ f x ’ 0 c x ’ T x 0 f y ’ c y ’ T y 0 0 1 0 ] P=\begin{bmatrix} fx’&0&cx’&Tx\\ 0&fy’&cy’&Ty\\ 0&0&1&0 \end{bmatrix} P= fx000fy0cxcy1TxTy0
其中:
​ 左侧的3x3矩阵是矫正图像后的相机内参矩阵;
​ T是相机平移向量,表示相机位移,在单目相机中Tx = Ty= 0。
通过投影矩阵,可以将三维空间中的点映射到相机图像上,用于图像处理、目标检测等任务中的坐标变换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值