cv2.calibrateCamera 使用例子
时间: 2023-08-26 09:03:39 浏览: 77
下面是一个使用cv2.calibrateCamera函数进行相机标定的例子:
```python
import numpy as np
import cv2
# 定义棋盘格的行列数
rows = 6
cols = 9
# 准备棋盘格角点的坐标
objp = np.zeros((cols*rows,3), np.float32)
objp[:,:2] = np.mgrid[0:cols,0:rows].T.reshape(-1,2)
# 创建存储对象点和图像点的数组
objpoints = [] # 存储3D对象点
imgpoints = [] # 存储2D图像点
# 加载图像
images = glob.glob('calibration_images/*.jpg')
# 遍历图像进行标定
for fname in images:
img = cv2.imread(fname)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 查找棋盘格角点
ret, corners = cv2.findChessboardCorners(gray, (cols,rows),None)
# 如果找到角点,则添加到对象点和图像点列表中
if ret == True:
objpoints.append(objp)
imgpoints.append(corners)
# 在图像上绘制角点
cv2.drawChessboardCorners(img, (cols,rows), corners, ret)
cv2.imshow('img',img)
cv2.waitKey(500)
# 标定相机
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None)
# 打印标定结果
print("Camera matrix : \n", mtx)
print("Distortion Coefficients : \n", dist)
```
这个例子中,我们使用cv2.findChessboardCorners函数来查找棋盘格的角点,然后使用cv2.calibrateCamera函数来标定相机并获取相机矩阵和畸变系数。