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

9e080f43fa67d9716e57e1df860e3046.png

作者:Kaustubh Sadekar       Satya Mallick翻译:陈之炎
校对:王可汗

本文约3200字,建议阅读5分钟
本文为大家系统地介绍了使用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的焦距(通常二者是相同的)。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值