使用单输入图像进行相机校准

信息处理 图像处理 计算机视觉 失真 相机校准
2022-02-10 08:41:42

给定一个相机,永久位于与被捕获对象相同的位置、角度和距离,以及一个校准图像(一行垂直线 [ | | | | ] ),如何使用该图像进行校正(桶形失真)到所有后续图像?

网上有很多关于相机校准问题的例子,但大多数都试图通过猜测来实现校正,或者通过高度复杂的过程来校正真实世界的图像。但是,我找不到任何关于校准位置和主体始终位于同一位置的相机的任何内容,并且在校正之前已知垂直线的预期位置。

我最接近我的方法是 brown (1971) 描述的铅垂线校准方法。

是否有任何算法或伪代码描述了一种使用垂直线的单个输入图像进行校准的方法(每条线之间的间隙可以清楚地看到失真)?

近距离相机校准 - DC,棕色

4个回答

在这里看一下这篇论文:Faugeras 等人的“直线必须是直线”。 http://link.springer.com/article/10.1007/PL00013269#page-1

实施起来很简单,但基本上通过观察线条的直线度来消除失真。

如果您删除一些自动化(例如,您手动单击线条而不是依赖图像处理),它应该很容易实现。

您有什么理由不想使用多个校准图像?查看适用于 MATLAB 的计算机视觉系统工具箱中的Camera Calibrator 应用程序。它消除了该过程的大部分猜测工作。

是的,这是可以做到的。不过,结果的质量可能一般。我建议拍摄多个目标略有不同的图像(例如,改变线条的间距和/或方向),然后将数据合并到一个数据集中。

至于数据本身,我的偏好是在已知间距的一组离散的明确定义的点 - 因此是棋盘模式。

您可以在 SO 上查看我对类似问题的其他答案以供参考。

你可以看看这篇文章http://home.isr.uc.pt/~jpbar/Publication_Source/meloICCV2013.pdf它从自然图像线校准图像。您可以恢复大部分校准参数,然后将它们应用于后续图像。