OpenCV 的相机校准似乎是错误的
Camera calibration for OpenCV seems to be wrong
请帮助我理解这种行为。
使用此代码校准相机时:
Calib3d.calibrateCamera(objectPoints, imagePoints, savedImageSize, intrinsic, distCoeffs, rvecs, tvecs,
Calib3d.CALIB_FIX_PRINCIPAL_POINT +
Calib3d.CALIB_ZERO_TANGENT_DIST +
Calib3d.CALIB_FIX_ASPECT_RATIO +
Calib3d.CALIB_FIX_K4 +
Calib3d.CALIB_FIX_K5
,term);
使用 45 张图像,如下所示:
我收到这个:
这显然是不正确的。
结果值:
[26384.00145168781, 0, 1631.5; 0, 26384.00145168781, 917.5; 0, 0, 1]
[-33.54856921170454, -0.2057610950119468, 0, 0, 0]
如何设置校准以检索正确的数据?
我发现纯 C++ opencv 项目使用相同的属性和代码给出了正确的结果。
此代码有效:
https://github.com/opencv/opencv/blob/master/samples/cpp/calibration.cpp
小心使用 java opencv 库!
请帮助我理解这种行为。
使用此代码校准相机时:
Calib3d.calibrateCamera(objectPoints, imagePoints, savedImageSize, intrinsic, distCoeffs, rvecs, tvecs,
Calib3d.CALIB_FIX_PRINCIPAL_POINT +
Calib3d.CALIB_ZERO_TANGENT_DIST +
Calib3d.CALIB_FIX_ASPECT_RATIO +
Calib3d.CALIB_FIX_K4 +
Calib3d.CALIB_FIX_K5
,term);
使用 45 张图像,如下所示:
结果值:
[26384.00145168781, 0, 1631.5; 0, 26384.00145168781, 917.5; 0, 0, 1] [-33.54856921170454, -0.2057610950119468, 0, 0, 0]
如何设置校准以检索正确的数据?
我发现纯 C++ opencv 项目使用相同的属性和代码给出了正确的结果。 此代码有效: https://github.com/opencv/opencv/blob/master/samples/cpp/calibration.cpp
小心使用 java opencv 库!