java棋盘格代码_张正友标定法示例 (含源代码)

博主在博客园的第一篇博客,以著名的张大牛标定法开始吧!

具体标定原理就不详细说了,资料数不胜数,重点看张正友的原著《A Flexible New Technique for Camera Calibration》,搞明白这篇文章就足够了。

好了,现在主要说一下标定过程,并附上博主自己调用Opencv接口编写的代码。

1.拍摄棋盘格图片,8幅左右合适,文献里说n=8时,最小二乘法计算内参有稳定解。所以我就拍了9幅。

016c7da412f228bdb80441ed288f3a3e.png

2. 读取棋盘格图像,提取角点(注意:都是内角点)。为了提高角点提取精度,进一步进行亚像素角点的提取,附上亚像素角点提取后的棋盘格图像。

eaf74d3217c7eedc053210b8cea7c9bd.png

3. 开始摄像机标定,opencv1.0 2.0版只有一种摄像机标定模型,就是普通的小孔成像模型,在cv::空间下。而从opencv3.0开始,新增了一种鱼眼相机标定模型,在fisheye::空间下。两种模型的主要区别在于像与物的投影关系不同,具体的文献资料依然是数不胜数,这里就不赘述。根据opencv官方文档的建议,在畸变程度较大的广角镜头(比如:鱼眼镜头)上进行摄像机标定和畸变校正,最好是用fisheye模型,该模型在图像边缘畸变程度很大的地方比普通相机模型的效果要好。

6d95666f8d134105008b6c0326157d57.png

4. 对标定结果进行评价

07c9b22668020358d9ca6ee963a41bed.png

5.保存标定结果,写入txt文件,主要是内参(归一化焦距,fx,fy; 光心坐标cx,cy;以及畸变系数k1,k2k3...)

dbdf76cd331a21e5c0b179d3450265c2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值