【问题标题】:How to use objectPoints parameter in stereoCalibrate() method, opencv 3.0如何在 stereoCalibrate() 方法中使用 objectPoints 参数,opencv 3.0
【发布时间】:2015-07-03 18:40:56
【问题描述】:

我似乎无法确定在哪里可以找到该 stereoCalibrate() 方法的输入数组。 opencv 文档将其描述为“校准模式点向量的向量”,看起来它必须来自对象检测校准。然而,我已经为我的相机完成了 opencv 源代码校准,并且校准信息保存到的 xml 文件除了 objectPoints 之外的所有内容。我在哪里/如何确定这个参数?

这里是文档的链接:http://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga246253dcc6de2e0376c599e7d692303a

谢谢, 罗文

【问题讨论】:

    标签: opencv


    【解决方案1】:

    来自stereo calibration example

    for( i = 0; i < nimages; i++ )
    {
        for( j = 0; j < boardSize.height; j++ )
        {
            for( k = 0; k < boardSize.width; k++ )
            {
                objectPoints[i].push_back(Point3f(k*squareSize, j*squareSize, 0));
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      物体点是从相机帧中检测到的点,通常是棋盘、圆网格。

      一般情况下,您应该打印出棋盘(或其他图案),打开相机,以不同的旋转和距离抓取棋盘的框架。容易检测算法会找到棋盘角,对象点。将这些点填充到校准函数中。您将获得相机内在和外在矩阵并将它们保存在 xml/yml 文件中。

      在 xml/yml 文件中不会放置任何对象点。

      【讨论】:

      • 你确定吗?对我来说,“从相机帧中检测到的点”听起来很像图像点。对象点应该是世界框架中的真实 3D 点,对吧?
      猜你喜欢
      • 2015-09-26
      • 2016-10-28
      • 2013-10-24
      • 2017-08-09
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多