2011-09-12 148 views
2

我想從cv :: calibrateCamera()函數中獲取cameraMatrix,實際上我不知道我是否正確或不正確,我最初的想法是:調用cv :: calibrateCamera()失敗

  1. 獲取來自同一相機的兩個輸入圖像。
  2. 提取從IMAGE_1和IMAGE_2的所有特徵點
  3. 使用CV :: calibrateCamera()來獲得cameraMatrix(不知道是否會工作或沒有)

這是我做的代碼它:

calling calibrateCamera()

編譯通過很好去了,但是當我運行它時,它拋出一個異常說:

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。不知道哪裏出了問題。有什麼建議麼?

非常感謝。

+0

我會從示例應用程序開始並從那裏開始工作 –

回答

5

我有類似的問題。我從學習OpenCV書中移植了一個C校準示例,以使用C++接口,並看到了您看到的確切錯誤。我將rvec和tvec更改爲std::vector<cv::Mat>,然後校準工作。請注意2.3文檔將rvec和tvec標記爲OutputArrayOfArrays。

+0

OpenCV 2.4.6仍然如此。 –