cvStereoRectify(caliResult.ML, caliResult.MR, caliResult.DL, caliResult.DR,
caliResult.imageSize, caliResult.R, caliResult.T, this->Rl, this->Rr,
this->Pl, this->Pr, this->Q, CV_CALIB_ZERO_DISPARITY);
函数第三个参数,和第四个参数中,相机畸变参数。我的双目标定时在matlab上做的。之前在在网络上看到一个帖子,说在给opencv传入参数时,径向畸变参数应第三个数值该放在上述两个参数中的第五个位置。随所以来问下广广大好于是否是这样。还有最后一个参数,在比百度查到的解释,有些喊看不懂,有白话文吗
matlab相机标定opencv读取参数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- threenewbee 2018-02-01 14:39关注
cvStereoCalibrate( const CvMat* object_points, const CvMat* image_points1,
const CvMat* image_points2, const CvMat* npoints,
CvMat* camera_matrix1, CvMat* dist_coeffs1,
CvMat* camera_matrix2, CvMat* dist_coeffs2,
CvSize image_size, CvMat* R, CvMat* T,
CvMat* E CV_DEFAULT(0), CvMat* F CV_DEFAULT(0),
CvTermCriteria term_crit CV_DEFAULT(cvTermCriteria(
CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,1e-6)),
int flags CV_DEFAULT(CV_CALIB_FIX_INTRINSIC));
参数o objectPoints– 校正的图像点向量组.
o imagePoints1–通过第一台相机观测到的图像上面的向量组.
o imagePoints2–通过第二台相机观测到的图像上面的向量组.
npoints–角点数
o cameraMatrix1– 输入或者输出第一个相机的内参数矩阵
o distCoeffs1– 输入/输出第一个相机的畸变系数向量
o cameraMatrix2– 输入或者输出第二个相机的内参数矩阵
o distCoeffs2– 输入/输出第二个相机的畸变系数向量
o imageSize– 图像文件的大小——只用于初始化相机内参数矩阵。
o R– 输出第一和第二相机坐标系之间的旋转矩阵。
o T– 输出第一和第二相机坐标系之间的旋转矩阵平移向量
o E–输出本征矩阵。
o F–输出基础矩阵。
o term_crit– 迭代优化算法终止的标准。
o flags–
不同的FLAG,可能是零或以下值的结合:
§ CV_CALIB_FIX_INTRINSIC要确认cameraMatrix? and distCoeffs?所以只有R, T, E , 和F矩阵被估计出来
§ CV_CALIB_USE_INTRINSIC_GUESS根据指定的FLAG优化一些或全部的内在参数。初始值是由用户提供。
§ CV_CALIB_FIX_PRINCIPAL_POINT在优化过程中确定主点。
§ CV_CALIB_FIX_FOCAL_LENGTH确定和 .
§ CV_CALIB_FIX_ASPECT_RATIO优化 . 确定的比值.
§ CV_CALIB_SAME_FOCAL_LENGTH执行以及 .
§ CV_CALIB_ZERO_TANGENT_DIST设置每个相机切向畸变系数为零并且设为固定值。
§ CV_CALIB_FIX_K1,…,CV_CALIB_FIX_K6在优化中不改变相应的径向畸变系数. 如果设置CV_CALIB_USE_INTRINSIC_GUESS , 使用distCoeffs矩阵提供的系数。否则将其置零.
§ CV_CALIB_RATIONAL_MODEL能够输出系数k4,k5,k6。提供向后兼容性,这额外FLAG应该明确指定校正函数使用理性模型和返回8个系数。如果FLAG没有被设置,该函数计算并只返回5畸变系数。解决 无用评论 打赏 举报