基于python的相机标定(采用黑白棋盘格图片)
系列文章目录
[第一章 基于python的相机标定(采用黑白棋盘格图片)](https://blog.youkuaiyun.com/HWHXXX/article/details/119905200)前言
工业相机在正常使用前需要进行相机标定,得出相机的内参矩阵与畸变系数。
一、准备标定用的图片
在标定之前,需要用待标定的相机拍摄用于标定相机的图片。
拍摄照片的质量一定程度上影响相机标定的效果,所以拍摄时一定要注意拍摄角度与环境光亮度。
1:在确定好标定板与相机之间的距离之后,对相机进行调焦,使得相机可以看清标定板。在调好焦之后就不能再次对相机进行调焦了。若再次调焦,则需重新进行相机标定。
2:环境光的补充,要使标定板尽量亮起来,如果太过灰暗,会影响拍摄照片的质量。
3:拍摄照片的角度,尽量让标定板出现在照片的每个区域(个人将图片区域划分为5个,如图1所示),然后在每个区域内标定板也可以垂直于相机拍摄,前倾,后倾,左倾,右倾等角度都可以拍摄,但需注意在每个区域内拍摄角度应保持均匀(不均匀的话个人认为会略微影响标定结果)。
图1 个人划分的5个区域
4:拍摄照片需尽量清晰,即拍摄过程中如果为手持标定板拍摄,拿稳了,别抖。
5:拍摄照片总数量,在保证每个拍摄角度拍摄数量均匀的情况下,总数量应该为5的倍数,可以是15,20,25张等等。总量多少没关系的。
二、提取照片中棋盘格的角点
1.载入需要用的库
import cv2 as cv
import numpy as np
import time
import os
2.读取图片并提取角点
w = 12 # 棋盘格角点每行数量
h = 9 # 棋盘格角点每列数量
# 生成棋盘格三维坐标
obj_points = np.zeros(((w*h), 3)