使用cv2.fisheye.calibrate標定時出現的錯誤:(-215:Assertion failed)

用python+opencv對大廣角鏡頭(實時)標定時出現如下錯誤,
錯誤如下:

Traceback (most recent call last):
  File "E:/workspace-python/StereoSystem/calibrate/SingleCalibrate.py", line 134, in <module>
    mtx, dist = calibrate_single(1, 27, 9, 6, fileName)
  File "E:/workspace-python/StereoSystem/calibrate/SingleCalibrate.py", line 81, in calibrate_single
    (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 1e-6)
cv2.error: OpenCV(3.4.2) C:\projects\opencv-python\opencv\modules\calib3d\src\fisheye.cpp:712: error: (-215:Assertion failed) objectPoints.type() == (((5) & ((1 << 3) - 1)) + (((3)-1) << 3)) || objectPoints.type() == (((6) & ((1 << 3) - 1)) + (((3)-1) << 3)) in function 'cv::fisheye::calibrate'

錯誤之處:

 # 世界座標系中的棋盤格點
 objp = np.zeros(( Nx_cor * Ny_cor, 3), np.float32)
 objp[ :, :2] = np.mgrid[0:Nx_cor, 0:Ny_cor].T.reshape(-1, 2)

處理方案:

 objp = np.zeros((1, Nx_cor * Ny_cor, 3), np.float32)
 objp[0, :, :2] = np.mgrid[0:Nx_cor, 0:Ny_cor].T.reshape(-1, 2)

處理後可成功獲取廣角/魚眼鏡頭的內參:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章