저는 opencv를 배우고 입체 카메라를 테스트하고 있습니다. 내 코드에서, stereoRectify 함수는 때때로 크기 (0,0)로 ROI를 반환합니다. 이 문제를 파악할 수 없습니다. 단말기왜 cv :: stereoRectify는 ROI를 size (0,0)로 반환합니까?
Mat cameraMatrix[2], distCoeffs[2];
cameraMatrix[0] = initCameraMatrix2D(objectPoints, imagePoints_l,
imageSize, 0);
cameraMatrix[1] = initCameraMatrix2D(objectPoints, imagePoints_r,
imageSize, 0);
Mat R, T, E, F;
double rms = stereoCalibrate(objectPoints, imagePoints_l, imagePoints_r,
cameraMatrix[0], distCoeffs[0],
cameraMatrix[1], distCoeffs[1],
imageSize, R, T, E, F,
CALIB_FIX_ASPECT_RATIO +
CALIB_ZERO_TANGENT_DIST +
CALIB_USE_INTRINSIC_GUESS +
CALIB_SAME_FOCAL_LENGTH +
CALIB_RATIONAL_MODEL +
CALIB_FIX_K3 + CALIB_FIX_K4 + CALIB_FIX_K5,
TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 100, 1e-5));
Mat R1, R2, P1, P2, Q;
Rect validRoi[2];
stereoRectify(cameraMatrix[0], distCoeffs[0],
cameraMatrix[1], distCoeffs[1],
imageSize, R, T, R1, R2, P1, P2, Q,
CALIB_ZERO_DISPARITY, 0.5, imageSize, &validRoi[0], &validRoi[1]);
cout << validRoi[0] << validRoi[1] << endl;
이 출력 :
[0 x 0 from (0, 0)][215 x 184 from (77, 19)]
또는 :
[0 x 0 from (0, 0)][0 x 0 from (0, 0)]
I는 출력 카메라 행렬 왜곡 매트릭스 :
가[204.3355426705726, 0, 193.3280616575545;
0, 189.8976931576431, 123.307676870377;
0, 0, 1]
[-0.5404320611827982, 0.3292134879059271, 0, 0, 0, 0, 0,
0.1371856537119246, 0, 0, 0, 0, 0, 0]
[204.3355426705726, 0, 183.756931129648;
0, 189.8976931576431, 131.4500619272754;
0, 0, 1]
[-0.524923482702874, 0.3121043629068334, 0, 0, 0, 0, 0,
0.1269780773557047, 0, 0, 0, 0, 0, 0]
일부 코드 및 출력을 추가했습니다. 고맙습니다. – Ayoung