1. Finds an object pose from 3D-2D point correspondences.
bool solvePnP(InputArray objectPoints, InputArray imagePoints,
InputArray cameraMatrix, InputArray distCoeffs,
OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess=false,
int flags=ITERATIVE )
函数solvepnp接收一组对应的3D坐标和2D坐标,计算得到两组坐标对应的几何变换(旋转矩阵rvec,平移矩阵tvec);
2.Projects 3D points to an image plane.
void projectPoints(InputArray objectPoints, InputArray rvec, InputArray tvec,
InputArray cameraMatrix, InputArray distCoeffs,
OutputArray imagePoints, OutputArray jacobian=noArray(),
double aspectRatio=0 )
函数projectPoints()根据所给的3D坐标和已知的几何变换来求解投影后的2D坐标。
3.
void stereoRectify(InputArray cameraMatrix1, InputArray distCoeffs1,
InputArray cameraMatrix2, InputArray distCoeffs2, Size imageSize,
InputArray R, InputArray T,OutputArray R1, OutputArray R2,
OutputArray P1, OutputArray P2,OutputArray Q,
int flags=CALIB_ZERO_DISPARITY, double alpha=-1,
Size newImageSize=Size(), Rect* validPixROI1=0,
Rect* validPixROI2=0 )
立体矫正,该函数计算每个摄像机(实际上)的旋转矩阵,从而使两个摄像机图像平面成为同一平面。因此,这使得所有的外极线平行,从而简化了稠密立体对应问题。
输出:R1是把第一个相机校正后的坐标系转换为校正前的坐标系所用的旋转矩阵,即把校正前坐标系点坐标转换为校正后的点坐标所需的旋转矩阵。即pafter = R1 * pbefore。而返回去则需要pbefore = R1.inverse() * pafter。
R2同上;
P1:第一台相机矫正后坐标系的投影矩阵;
P2:第二台相机矫正后坐标系的投影矩阵;
Q:重投影误差。
4.
double stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1,
InputArrayOfArrays imagePoints2,
InputOutputArray cameraMatrix1,InputOutputArray distCoeffs1,
InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2,
Size imageSize,OutputArray R,OutputArray T, OutputArray E,
OutputArray F,
TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6),
int flags=CALIB_FIX_INTRINSIC )
stereoCalibrate() 是用来标定一个立体摄像头的,也就是同时标定两个摄像头。标定的结果除了能够求出两个摄像头的内外参数矩阵,跟能够得出两个摄像头的位置关系R,T。
objectPoints- vector
imagePoints1- vector
imagePoints2- vector
cameraMatrix1-输入/输出型的第一个摄像机的相机矩阵。如果CV_CALIB_USE_INTRINSIC_GUESS , CV_CALIB_FIX_ASPECT_RATIO ,CV_CALIB_FIX_INTRINSIC , or CV_CALIB_FIX_FOCAL_LENGTH其中的一个或多个标志被设置,该摄像机矩阵的一些或全部参数需要被初始化
distCoeffs1-第一个摄像机的输入/输出型畸变向量。根据矫正模型的不同,输出向量长度由标志决定
cameraMatrix2-输入/输出型的第二个摄像机的相机矩阵。参数意义同第一个相机矩阵相似
distCoeffs2-第一个摄像机的输入/输出型畸变向量。根据矫正模型的不同,输出向量长度由标志决定
imageSize-图像的大小
R-输出型,第一和第二个摄像机之间的旋转矩阵
T-输出型,第一和第二个摄像机之间的平移矩阵
E-输出型,本质矩阵,其物理意义是左右图像坐标系相互转换的矩阵,描述的是同一空间点投影在左右摄像机图像平面上对应点之间的关系,单位为mm。
F-输出型,基础矩阵,同一物理点在左右摄像机图像平面上投影在像素坐标系下的关系:
term_crit-迭代优化的终止条件
flag-