halcon 旋转_HALCON高级篇:面阵相机模型及其坐标转换

面扫相机

d8fb7ccd841c4dcfd479e38a06c009bb.png

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

图1展示了一个针孔相机产生的透视映射。世界点P通过镜头的光中心映射到图像面上的P‘,其距离光中心的距离为f(焦距)。实际上,术语“焦距”不是很正确,其对于无限的物距将是合适的。为了简化的目的,在下面的描述中,即使“图像距离”被认为,也总是用术语“焦距”。值得注意的是,在图像标定以后,焦距还有焦点是不能被改变的。

尽管实际上图像面位于镜头光中学的后面,其很容易假设它位于距离为f的光中心的前面,如图2所示。这样就会造成图像坐标系统将和像素坐标系统对准(行坐标向下增加,列坐标向右增加),简化了大多数的计算。

03c7ad9759ec8284f8d4a85c40e336d3.png

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

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

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

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

4969099864d6eacd5e4a241386c4a3c8.png

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

1f8fed0a196d01b6f14ddc241a6c7b3e.png

可以从它的世界坐标

ff491e9d417f895aac5e3be1be5565f5.png

简单的计算得到:

7dc9279153a55d49df873ba41d372d57.png

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

49896d6dc0953880d331082e869ec647.png

8dfa79df790eb95ebe3a31f575f686cf.png

, 3个旋转

80cd6b93e390707e9d3dda347d4ab3ff.png
e054d90d21d47b40f313a9f7fc26ac51.png

73ba7f009c9721e7785971bde44f183d.png

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

映射

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

44f5a00cb6c0d0e171b39c1ef480a293.png

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

e36327ce20df1b97f88ed287ce7b51a5.png

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

镜头畸变

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

65ed95e989f026d7e62de1114653d906.png

的坐标

9f13744de3522cc2e487755168a6d4c5.png

修改为了

26217dd71900326760d8b04bc9253262.png

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

8ccdd19daebce65ab8ad1300e012cc7b.png

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

8ccdd19daebce65ab8ad1300e012cc7b.png

位于不同的位置上。

6e04893921a467a8b361cf435f33e8a0.png

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

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

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

c3df26dbbf54678bfe9ecd76649f9416.png

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

368ae271c935dd73b6404da77d7934c8.png

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

b5029b72df0f7b1f480820048819611d.png

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

多项式模型用三个参数

063b75f4c1e37665a98da3801d22d692.png

去构造径向畸变,两个参数

e6e3e88ede4ad7fc80f56c4116f0ec9f.png

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

e7173485a837dc43b89ca629c4ca59f1.png

其中

9ad08b60ca0a2e283cec419485fae544.png

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

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

14b5180679e931c0677bb57ba4616a43.png

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

像素坐标的转换

最后,点

43c566962da0525771af7f895bfacafb.png

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

9f7da710679309e8edaba8a3d3a244ac.png

这里,

84a1b5fcaa334d4f6b6ff5707df756b6.png

42d2f7280c4da83e710c9339f75cae81.png

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

12bcc384dd2a1b075584f64db2aa64a0.png

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

参数

8cb3d404cdbab86acf9bbce30672e47e.png

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值