2016-02-18 171 views
2

我以前正在使用OpenCV-2.4.10進行攝像機校準。現在我已經安裝了OpenCV-3.0.0並運行相同的代碼。 This是代碼的鏈接。OpenCV - 3.0攝像機校準提供了一個錯誤

與以前的版本,它工作正常,但在OpenCV-3.0.0它給出了一個錯誤。

TypeError: Required argument 'cameraMatrix' (pos 4) not found

誰能告訴我如何解決這個問題?

任何如果我添加cameraMatrix(POS4)和distcoeff(POS5),它給出了一個錯誤:

TypeError: function takes exactly 2 arguments (3 given)

回答

1

這難倒我了,但現在你需要通過None每個。

retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(objectPoints,imagePoints, imageSize, None, None) 

http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.html#calibration

+0

給無不能解決問題,還是同樣的問題 – Mehdi

+0

的IMG大小你得到的錯誤究竟是什麼?如果你傳遞兩個'None',那麼你應該得到一個與前一個不同的錯誤。 – Josh

+3

我得到了完全相同的錯誤 TypeError:函數只需要2個參數(3給出) 但事實證明,我是在轉換爲灰度之前將圖像的形狀作爲ImageSize傳遞,所以一個3值而不是2的元組, OpenCV有時會出現令人困惑的錯誤。 – Mehdi

0

試試這個:

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(
    objpoints, imgpoints, frame.shape[::-1][1:3], None, None 
) 

frame.shape是你用來校準