gpt4 book ai didi

c++ - 单张图像的相机校准?它似乎有效,但我错过了什么吗?

转载 作者:可可西里 更新时间:2023-11-01 17:57:41 32 4
gpt4 key购买 nike

我必须进行相机校准。我了解一般概念并且可以正常工作,但是在许多指南中它说要使用许 multimap 像或至少两个具有不同方向的图像。为什么这是必要的?我似乎用一张 14x14 点的图像获得了相当不错的结果:

Calibration image

Restored calibration image我用 cv::findCirclesGrid 找到点并使用 cv::calibrateCamera 找到外部和内部参数。内在猜测设置为 false。主点和纵横比固定,而切向畸变固定为零。

然后我使用 cv::getOptimalNewCameraMatrix、cv::initUndistortRectifyMap 和 cv::remap 来恢复图像。

在我看来结果还不错,但是我是不是漏掉了什么?它真的是错的,只是等着以后给我带来麻烦吗?

此外,在您问我为什么不使用多张图片来确定之前;我正在编写的软件将与半固定相机支架一起使用,一次校准多个相机。因此,首先需要修改支架,以便将图案定位在一个角度或偏离中心,因为目前它只能移近或移远。其次,不应因必须捕获更 multimap 像而不必要地减慢该过程。

编辑:向 Micka 问“如果你的视角在图案上不是 90° 会发生什么?你可以尝试将图案旋转远离相机吗?”。我得到了一些类似的结果,尽管它发现失真较少。用尺子看边框好像90°的刻度比较好,但是真的不好说。

最佳答案

在不同的方向上有更多的模式是必要的,以避免内部参数非常不准确但不失真的像素重投影误差仍然很低的情况,因为不同的误差补偿。

为了说明这一点:如果您只有一张以 90 度视角拍摄的图像,那么从侧面稍微观察一下图案就很难区分水平焦距的变化。将这两个参数分开的唯一线索是线条的逐渐变细,但这种测量非常嘈杂。因此,您需要多个显着角度的 View ,以将姿势的这一方面与内在参数分开。

如果您知道您的图像是以 90 度观看的,您可以利用它来发挥自己的优势,但它需要修改 opencv 算法。如果您确定所有图像都将从与校准图像相同的姿势捕获,那么这并不重要,因为即使各个校准参数不准确但可以补偿(即它们可以很好地补偿这个特定姿势),不失真也会很好,但其他姿势效果不佳)。

关于c++ - 单张图像的相机校准?它似乎有效,但我错过了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27821198/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com