Halocon相机标定中的面扫描(除法),多扫描(多项式)概念

面扫描(除法),多扫描(多项式)
halcon标定助手里选择摄像机模型时,要你选择面阵相机的类型,有:

面扫描(除法)、面扫描(多项式)

image.png

由于翻译的问题,这两种类型有时也称为:

division(分工)模型和polynomial(多项式)模型

下面是两者的区别:

3D相机模型

面扫描针孔相机:面扫描相机使用一个镜头来进行中心投影,图像可能会出现径向和切向畸变。

面扫描远心相机:面扫描相机使用一个远心镜头来进行平行投影,图像可能会出现径向和切向畸变。

线扫描针孔相机:线扫描相机使用一个镜头来进行中心投影,图像可能会出现径向畸变。

对于面扫描相机,点P©的投影给出了相机坐标系到亚像素图像的过程,它包括了以下几个步骤:1.点投影到图像平面,i.e:相机的传感器平面。如果是面扫描针孔相机模型,如果焦距在CamParam(相机参数)中大于0,这个投影就可以描述成以下问题:

P© = {X, Y, Z}

U = Focus * X / Z;

V = Focus * Y / Z;

如果是面扫描远心相机模型,如果焦距在CamParam(相机参数)中为0,假设摄像机镜头进行的平行投影,在这种情况下,这个投影就被描述成下面的问题:

P© = {X, Y, Z}

U = X ;

V = Y ;

对于面扫描相机的两种类型,镜头畸变模型被划分成division(分工)模型和polynomial(多项式)模型。division(分工)模型使用一个参数(Kappa)来表示径向畸变。

如果是division(分工)模型,从畸变图像平面坐标系转换到非畸变图像平面坐标系使用如下公式:

U = u / (1 + Kappa*(uu + vv))

V = v/(1+ Kappa*(uu + vv))

从非畸变图像平面坐标系到畸变图像平面坐标系的反变换使用如下公式:

u = (2U)/(1 + sqrt(1 - 4Kappa*(UU + VV)))

v = (2V)/(1 + sqrt(1 - 4Kappa*(UU + VV)))

如果是polynomial(多项式)模型,使用3个参数K1,K2,K3来表示径向畸变,两个参数P1,P2来表示切向畸变,从畸变图像平面坐标系转换到非畸变图像平面坐标系使用如下公式:

U = u + u*(K1rr + K2rrrr + K3rrrrrr)+ 2P1uv + P2(rr + 2u*u)

V = v + v*(K1rr + K2rrrr + K3rrrrrr)+ P1*(rr + 2vv)+ 2P2uv

r = sqrt(uu + vv)

这个问题不能进行反变换,因此,畸变图像平面坐标必须被计算出从非畸变图像平面坐标。

两种畸变模型的使用,在StartCamParam中通过变量的数目来识别,如果StartCamParam包含8个值,说明是division(分工)模型。如果StartCamParam包含12个值,说明是polynomial(多项式)模型。

最后,点从图像平面坐标系转换到图像坐标系即像素坐标系:

c = u / Sx + Cx;

r = v / Sy + Cy;

对于线扫描相机,在相机与目标物体的相对运动建立模型。在HALCON中,假设这个运动是由以下几个条件构成的:

1.相机沿一条直线以恒定的速度移动。

2.相机的方向是固定的。

3.所有的图像都是相对运动的结果。

这个运动被描述成一个运动矢量V=(Vx, Vy, Vz),在[meter/scanline]相机坐标系中,假设一个固定的物体,运动矢量描述相机的运动。实际上,这个过程相当于一个运动的物体沿-V方向相对于固定相机的运动。

这个线扫面相机的坐标系的定义如下:这个坐标系的中心就是投影的中心。Z轴和光轴同向,因此可见点就有一个Z坐标;Y轴同时垂直于传感器线和Z轴,因此这个运动矢量会有一个Y坐标;X轴同时垂直于Y轴和Z轴,从而,X轴,Y轴和Z轴形成了一个坐标系。

在图像采集过程中,相机相对于物体的移动,相机坐标系也会相对于物体运动。图像的每条线是从不同角度拍摄的,这意味着每条线都有不同的姿势。为了使事情更简单,在HALCON中,所有的转换从世界坐标系到相机坐标系,是基于第一条图像线的姿势。在点投影到图像过程中,这个运动矢量V信息就被包含了。因此,基于第一条图像线的姿势可以有函数

find_marks_and_pose 和 camera_calibration来计算返回。

对于线扫描相机,点的投影从相机坐标系到图像平面坐标系的定义如下:

假设:P(c) = {X, Y , Z}

求解m,u,t:

mDu = x - t*Vx;

  • mDpv = y - t*Vy;

mFocus = z - tVz;

D = 1 / (1 + Kappa*(uu + pvpv))

pv=Sy*Cy

这已经包含了径向畸变的补偿,注意:这个线扫描相机只能用于division(分工)模型。

最终,点被转换到图像坐标系:

c = u/Sx + Cx

r = t

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值