使用 OpenCV 与 Matlab 评估校准结果
Asses calibration result using OpenCV vs Matlab
我正在做一个项目,我必须校准相机才能计算相机矩阵并将其用于其他过程
我使用 Zahng 的方法(棋盘格)校准了相机,并使用两种不同的工具进行了校准:
1- Matlab标定工具
2-OpenCV方法(cv2.calibrateCamera())
对于这两种方法,我使用了相同的图像(16 张图像)。
Matlab的结果
4380.06266797091 0 0
0 4374.31691291339 0
949.990213743877 664.725183192415 1
#Radial Distortion Coefficient
-0.355521260561817 1.30195034883959
#tangational Distortion Coefficient
0 0
#average REPROJECTION ERROR
0.513903578285060
----------------------------------------------------
OpenCV代码的结果
#camera matrix
mtx [[4.38350928e+03 0.00000000e+00 9.73653727e+02]
[0.00000000e+00 4.37873075e+03 6.68924323e+02]
[0.00000000e+00 0.00000000e+00 1.00000000e+00]]
#Distortion Coefficients
dist [[-3.59709752e-01 3.91496111e+00 3.43950578e-03 1.01871917e-03
-6.21911790e+01]]
所以我的问题是:
1-Principal 点略有不同,哪个结果被认为更准确
2-为什么 OpenCV 考虑 5 个失真系数而 Matlab 考虑 4 个(两个为零,而在 Opencv 中不是!)
提前致谢
评论让我找到了问题的解决方案。感谢@fmw42
我正在做一个项目,我必须校准相机才能计算相机矩阵并将其用于其他过程
我使用 Zahng 的方法(棋盘格)校准了相机,并使用两种不同的工具进行了校准: 1- Matlab标定工具 2-OpenCV方法(cv2.calibrateCamera())
对于这两种方法,我使用了相同的图像(16 张图像)。
Matlab的结果
4380.06266797091 0 0
0 4374.31691291339 0
949.990213743877 664.725183192415 1
#Radial Distortion Coefficient
-0.355521260561817 1.30195034883959
#tangational Distortion Coefficient
0 0
#average REPROJECTION ERROR
0.513903578285060
----------------------------------------------------
OpenCV代码的结果
#camera matrix
mtx [[4.38350928e+03 0.00000000e+00 9.73653727e+02]
[0.00000000e+00 4.37873075e+03 6.68924323e+02]
[0.00000000e+00 0.00000000e+00 1.00000000e+00]]
#Distortion Coefficients
dist [[-3.59709752e-01 3.91496111e+00 3.43950578e-03 1.01871917e-03
-6.21911790e+01]]
所以我的问题是:
1-Principal 点略有不同,哪个结果被认为更准确
2-为什么 OpenCV 考虑 5 个失真系数而 Matlab 考虑 4 个(两个为零,而在 Opencv 中不是!)
提前致谢
评论让我找到了问题的解决方案。感谢@fmw42