参考文章:https://blog.csdn.net/weixin_43837871/article/details/89296462
前言:
我也是刚开始要做关于OpenCV+Python实现照相机标定,也不是很理解,在网上找了很多关于照相机标定、棋盘标定、张正友标定法,才实现了相对应的功能,但是在过程当中也遇到到了一些问题,下面就是对这段代码遇到的相关解析。
运行环境:pyhton3.7、opencv-python-3.4.2.16、IDLE编译器
测试条件:手机拍照、打印棋盘纸张(图像16张,建议15~20张内)、手机型号DIG-AL00
完整代码:
#coding:utf-8
import cv2
import numpy as np
import glob
# 找棋盘格角点
# 阈值
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
#棋盘格模板规格
w = 9
h = 6
# 世界坐标系中的棋盘格点,例如(0,0,0), (1,0,0), (2,0,0) ....,(8,5,0),去掉Z坐标,记为二维矩阵
objp = np.zeros((w*h,3), np.float32)
objp[:,:2] = np.mgrid[0:w,0:h].T.reshape(-1,2)
# 储存棋盘格角点的世界坐标和图像坐标对
objpoints = [] # 在世界坐标系中的三维点
imgpoints = [] # 在图像平面的二维点
images = glob.glob('cal