关于使用opencv进行立体标定出现无法完整显示校正图像的问题 |
您所在的位置:网站首页 › lightroom校准右右左 › 关于使用opencv进行立体标定出现无法完整显示校正图像的问题 |
opencv中立体图像校正的函数是stereoRectify(),通过此函数可以获得图片进行立体校正所需的映射矩阵。 函数调用:void stereoRectify(InputArray cameraMatrix1 ,InputArray distCoeffs1,InputArray cameraMatrix2 ,InputArray distCoeffs2 , Size imageSize ,InputArray R ,InputArray T ,OutputArray Rl ,OutputArray Rr ,OutputArray Pl ,OutputArray Pr ,OutputArray Q, int flags ,double alpha=-1 ,Size newImageSize=Size() , Rect* validPixROI1=0 , Rect* validPixROI2=0 ) 参数说明:cameraMatrix1-左相机的内部参数矩阵; distCoeffs1-左相机的畸变参数矩阵; cameraMatrix2-右相机的内部参数矩阵; distCoeffs1-右相机的畸变参数矩阵; R-stereoCalibration()函数求得的R矩阵; T-stereoCalibration()函数求得的T矩阵; Q-4*4的深度差异映射矩阵; flags-可选的标志有两种零或者 CV_CALIB_ZERO_DISPARITY ,如果设置 CV_CALIB_ZERO_DISPARITY 的话,该函数会 让两幅校正后的图像的主点有相同的像素坐标。否则该函数会水平或垂直的移动图像,以使得其有用的范围最大; alpha-拉伸参数。如果设置为负或忽略,将不进行拉伸。如果设置为0,那么校正后图像只有有效的部分会被显示(没有黑 色的部分),如果设置为1,那么就会显示整个图像。设置为0~1之间的某个值,其效果也居于两者之间。 newImageSize-校正后的图像分辨率,默认为原分辨率大小; validPixROI1-可选的输出参数,Rect型数据。其内部的所有像素都有效; validPixROI2-可选的输出参数,Rect型数据。其内部的所有像素都有效; 问题描述:使用此函数进行计算时,发现显示的图片不是完整的校正后图片,仅仅显示了图片的某一个部分,这导致无法查看校正效果,后来查看了此函数的参数之后,修改了参数flags和alpha,其中将flags从CV_CALIB_ZERO_DISPARITY修改为0,将alpha从0修改为-1,之后可以完整显示校正之后图像。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |