我试图从函数cv::calibrateCamera()获取cameraMatrix,实际上我不确定我是否做对了,我最初的想法是:
- 获取来自同一相机的两个输入图像。
- 提取 image_1 和 image_2 中的所有特征点
- 使用cv::calibrateCamera()获取cameraMatrix(不知道是否有效)
这是我的代码:
编译进行得很好,但是当我运行它时,它抛出一个异常:
OpenCV Error: Assertion failed (i < 0) in create, file /home/hjbolide/OpenCV-2.3.1/modules/core/src/matrix.cpp, line 1198 terminate called after throwing an instance of 'cv::Exception'
what(): /home/hjbolide/OpenCV-2.3.1/modules/core/src/matrix.cpp:1198: error: (-215) i < 0 in function create
正如我所说,我只是尝试这种方法,并尝试从中获取cameraMatrix。不知道哪里出了问题。有什么建议吗?
非常感谢。
最佳答案
我也遇到了类似的问题。我从 Learning OpenCV 书中移植了一个 C 校准示例以使用 C++ 接口(interface),并且看到了您所看到的确切错误。我将 rvec 和 tvec 更改为 std::vector<cv::Mat>
然后校准就开始工作了。请注意,2.3 文档将 rvec 和 tvec 都标记为 OutputArrayOfArrays。
关于c++ - 调用 cv::calibrateCamera() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382784/