调用cv :: calibrateCamera()失败

时间:2011-09-12 02:32:37

标签: c++ opencv

我正在尝试从函数cv :: calibrateCamera()获取cameraMatrix,实际上我不确定我是否做得对,我最初的想法是:

  1. 获取两张来自同一相机的输入图像。
  2. 从image_1和image_2
  3. 中提取所有要素点
  4. 使用cv :: calibrateCamera()获取cameraMatrix(不知道它是否可行)
  5. 这是我的代码:

    calling calibrateCamera()

    编译进行得非常顺利,但是当我运行它时,它会抛出异常说:

      

    OpenCV错误:在create,file中断言失败(i< 0)   /home/hjbolide/OpenCV-2.3.1/modules/core/src/matrix.cpp,第1198行   抛出'cv :: Exception'的实例后终止被调用   what():/ home / hjbolide / OpenCV-2.3.1 / modules / core / src / matrix.cpp:1198:   错误:( - 215)i< 0在函数创建

    正如我所说,我只是尝试这种方法,并尝试从中获取cameraMatrix。不知道哪里出错了。有什么建议吗?

    非常感谢。

1 个答案:

答案 0 :(得分:5)

我有类似的问题。我从Learning OpenCV书中移植了一个C校准示例以使用C ++接口,并且看到了您看到的确切错误。我将rvec和tvec更改为std::vector<cv::Mat>,然后校准工作。请注意,2.3文档将rvec和tvec标记为OutputArrayOfArrays。