前言
张正友标定法是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点。相对于自标定而言,提高了精度,便于操作。因此张正友标定法被广泛应用于计算机视觉方面。
棋盘格制作
首先我们需要一个棋盘来进行实验,如果没有棋盘的话就需要我们自制一个棋盘。
使用python制作一张棋盘的代码如下:
import cv2
import numpy as np
width = 450
height = 350
length = 50
image = np.zeros((width,height),dtype = np.uint8)
print(image.shape[0],image.shape[1])
for j in range(height):
for i in range(width):
if((int)(i/length) + (int)(j/length))%2:
image[i,j] = 255;
cv2.imwrite("pic/chess.jpg",image)
cv2.imshow("chess",image)
cv2.waitKey(0)
效果图如下:
这个图可以复制放在word里,根据需要的尺寸缩放调整打印,这里就直接放在电脑上进行拍摄,就不去打印了。
相机标定原理
相机标定包括:同步标定内部参数和外部参数,一般包括两种策略s:
- 光学标定: 利用已知的几何信息(如定长棋盘格)实现参数求解。
- 自标定: 在静态场景中利用 structure frommotion估算参数。
标定参数线性回归
通过空间中已知坐标的(特征)点 (Xi,Yi,Zi),以及它们在图像中的对应坐标 (ui,vi),直接估算 11 个待求解的内部和外部参数。