ZR300鱼眼镜头使用

ZR300鱼眼镜头使用

ZR300鱼眼镜头模型

在博客Ubuntu 14.04 ZR300驱动安装中,通过example的代码读取得到的相机模型为FTHETA,但是经过大量的搜索,都没找到该模型对应的公式。最后,在librealsense的github的issue里面找到了官方的解释,该模型就是PTAM中使用的ATAN模型。(ROS驱动给出的/camera/fisheye/camera_info中给出的是plomb bob相机模型,这个应该是不对的)
这里写图片描述
ATAN模型中认为成像点 m m 和光轴CZ的距离 cm c m 与直线 CM C M 和光轴 Cz C z 的角度近似成正比(如下图所示)。该模型只有一个参数,即理想鱼眼相机的视场角 ω ω ,因此也将该模型叫做 FOV F O V 模型。该模型的畸变函数为:

rd=1ωarctan(2rutanω2) r d = 1 ω arctan ⁡ ( 2 r u tan ⁡ ω 2 )

以及它的反函数
ru=tan(rdω)2tanω2 r u = tan ⁡ ( r d ω ) 2 tan ⁡ ω 2


这里写图片描述

对于图像中的某个有畸变的像素点 x x y,该点到相机中心的坐标(单位为mm)为

{X=(xcx)/fxY=(ycy)/fy { X = ( x − c x ) / f x Y = ( y − c y ) / f y

该点 (X,Y) ( X , Y ) 到光轴的距离为 rd=X2+Y2 r d = X 2 + Y 2 。根据公式 ru=tan(rdω)2tanω2 r u = tan ⁡ ( r d ω ) 2 tan ⁡ ω 2 得到去畸变后的距离 ru r u ,从而未畸变的坐标 (Xu,Yu) ( X u , Y u ) (单位为mm)为
{Xu=ruXrdYu=ruYrd { X u = r u X r d Y u = r u Y r d

从而去畸变后的像素坐标 (xu,yu) ( x u , y u )
{xu=Xufx+cxyu=Yufy+cy { x u = X u f x + c x y u = Y u f y + c y

实验结果

基于上面的分析,我动手做了下实验,发现该标定结果还可以,原始图像如下所示
这里写图片描述
使用上面的原理编写代码,标定结果如下图
这里写图片描述
上面图像中的纹理是由于没有对图像进行插值造成的,但是可以看到里面的直线还是很直的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值