3

在相机校准中,我使用 calibrateCamera() 从校准模式的多个视图中查找相机参数。它恰好做了两件事:

1) 以封闭形式估计初始相机参数,假设镜头畸变为零。

2) 运行全局 Levenberg-Marquardt 优化算法以最小化重投影误差,这是使用 projectPoints() 完成的

现在,我不仅要计算最小化重投影误差,还要计算导致它的拟合参数。目前没有可以返回无错误参数的函数。所以,我想我会使用 projectPoints() 来获取重新投影的图像点,然后使用重新投影的图像点和世界点再次校准并获得无错误的参数。问题是这不是我确定会给我输出的东西。谁能告诉我是不是?任何帮助,将不胜感激。

4

1 回答 1

0

Levenberg-Marquardt 将为您提供模型和数据能力的最佳估计。除非您的输入数据没有噪声并且您的模型复杂性与真实模型的复杂性相匹配,否则您无法获得无错误的参数。

例如,您的模型是:x * 2 + y = z,其中 x > 0 且 x 是整数

输入数据 z = { 3 }

根据您的初始值,Levenberg-Marquardt 将为您提供: (x = 1, y = 1) or (x=2,y=-1) or ... 这是没有错误的

但是,对于相同的输入 z,如果您的模型是:x * 2 = z,其中 x > 0 并且 x 是整数

您无法获得无错误的参数

于 2020-05-30T09:36:02.957 回答