不同图像大小的OpenCV立体校准

不同图像大小的OpenCV立体校准,opencv,Opencv,我有两个不同分辨率的相机,但stereoCalibrate功能只有一个imagesize选项 如果我理解正确,stereoCalibrate计算从cam1到cam2的刚性变换矩阵。如果这是真的,那么我应该使用哪个摄像机尺寸作为函数stereoCalibrate的输入?参数imageSize仅用于初始化内部摄像机矩阵 我建议使用独立校准每个摄像头,从而获得每个摄像头的摄像头矩阵和失真系数。然后,在启用标志的情况下(使用预先估计的摄像机矩阵和畸变系数),估计摄像机坐标系之间的变换(旋转R和平移t)

我有两个不同分辨率的相机,但stereoCalibrate功能只有一个imagesize选项


如果我理解正确,stereoCalibrate计算从cam1到cam2的刚性变换矩阵。如果这是真的,那么我应该使用哪个摄像机尺寸作为函数stereoCalibrate的输入?

参数
imageSize
仅用于初始化内部摄像机矩阵

我建议使用独立校准每个摄像头,从而获得每个摄像头的摄像头矩阵和失真系数。然后,在启用标志的情况下(使用预先估计的摄像机矩阵和畸变系数),估计摄像机坐标系之间的变换(旋转
R
和平移
t


因此,
imageSize
参数不再重要。

谢谢,我也这样做了,但是cv::stereoCalibrate()函数报告的RMS错误很高(0.57),所以我想知道这是否是由于图像大小造成的。Cam1和Cam2的Reproj误差分别为0.26和0.22。我尝试从Matlab进行立体校准,RMS误差报告为0.23。你知道为什么在OpenCV中RMS误差很高吗?或者你有什么其他的建议来提高精度吗。我使用贴在平板玻璃上的7x19非对称图案。我认为您的最终重投影误差足够低(0.57像素可以视为亚像素精度)。顺便说一句,您可以使用参数
term_crit
或尝试使用不同的(即棋盘)模式。