1

根据我得到的结果和提供的文档,我得出结论,使用非平面钻机进行校准在 OpenCV 中不起作用(它们在很大程度上取决于最初的猜测)。根据他们的功能文档calibrateCamera

该算法执行以下步骤:

  • 计算初始内在参数(该选项仅适用于平面校准模式)或从输入参数中读取它们。失真系数最初都设置为零,除非某些 CV_CALIB_FIX_K? 被指定。
  • 估计初始相机位姿,就好像内在参数已知一样。这是使用solvePnP完成的
  • 运行全局 Levenberg-Marquardt 优化算法以最小化重投影误差,即观察到的特征点 imagePoints 和投影(使用当前对相机参数和位姿的估计)对象点 objectPoints 之间的总平方和。有关详细信息,请参阅项目点。

如果您使用非平面钻机作为输入,您还需要提供内在的初始估计,从而确认第一点。

所以,我的问题是,是否有任何可用的库(任何语言)可以实现为非平面钻机查找内在函数(或者可能与外在函数一起)?

4

2 回答 2

1

如果您可以访问 Matlab,或者可以理解 Matlab 语法并将其翻译成您喜欢的语法(从 Matlab 到 Python 很容易,并且您可以获得 openCV 集成)。你可以看看他们的非平面钻机。此代码基于 Heikkilä 的作品:

“使用圆形控制点进行几何相机校准”,IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol。22,第 10 期,第 1066-1077 页,2000 年 10 月。

并且包括此类校准的示例,这些链接包含相应的代码:

http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example3.html

http://www.ee.oulu.fi/~jth/calibr/

我希望这个广泛的答案是有用的。

于 2015-06-16T22:43:50.493 回答
0

MVTec 的 Halcon 允许您指定任何校准装置的 3D 坐标。http://www.halcon.com/download/reference/camera_calibration.html

于 2015-05-06T10:47:07.130 回答