函数介绍
用于双目相机的立体校正环节中,这里只谈谈这个函数怎么使用,参数具体指哪些
函数参数
随便去网上一搜或者看官方手册就能得到参数信息,但是!!相对关系非常容易出错!!
这里详细解释一下这些参数究竟怎么用
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 )
- cameraMatrix1-第一个摄像机的摄像机矩阵,即左相机相机内参矩阵,矩阵第三行格式应该为 0 0 1
- distCoeffs1-第一个摄像机的畸变向量
- cameraMatrix2-第一个摄像机的摄像机矩阵,即右相机相机内参矩阵,矩阵第三行格式应该为 0 0 1
- distCoeffs2-第二个摄像机的畸变向量
- imageSize-图像大小
- R- 相机之间的旋转矩阵,这里R的意义是:相机1通过变换R到达相机2的位姿
- T- 左相机到右相机的平移矩阵
- R1-输出矩阵,第一个摄像机的校正变换矩阵(旋转变换)
- R2-输出矩阵,第二个摄像机的校正变换矩阵(旋转矩阵)
- P1-输出矩阵,第一个摄像机在新坐标系下的投影矩阵
- P2-输出矩阵,第二个摄像机在想坐标系下的投影矩阵
- Q-4*4的深度差异映射矩阵
- flags-可选的标志有两种零或者 CV_CALIB_ZERO_DISPARITY ,如果设置 CV_CALIB_ZERO_DISPARITY 的话,该函数会让两幅校正后的图像的主点有相同的像素坐标。否则该函数会水平或垂直的移动图像,以使得其有用的范围最大
- alpha-拉伸参数。如果设置为负或忽略,将不进行拉伸。如果设置为0,那么校正后图像只有有效的部分会被显示(没有黑色的部分),如果设置为1,那么就会显示整个图像。设置为0~1之间的某个值,其效果也居于两者之间。
- newImageSize-校正后的图像分辨率,默认为原分辨率大小。
- validPixROI1-可选的输出参数,Rect型数据。其内部的所有像素都有效
- validPixROI2-可选的输出参数,Rect型数据。其内部的所有像素都有效