1、基本原理
相机标定指建立相机图像像素位置与场景点位置之间的关系,根据相机成像模型,由特征点在图像中坐标与世界坐标的对应关系,求解相机模型的参数。相机需要标定的模型参数包括内部参数和外部参数。
针孔相机成像原理其实就是利用投影将真实的三维世界坐标转换到二维的相机坐标上去,其模型示意图如下图所示:

数学公式:

即:

参数意义:
x是相机中的坐标
X为真实的坐标
K为内参矩阵
[R|t]为外参矩阵
R是描述照相机方向的旋转矩阵
t是描述照相机中心位置的三维平移向量
1.1计算单应性矩阵
设三维世界坐标的点为X=[X,Y,Z,1]T,二维相机平面像素坐标为m=[u,v,1]T,所以标定用的棋盘格平面到图像平面的单应性关系为:

我们把K[r1, r2, t]叫做单应性矩阵H,即

1.2计算内参数矩阵

r1和r2正交,可得

代入上式后

1.3计算外参数矩阵
通过Homography求解

2、具体实现
2.1数据准备
这里采用的是8*8的棋盘格,总共拍摄了11张图片

相机:iPhone7P
2.2实验代码
# coding=utf-8
import numpy as np
import cv2
import glob
# 终止标准
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
#w = 7
#h = 7
#准备对象点,如(0,0,0),(1,0,0),(2,0,0)......,(6,5,0)
#objp = np.zeros((w*h,3)

本文介绍了相机标定的基本原理,包括计算单应性矩阵、内参数矩阵和外参数矩阵。通过针孔相机模型阐述了从三维世界坐标到二维图像坐标的转换。实验部分详细描述了数据准备、实验代码执行和结果分析,指出误差评估对于判断标定效果的重要性。在实际操作中,作者建议使用平板电脑代替裁剪不齐的纸质棋盘,以减少误差。在遇到问题时,更换图片解决了代码运行的错误。
最低0.47元/天 解锁文章
1706

被折叠的 条评论
为什么被折叠?



