Halcon:相机径向畸变矫正

1.单相机标定的目的:矫正畸变,进行一维和二维的测量。主要消除的是径向畸变(鱼眼镜头畸变特别大)

2.相机畸变是一种像素差

3.标定就是求解相机的内参和外参

4.标定板:有圆形和棋盘格的标定板,主要是金属,陶瓷,玻璃的,精度不一样。

5.标定板本身的物理尺寸,厚度,圆和圆之间的差距是提前已知的。
视野占整个视野的1/3或1/4即可,拍9-16即可。

6.手上标定板7*7阵列,相邻的两个圆之间的距离是4mm,

创建标定板使用算子:gen_caltab()
参数1是每行黑色标志圆点的数量
参数2是每列黑色标志圆点的数量
参数3是两个圆之间的距离(单位m)
参数4是圆直径和 两个圆心之间距离的比值(一般是0.5)
参数5是描述文件(后期需要用到)
参数6是打印文件(可以使用该文件打印一个对应的标定板)

7.标定的时候,最好使用标定助手Calibration
安装界面:
设置描述文件(即上文的文件)
设置单个像元的宽高(采购相机的时候,可以和供应商要,也可以去相机官网上查找)
焦距(采购镜头的时候,自己选的。镜头表面会有25mm,35mm类似这样的描述)

标定界面:
需要在不同的位置进行拍照,数量总数在16-20张左右。
采集完成,在图像上加载,尽量让标定板占视野的2/3,尽量在视野的各个位置都拍到。
一般默认第一个位置是参考位置。
如果有标定失败的,需要移除。
然后点击标定

结果界面:
摄像机参数为外参,点击右边的保存按钮
摄像机位姿为内参,点击右边的保存按钮

代码生成界面:
生成的模式,选择标定数据,然后点击插入代码。
就得到了对应的数据,即相机的内外参数

可以考虑实时采集图像,然后每一帧进行畸变矫正
假设每一帧图像为Image
首先计算出矫正后相机的参数CameraChange
change_radial_distortion_cam_par(‘adaptive’,CameraParameters,0,CameraChange)
接着计算映射矩阵(使用bilinear的插值算法,计算出CameraParameters对应着CamParamChange的矩阵Map)
gen_radial_distortion_map(Map,CameraParameters,CamParamChange,‘bilinear’)
接下来映射图像
map_image(Image,Map,ResultImage)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值