机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定

本文详细介绍了基于OpenCV的双目摄像机标定过程,包括标定目的、常见问题解答、标定结果分析及提高精度的措施。讨论了是否需要先进行单目标定、所需图像数量、标定板尺寸对结果的影响,以及同步拍摄的重要性。
摘要由CSDN通过智能技术生成

机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定

标签: 机器视觉

本文CameraCalibrator类源代码来自于OpenCV2 计算机视觉编程手册(Robert Laganiere 著 张静 译)

阅读本文之前请先阅读以下三篇博文:
机器视觉学习笔记(4)——单目摄像机标定参数说明
机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定
机器视觉学习笔记(6)——双目摄像机标定参数说明


1.双目摄像机标定目的

双目摄像机标定最主要的目的就是要得出左右两个摄像机的相对位置关系,但是在OpenCV中,计算表示左右摄像机位置的矩阵R和T的同时,也可以求出每个摄像机的相机内参数矩阵M和畸变系数矩阵D。

2.Q&A

Q1:双目标定之前需要单目标定吗?

A:推荐先进行单目标定,但不是必须,具体取决于精度要求以及程序实现方式。OpenCV中双目标定的关键函数是double stereoCalibrate()

double stereoCalibrate(
    InputArrayOfArrays objectPoints,
    InputArrayOfArrays imagePoints1,
    InputArrayOfArrays imagePoints2,
    CV_OUT InputOutputArray cameraMatrix1,
    CV_OUT InputOutputArray distCoeffs1,
    CV_OUT InputOutputArray cameraMatrix2,
    CV_OUT InputOutputArray distCoeffs2,
    Size imageSize, OutputArray R,
    OutputArray T, OutputArray E, OutputArray F,
    TermCriteria criteria =
    TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6),
    int flags=CALIB_FIX_INTRINSIC );

该函数最后一个参数flags表示参数中标定矩阵的一些限定:

  • 默认的参数是CV_CALIB_FIX_INTRINSIC,该参数表示cameraMatrix1distCoeffs1cameraMatrix2distCoeffs2这4个矩阵已经是准确值了,不需要再计算了。即单独对两个摄像机标定后,选择默认参数即可
  • 其它的参数表示在某种限定情况下计算cameraMatrix1distCoeffs1cameraMatrix2distCoeffs2这4个矩阵。例如官方文档推荐的CV_CALIB_SAME_FOCAL_LENGTH | CV_CALIB_ZERO_TANGENT_DIST,表示强制左右摄像机的 f x f_x f
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值