在相机校准中,我使用了calibrateCamera()从校准图案的多个视图中查找相机参数。它确实做了两件事:
1)以闭合形式估算初始相机参数,假设镜头失真为零。
2)运行全局Levenberg-Marquardt优化算法以最小化重投影错误,这是使用projectPoints()
完成的现在,我不只是想计算最小化重投影错误,而是计算导致它的拟合参数。目前没有可以返回无错误参数的函数。所以,我认为我会使用projectPoints()获取重新投影的图像点,然后使用重新投影的图像点和世界点再次校准并获得无错参数。问题是这不是我肯定会给我输出的东西。有谁能告诉我这是不是?任何帮助将不胜感激。
答案 0 :(得分:0)
Levenberg-Marquardt将为您提供有关模型和数据功能的最佳估计。除非输入数据没有噪声并且模型复杂度与实际模型的复杂度匹配,否则您将无法获得无错误的参数。
例如,您的模型是: x * 2 + y = z,其中x> 0并且x是整数
输入数据z = {3}
根据您的初始价值,Levenberg-Marquardt将为您提供: (x = 1,y = 1)或(x = 2,y = -1)或...没有错误
但是,如果输入的是z,则输入z相同: x * 2 = z,x> 0且x为整数
无法获得无错误的参数