在 OpenCV 中进行校准的目的是啥?

Posted

技术标签:

【中文标题】在 OpenCV 中进行校准的目的是啥?【英文标题】:What is the purpose of calibrating in OpenCV?在 OpenCV 中进行校准的目的是什么? 【发布时间】:2012-11-20 21:49:01 【问题描述】:

我正在开始一个新的机器人项目(带有摄像头),所以我需要校准它的两个摄像头。

我的问题是:为什么我需要校准相机? 它与定义物体尺寸和到相机的距离有什么关系吗?

任何信息都会有所帮助。

提前致谢

【问题讨论】:

aishack.in/2010/07/two-major-physical-defects-in-camerasdocs.opencv.org/doc/tutorials/calib3d/camera_calibration/…。只是谷歌它。信息量很大。 因为您是在机器人技术的背景下提问。查看新的robotics SE 网站,并在那里提出您的问题。 aishack.in/tutorials/two-major-physical-defects-in-cameras - 第一条评论中的链接无效。 【参考方案1】:

相机校准(以及更普遍的)仪器校准对于您希望设备用于几乎任何应用程序来说都是必不可少的前期步骤。

例如,假设您有一个相机。在这种情况下,您必须对其内在参数(焦距、主点、偏斜系数)进行校准(即计算其值)。您可以使用校准板(例如,Checkerboard、AprilTag)来做到这一点。

现在,您可能会说该相机的制造商已知并报告了这些参数,我们可以在手册或相应的文档中查找它们。然而,情况并非总是如此:

制造商可能会向您提供该校准信息。即使他们这样做了,这些数字也可能是粗略的,因此它们适用于整个产品系列。也就是说,他们可能不会校准每一个相机。您可以使用这些校准参数,但如果您想要更高的准确度,最好将它们用作粗略估计并自己进行校准。

设备可能会受到环境及其运行的整体条件(温度、湿度等)的影响。例如,假设您有一台立体相机。在这种情况下,您将校准两个独立 RGB 相机之间的长度。但该长度可能会根据温度而变化(加热会使摄像机之间的刚性连接膨胀)。

设备的规格可能会根据其使用年限和使用情况而改变,因此每隔 N 年重新计算一次校准参数是有意义的。

总而言之,请务必自行校准您的相机。您会惊讶于它的重要性。

查看以下链接了解更多信息:

https://www.cv-foundation.org/openaccess/content_cvpr_2013/papers/Oth_Rolling_Shutter_Camera_2013_CVPR_paper.pdf

https://uk.mathworks.com/help/vision/ug/camera-calibration.html

https://www.measurement.govt.nz/services/temperature-and-humidity/humidity-calibration-service/calibration-certificate/purpose-of-a-

http://www.npl.co.uk/reference/faqs/should-i-have-my-instrument-calibrated-and,-if-so,-how-often-(faq-force)

【讨论】:

以上是关于在 OpenCV 中进行校准的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 Matlab 与 OpenCV 的相机校准工具箱进行校准

使用opencv进行多摄像头校准:两个摄像头相互面对

不使用 cv2.findChessboardCorners 在 Python 中校准 OpenCV 相机

使用来自 OpenCV 的转换矩阵手动进行图像校准

使用 OpenCV 进行相机校准 - findChessboardCorners 返回 false

OpenCV 相机校准