实现畸变矫正之前需要知道两个重要参数,一个是相机内参,另一个是畸变参数。只有拿到这两个参数之后才可矫正,获取方式是通过标定来实现。
一.标定并获取重要参数
标定不需要买标定板,只需要用一张白纸把下图打印出来,调整好大小噢
打印出来之后,用广角相机进行不同角度拍照,拍摄二十张图像即可。
之后将20张图像传入下方代码,即可得到两个参数,我将其参数记录到txt文件内
import cv2
import numpy as np
import glob
criteria = (cv2.TERM_CRITERIA_MAX_ITER | cv2.TERM_CRITERIA_EPS, 30, 0.001)
objp = np.zeros((6 * 9, 3), np.float32)
objp[:, :2] = np.mgrid[0:9, 0:6].T.reshape(-1, 2)
obj_points = []
img_points = []
images = glob.glob("路径/*.png")
i = 0
for fname in images:
img = cv2.imread(fname)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)