Opencv相机标定
基本理论知识请查看如下链接:
张正友标定法
张正友标定法假设
- 标定板的角点在一个平面上
- 世界坐标系的xy平面在标定板平面上,Z=0
- 相机模型不考虑畸变
Opencv现有函数
cv::calibrateCamera(object_points, //三维点坐标
image_points_seq, //像素坐标
image_size, //图像尺寸
cameraMatrix, //输出相机矩阵
distCoeffs, //输出畸变矩阵
rvecsMat, tvecsMat, //r,t
0);
cv::findChessboardCorners(imageInput,//输入图像
board_size,//标定板上角点的行列
image_points_buf//输出角点的像素坐标
)
cv::cornerSubPix(view_gray,//输入图像,最好是灰度图
image_points_buf,//输入输出角点的像素坐标
cv::Size(5,5),//搜索窗口的半径
cv::Size(-1,-1),//-1表示忽略
cv::TermCriteria(cv::TermCriteria::MAX_ITER +
cv::TermCriteria::EPS,30,//最大迭代次数
0.1)//最小精度
);
cv::drawChessboardCorners(view_gray, board_size, image_points_buf,
true);//如果角点全部找到,返回true