图1: 针孔相机的透视映射

图1展示了一个针孔相机产生的透视映射。
天下点P通过镜头的光中央映射到图像面上的P‘,其间隔光中央的间隔为f(焦距)。
实际上,术语“焦距”不是很精确,其对付无限的物距将是得当的。
为了简化的目的,不才面的描述中,纵然“图像间隔”被认为,也总是用术语“焦距”。
值得把稳的是,在图像标定往后,焦距还有焦点是不能被改变的。

HALCON高级篇面阵相机模型及其坐标转换

只管实际上图像面位于镜头光中学的后面,其很随意马虎假设它位于间隔为f的光中央的前面,如图2所示。
这样就会造成图像坐标系统将和像素坐标系统对准(行坐标向下增加,列坐标向右增加),简化了大多数的打算。

图2: 图像平面和虚拟图像平面

转化到相机坐标(外部相机参数)

现在,我们准备去描述在3D天下坐标到2D图像平面的物体映射,及其对应的相机参数。
首先,我们该当把稳到,点P是在世界坐标系统(WCS)找那个给定的。
为了将其映射到图像平面,它们该当分别平行于图像列轴和行轴,且z轴是垂直于图像平面的。

从CCS到WCS的转换是一个刚性的转换,其可以用一个位姿,或等价的通过一个齐次转换矩阵

来描述。
因此,点P的相机坐标

可以从它的天下坐标

大略的打算得到:

转换的6个参数(3个平移

, 3个旋转

)被称位相机的外部参数,由于其决定了相机相对付天下的位置。
在HALCON中,它们被存储为一个位姿,例如一段描述平移和旋转顺序的代码。

映射

下一步便是在CCS中给点的3D点映射到图像坐标系统(IPCS)中。
对付针孔模型,映射是一个透视映射,其被给定为:

对付远心相机模型,映射是一个平行映射,其被出为:

个中m=magnification。
如公式看到的,物体到相机的间隔z对图像坐标没有任何的影响。

镜头畸变

在映射到图像平面后,镜头畸变将

的坐标

修正为了


效果图如图3所示:如果没有镜头畸变,映射点

将位于从点P穿过光心的直线上,如图3的点线段。
镜头畸变造成了点

位于不同的位置上。

图3: 镜头畸变效果示意图

镜头畸变是一种可以单独在图像平面就可以被布局的转换,如:3D信息是没有必要的。
在HALCON中,畸变要么用划分模型来布局,要么用多项式模型来布局。

划分模型用一个参数(K)来布局径向畸变,如果利用的是划分模型,下面的方程将被变形的图像平面坐标转换为没有变形的图像平面坐标:

方程可以做个变换,如果利用的是划分模型,下面的方程将没有畸变的坐标转化为畸变坐标:

参数K布局了径向畸变的量级。
如果K是负数,畸变是桶性;K是正数,其是枕形的(如图4所示)

图4:用划分模型布局的径向畸变效果图,K>0(左边),K=0(中间),K<0(右边)

多项式模型用三个参数

去布局径向畸变,两个参数

来布局离心畸变。
如果利用的是多项式模型,下面的方程将畸变的图像平面坐标转换为没有畸变的图像平面坐标:

个中


方程不能够转换,因此,畸变坐标必须数值地从非畸变图像平面坐标打算而来。

一些用多项式布局的这种畸变的例子如图5所示。

图5:用不同参数值的多项式模型布局的畸变效果图,

像素坐标的转换

末了,点

将从图像平面坐标系统转换到图像坐标系统(像素坐标系统):

这里,

是尺度因子。
对付针孔相机,它们代表了相机CCD芯片上传感器元素的水平间隔和垂直间隔。
对付远心镜头的相机,它们代表了在世界坐标下一个像素的大小(不考虑镜头的畸变)。

是图像的主点。
对付针孔相机,这是光学中央到图像平面的垂直映射。
它也定义了径向畸变的中央。
对付远心相机,没有光学中央存在。
因此,主点仅仅是被径向畸变所定义的。

参数

被称为相机的内参,由于他们决定了3D到2D的映射。