opencv 相机内参标定函数cameraCalibrate

       在做相机方面的工作,需要进行内参标定,之前一直是在用matlab中camera_calibrate做的,需要拍摄多张标定板图片另外还需要安装matlab软件,工程操作有误可能带来后续计算位姿误差,因此在做内参标定优化,发现内参标定原理一直理解不够深,就去找了下opencv中cameraCalibrate函数的源码来看下,做个记录

     函数定义在opencv\opencv-master\opencv-master\modules\calib3d\src\calibration.cpp中,从cv::calibrateCamera函数进入,几层封装,找到cv::calibrateCameraRO函数开始看解算实现

 下面会跳过一些变量定义和检查,主要看实现过程,这里找到计算的函数接口cvCalibrateCamera2Internal

 开始解算

1. initialize intrinsic parameters & LM solver 初始化参数和LM求解器

 cvInitIntrinsicParams2D解算内参矩阵作为优化初值

  求内参时先用cvFindHomography获取单应性矩阵,再用cvSolve进行线性求解(参考张正友内参标定推导[图像]张正友论文翻译(2)_祥的专栏-CSDN博客_张正友论文

2. initialize extrinsic parameters 获取外参初始值  RT

 3. run the optimization 用LM进行求解 这里暂时没看到雅可比矩阵在哪求解的(待续)

 

LM接口及变量介绍参见LM 优化算法 opencv中的实现_xuelangwin的博客-CSDN博客

这里相机模型的jaccobi矩阵推导参考相机标定过程中,根据得到的标定参数进行重投影计算的推导过程(推导公式对后续LM算法中计算Jacobian矩阵有重要作用)_肉夹馍不放香菜的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值