Python--利用张正友法进行相机标定

本文详细介绍了张正友法进行相机标定的基本原理、步骤和数学原理,包括内外参数计算、畸变校正,并分别展示了在MATLAB和Python中的实现过程。相机标定通过棋盘格角点检测,利用最小二乘法和最大似然估计优化计算,以消除图像的径向和切向畸变。
摘要由CSDN通过智能技术生成

介绍

 ”张正友标定”是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。该方法介于摄影标定法和自标定法之间,克服了传统标定法需要的高精度标定物的缺点,又解决了自标定法鲁棒性差的难题。传统标定法需要三个两两垂直的平面,实验器材在操作过程中难以实现,而仅需使用一个打印出来的棋盘格就可以,并从不同方向拍摄几组照片即可。相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。

一、基本原理

 相机标定的目的之一是为了建立物体从三维世界到二维成像平面上各坐标点的对应关系,所以首先我们需要定义这样几个坐标系:
(1)世界坐标系
世界坐标系是系统的绝对坐标系,是一个三维坐标系,为了描述目标物在真实世界里的位置而被引入。
(2)相机坐标系
在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,是以光轴与图像平面的交点为图像坐标系的原点所构成的直角坐标系。是一个作为沟通世界坐标系和图像坐标系的中间坐标系。
(3)像平面坐标系
二维坐标系,在一个图像平面中,以平面的中心像主点P为原点和坐标轴x,y组成了图片坐标系。是为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系
(4)像素坐标系
为了描述物体成像后的像点在数字图像上(相片)的坐标而引入,是真正从相机内读取到的信息所在的坐标系。
在这里插入图片描述
图片来源于

https://blog.csdn.net/a083614/article/details/78579163

 那么相机标定的一般过程为:
1、从世界坐标系转为相机坐标系,这一步是三维点到三维点的转换,包括相机外参R,t等参数;
2、从相机坐标系转为成像平面坐标系(像素坐标系),这一步是三维点到二维点的转换,包括相机内参K等参数;
在这里插入图片描述
接下来介绍一下实验所用到的棋盘
在黑白相间的棋盘格上,二维图像点很容易通过角点检测找到
实验中使用的棋盘是129的 棋盘格,每个方格边长是50mm,即含有118个角点
拍摄工具为:小米8

二、相机标定步骤

1、打印一张棋盘格,把它贴在一个平面上,作为标定物。
2、通过调整标定物或摄像机的方向,为标定物拍摄一些不同方向(这里拍摄15-20张)的照片。
3、从照片中提取棋盘格角点。(Harris角点)
4、估算理想无畸变的情况下,五个内参和六个外参。
5、应用最小二乘法估算实际存在径向畸变下的畸变系数。
6、极大似然法,优化估计,提升估计精度。

三、数学原理

(一)外参的计算

设三维世界坐标的点坐标为
在这里插入图片描述
二维相机平面的像素点为
在这里插入图片描述
齐次坐标为:
在这里插入图片描述
所以标定用的棋盘格平面到图像平面的单应性关系为:
在这里插入图片描述
其中:
S:世界坐标系到像平面坐标系的尺度因子
A:相机的内参矩阵
(u0,v0)࿱

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值