前言
在上一篇用python调用Opencv做了相机内参求取,当时也没有做任何思考,就是一味的找demo,然后试着自己敲代码。这几天认真的学了一下,发现了一些这前没考虑的东西,于是赶快记录下来。
我们为什么需要相机标定?相机标定了什么?
首先,回答第一个问题,因为相机生产过程的工艺,相机成像传感器一定不是完美的,所以通过相机看到的view和人眼看到的是不一样,也就是图像有畸变;另外,相机安装的位置使得镜头所在平面与被成像平面不是水平的,而是有夹角的,所以通过相机看到的物体的位置与物体实际的位置像是不匹配的。于是相机在使用(尤其是用作测距、定位等)之前进行标定是必要的。
第二个问题,相机标定了什么。标定相机的内参数和外参数。
内参数主要是相机的基础矩阵和畸变向量
。
外参数主要是相机的旋转矩阵
和平移向量T=[t1,t2,t3]'。
我们都知道下面的公式:
(x,y)是图像平面的物理坐标,(X,Y,Z)为实际的世界坐标。它们的关系就是x=M*[R][T]*X,所以相机标定的内外参数是关乎物体实际坐标到相机图像的物理坐标的转换。