计算机视觉相机标定——python

一、棋盘格制作

  1. 制作棋盘格

在这里插入图片描述

  1. 并且将棋盘格固定放到一个平板上,使用同一相机从不同的位置,不同的角度,拍摄标定板的多张照片(10-20张左右),将照片放到文件夹中:

在这里插入图片描述

二、像机标定

利用摄像机所拍摄到的图像来还原空间中的物体。在这里,不妨假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵M可以看成是摄像机成像的几何模型。 M中的参数就是摄像机参数。通常,这些参数是要通过实验与计算来得到的。这个求解参数的过程就称为摄像机标定

张正友平面标定方法

张正友标定是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。本文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。
世界坐标系(world coordinate) ( x w , y w , z w ) (xw,yw,zw) (xw,yw,zw),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。
相机坐标系(camera coordinate) ( x c , y c , z c ) (xc,yc,zc) (xc,yc,zc),也是一个三维直角坐标系,原点位于镜头光心处,x、y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。
像素坐标系 u o v uov uov是一个二维直角坐标系,反映了相机中像素的排列情况。原点o位于图像的左上角,u轴、v轴分别于像面的两边平行。像素坐标系中坐标轴的单位是像素(整数)。
图像坐标系 X O Y XOY XOY,其坐标轴的单位通常为毫米(mm),原点是相机光轴与相面的交点(称为主点),即图像的中心点,X轴、Y轴分别与u轴、v轴平行。故两个坐标系实际是平移关系,即可以通过平移就可得到。
2. 计算单应性矩阵H
设三维世界坐标的点为 X = [ X , Y , Z , 1 ] T X=[X,Y,Z,1]^T X=[X,Y,Z,1]T,二维相机平面像素坐标为 m = [ u , v , 1 ] T m=[u,v,1]^T m=[u,v,1]T,所以标定用的棋盘格平面得到图像平面的单应性关系为:
s 0 m = K [ R , T ] X s0m=K[R,T]X s0m=K[R,T]X
其中,s为尺度因子,k为摄像机内参数,R为旋转矩阵,T为平移向量。令
K = [ α β u 0 0 γ v 0 0 0 1 ] K=\begin{bmatrix} \alpha & \beta &u_{0}\\ 0 & \gamma &v_{0} \\ 0& 0 & 1 \end{bmatrix} K=α00βγ0u0v01
s做为齐次坐标来说,不会改变齐次坐标值。将世界坐标系构造在棋盘格平面上,令棋盘格平面为Z=0的平面。则
s [ u v 1 ] = K [ r 1 r 2 r 3 1 ] [ X Y 0 1 ] = K [ r 1 r 2 t ] [ X Y 1 ] s\begin{bmatrix} u\\ v\\ 1 \end{bmatrix}=K\begin{bmatrix} r1 & r2 & r3 & 1 \end{bmatrix}\begin{bmatrix} X\\ Y\\ 0\\ 1 \end{bmatrix}=K\begin{bmatrix} r1 & r2& t \end{bmatrix}\begin{bmatrix} X\\ Y\\ 1 \end{bmatrix} suv1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值