当前位置:   article > 正文

独家|OpenCV1.10 使用OpenCV实现摄像头标定

消失点 opencv 标定

9e080f43fa67d9716e57e1df860e3046.png

  1. 作者:Kaustubh Sadekar    Satya Mallick翻译:陈之炎
  2. 校对:王可汗
  3. 本文约3200字,建议阅读5分钟
  4. 本文为大家系统地介绍了使用OpenCV实现摄像头标定。

标签:摄像头,标定

摄像头是一种视觉传感器,它已经成为了机器人技术、监控、空间探索、社交媒体、工业自动化,甚至娱乐业等多个领域不可分割的组成部分。

在摄像头的多种应用中,了解摄像头的参数对于视觉传感器的有效使用至关重要。

在本文中,将阐述摄像头标定所涉及的步骤及其涵义。

此外,文中还共享了棋盘格模式示例图像的C++和Python代码。

什么是摄像头标定?

对摄像头参数进行估计的过程称为摄像头标定。

通过摄像头标定,可以掌握摄像头的所有信息(参数或系数),从而可以确定现实世界中的三维点与摄像头捕获图像的二维投影(像素)之间的精确关系。

通常,摄像头标定意味着恢复以下两类参数:

1. 摄像头 /镜头系统的固有参数。如:镜头的焦距、光心和径向失真系数等参数。

2. 外部参数:这是指摄像头相对于某个世界坐标系的方向(旋转矩阵R和平移向量t)。

在下图中,采用了几何标定来估计透镜的参数,从而消除图像的失真。

0cc4fe14ac69f111e3f9feeb02e598c9.png

对失真图像采用几何标定之后的效果


使用OpenCV实现摄像头标定

为了更好地理解整个标定过程,首先需要了解成像的几何特征。点击下面的链接来查看详细的解释。

成像的几何特征

正如前文所述,为了找出一个三维点在图像平面上的投影,首先需要使用外部参数(旋转矩阵R和平移向量t)将该点从世界坐标系转换到摄像头坐标系

 d1d2706247036b83706e20b9cbfe03d7.png

接下来,利用摄像头的固有参数,将该点投影到图像平面上。

将世界坐标中的三维点(Xw, YW,Zw)投影到图像坐标 (u、v)的关联方程如下所示:

71e89ea534ddf6425b49c6bb37354aba.png

其中,P是一个由两部分组成的3×4投影矩阵——包含固有参数的固有矩阵(K)、由3×3旋转矩阵R和3×1平移向量t组合而成的外部矩阵([R|t])。

c5d9608d36806e5c55dda7e0d5c44ff8.png

如前文所述,固有矩阵是上三角矩阵

02bde68a79a195a07ac401fa69ddf805.png

其中

fx,fy是x和y的焦距(通常二者是相同的)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/341148
推荐阅读
相关标签
  

闽ICP备14008679号