gpt4 book ai didi

opencv - OpenCV 中的立体校准 + 校正

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:04 30 4
gpt4 key购买 nike

我正在进行立体视觉设置,机翼上方安装了 2 个摄像头。左摄像头向内倾斜几度,而右摄像头与机翼平行。所有可用图像 here

然后使用(剪切和粘贴,但不按原样编译)

// performing stereocalibration given imagePoint_leftcamera and rightcamera
Flea3.reproj_error = stereoCalibrate(objectPoints,imagePoints_left,imagePoints_right,cameraMatrix_left,
distCoeffs_left,cameraMatrix_right,distCoeffs_right,imageSize, Flea3.R, Flea3.T, Flea3.E, Flea3.F,
TermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS, 100, 1e-5),
CV_CALIB_FIX_INTRINSIC );

// Peform stereorectification
stereoRectify(cameraMatrix_left, distCoeffs_left, cameraMatrix_right, distCoeffs_right, imageSize, Flea3.R, Flea3.T, Flea3.R1, Flea3.R2, Flea3.P1, Flea3.P2, Flea3.Q, CALIB_ZERO_DISPARITY, -1, Size(), &Flea3.validRoi_left, &Flea3.validRoi_right);

//computes undistort and rectify maps
initUndistortRectifyMap(cameraMatrix_left, distCoeffs_left, R1, P1, imageSize, CV_16SC2, rmap[0][0], rmap[0][2]);
initUndistortRectifyMap(cameraMatrix_right, distCoeffs_right, R2, P2, imageSize, CV_16SC2, rmap[1][0], rmap[1][3]);

remap(src_left, img_left, rmap[0][0], rmap[0][4], CV_INTER_LINEAR);
remap(src_right, img_right, rmap[1][0], rmap[1][5], CV_INTER_LINEAR);

右图中的黑色区域不应该在右边吗?既然右边的摄像头应该向右倾斜?

此外,尽管立体校正似乎有效,但 ROI(用红色框表示)显然是错误的!

我的校准好吗?顺便说一句,我的 cv::stereocalibrate 返回的重新投影错误是 0.6004

最佳答案

请查看底部的绿色匹配线 - 没有对应关系。在实践中,您必须在不同的位置和方向使用大约 20-30 个棋盘图案姿势(校准装置),包括深度旋转(倾斜、倾斜)、平面内旋转,并且请至少在您的某些部分覆盖整个图像校准镜头或在不同的镜头中逐个部分一致地覆盖它。

需要多个校准图像的原因如下。考虑齐次坐标中的无穷远点(称为理想点或消失点)。沿x方向的理想点是
Xinf = [1, 0, 0, 0]T
如果你把它带回欧几里德空间,你会得到 [1/0=Inf, 0/0, 0/0]T。如果你将你的投影矩阵从左边乘以 Xinf(同源坐标),结果除了第一列之外的所有地方都会有零。 结论: X 方向的消失点为您提供了投影矩阵的第一列。其他列来自其他消失点。反之则更难证明——即要获得正确的 P,你需要消失点,让我们暂时假设它。

您的校准问题在于您的装备中没有清晰的消失点,因为它是前置摄像头。您必须倾斜它以使投影线收敛(在多个方向成为消失点)。另一个问题是您的装备只占据了图像的一小部分,这是以其他区域为代价进行优化的地方。使用多个钻机姿势重新校准,您将获得更好的结果。

关于opencv - OpenCV 中的立体校准 + 校正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389012/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com