|
本帖最后由 april_zhao425 于 2019-8-30 18:18 编辑
1.分别对两个相机进行标定ret1, cameraMatrix1, distCoeffs1, rvecs1, tvecs1 = cv2.calibrateCamera(obj_points, img_left_points,image_size, K, None,flags=cv2.CALIB_USE_INTRINSIC_GUESS+cv2.CALIB_FIX_PRINCIPAL_POINT)
ret2, cameraMatrix2, distCoeffs2, rvecs2, tvecs2 = cv2.calibrateCamera(obj_points, img_right_points,image_size2, K, None,flags=cv2.CALIB_USE_INTRINSIC_GUESS+cv2.CALIB_FIX_PRINCIPAL_POINT)
2.双目标定
stereocalib_criteria = (cv2.TERM_CRITERIA_MAX_ITER + cv2.TERM_CRITERIA_EPS, 100, 1e-5)
stereocalib_flags =cv2.CALIB_FIX_INTRINSIC
stereocalib_retval, cameraMatrixL, distCoeffsL, cameraMatrixR, distCoeffsR, R, T, E, F = cv2.stereoCalibrate(obj_points,img_left_points, img_right_points, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, image_size,criteria=stereocalib_criteria, flags=stereocalib_flags)
3.立体矫正
R1, R2, P1, P2, Q, validPixROI1, validPixROI2 = cv2.stereoRectify(cameraMatrixL, distCoeffsL,cameraMatrixR, distCoeffsR,image_size, R, T, flags=cv2.CALIB_ZERO_DISPARITY, alpha=0)
4.最后P1的值是
[[ 23.94124645 0. 858.44723517 0. ]
[ 0. 23.94124645 340.67619807 0. ]
[ 0. 0. 1. 0. ]]
这也差太多了吧,大家帮忙看看我哪个地方是错了吗?
还有就是不同版本的opencv,计算出来的结果都不一样,这是怎么回事?大家有遇到同样的问题吗?
|
|