关于使用opencv进行立体标定出现无法完整显示校正图像的问题

您所在的位置:网站首页 lightroom校准右右左 关于使用opencv进行立体标定出现无法完整显示校正图像的问题

关于使用opencv进行立体标定出现无法完整显示校正图像的问题

2024-07-09 18:41| 来源: 网络整理| 查看: 265

       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