CV:MATLAB和OpenCV相机校准技术的区别 [英] CV: Difference between MATLAB and OpenCV camera calibration techniques
问题描述
我使用OpenCV和MATLAB校准了带有棋盘图案的相机。我分别在OpenCV和MATLAB中获得了 .489 和 187 的平均重投影错误。从外观上看,MATLAB更精确。但我的顾问感觉MATLAB和OpenCV使用相同的BOUGET的算法,并应报告相同的错误(或关闭)。是这样吗 ?有人可以解释b / w MATLAB和OpenCV相机校准方法的区别吗?
I calibrated a camera with checkerboard pattern using OpenCV and MATLAB. I got .489 and .187 for Mean Re-projection errors in OpenCV and MATLAB respectively. From the looks of it, MATLAB is more precise. But my adviser feels both MATLAB and OpenCV use the same BOUGET's algorithm and should report same error (or close). Is it so ? Can someone explain the difference b/w MATLAB and OpenCV camera calibration methods ?
谢谢!
推荐答案
您的顾问是正确的,因为MATLAB和OpenCV使用基本相同的校准算法。然而,MATLAB使用Levenberg-Marquardt非线性最小二乘法算法进行优化(参见文档),而OpenCV使用渐变下降。
Your adviser is correct in that both MATLAB and OpenCV use essentially the same calibration algorithm. However, MATLAB uses the Levenberg-Marquardt non-linear least squares algorithm for the optimization (see documentation), whereas OpenCV uses gradient descent. I would guess that this accounts for most of the difference in the reprojection errors.
此外,MATLAB和OpenCV对棋盘检测使用不同的算法。
Additionally, MATLAB and OpenCV use different algorithms for checkerboard detection.
这篇关于CV:MATLAB和OpenCV相机校准技术的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!