计算机视觉之相机模型推导建立过程
前言:
发呆了一个寒假,在开学之前干点什么吧~
欢迎指出文章的不足之处~
//---------------------------------------------------------------------------------------------------------------------------
世界坐标系:物体的真实世界坐标(三维)
相机坐标系:相对于相机建立的坐标系(三维)
图像坐标系:成像面上以光轴为原点的坐标系(二维)
像素坐标系:成像面上以左上角为原点的坐标系(二维),注意单位是整形的,因为像素是一个一个的。
齐次坐标:可以简单的理解成用多一维表示低纬的坐标。
例如的齐次形式可以表示为
,对应的关系为
x=X/Z
y=Y/Z
一般可以令Z=1,则x=X,y=Y
相机成像的原理就是小孔成像的原理如图所示。
由于小孔成像会导致成像翻转问题,一般相机都会处理成正立的图像。数学上直接把成像面放置到小孔前面,这样思考问题会比较简单,并且结果一致
接下来开始推导相机成像的数学模型,所用到的数学知识也只有相似三角形的知识。
设P(Xc,Yc,Zc),p(X,Y,Z),根据相似三角形的知识,可以得到
X=Xc/Zc*f
Y=Yc/Zc*f
Z=f
到这里已经把相机坐标系转化到了图片坐标系,但是我们常用的是像素坐标系,所以还要继续进行转化。
设p点的像素坐标为(u,v),每个像素块的宽度是dx,高度是dy(可以将图片想象成一个矩阵,里面密集的排列着很多个光感器件,每个光感器件便是一个像素,光感器件的宽度便是dx,高度便是dy),理想情况下(cx,cy)为图像的中心点,但是由于相机安装制作过程中会有这样或那样的问题,所以一般来说cx,cy不会刚刚好是图片的中心点。则u-cx=X/dx,v-cy=Y/dy
变形并且带入之前所推导的结果,可得
u=Xc/Zc*fx+cx
v=Yc/Zc*fy+cy
其中
fx=f/dx
fy=f/dy
将上式子写成矩阵的形式为
称矩阵为内参数矩阵。
到目前位置,我们所有的一切都是建立在相机坐标系上的推导,但是一般来讲,世界坐标系和相机坐标系不会是同一个,我们需要将世界坐标系转换到相机坐标系。任何两个三维坐标系之间都只差一个旋转矩阵R和平移矩阵t,Pc=RPw+t
R是一个3*3的正交矩阵,t是一个3*1的向量。
将R和T写在一起,并且表示为齐次坐标的形式为
T称为外参数矩阵,将内外参数矩阵写在一起
到此便是整个相机模型了,注意有Zc
之后若有兴趣可以接着看标定的文章
参考连接:
https://www.cnblogs.com/wangguchangqing/p/8126333.html