功能错误cv2.calibrateCamera

时间:2017-06-07 12:04:37

标签: python opencv

我尝试在修改几行后从OpenCV docs运行此代码进行相机校准。

for fname in images:
    i =i+1
    print(str(i))
    img_train = cv2.imread(fname,1)
    gray = cv2.cvtColor(img_train,cv2.COLOR_BGR2GRAY)
    ret, corners = cv2.findChessboardCorners(gray,(9,9),None)

    if(ret == True):
        objpoints.append(objp)
        corners2 = cv2.cornerSubPix(gray,corners,(11,11)(-1,-1),criteria)
        imgpoints.append(corners2)
        cv2.drawChessboardCorners(img_train, (9,9), corners2,ret)

    cv2.imshow('Train',img_train)
    cv2.waitKey(500)

cv2.destroyAllWindows()

grey = cv2.imread('GoPro/GOPR4176.JPG',0)
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints,imgpoints,grey.shape[::-1],None,None)

np.savetxt("CAMERA_MATRIX_FOR_VIDEO.txt", mtx)

我一直收到以下错误:

OpenCV Error: Assertion failed (nimages > 0) in calibrateCamera, file /home/atul/opencv/modules/calib3d/src/calibration.cpp, line 3357
Traceback (most recent call last):
  File "gopro2.py", line 53, in <module>
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints,imgpoints,grey.shape[::-1],None,None)
cv2.error: /home/atul/opencv/modules/calib3d/src/calibration.cpp:3357: error: (-215) nimages > 0 in function calibrateCamera

为什么会出现此错误?

1 个答案:

答案 0 :(得分:0)

什么是objp?可能你正在使用不同大小的objp。你必须定义 objp = np.zeros((n * m,3),np.float32) objp [:,:2] = np.mgrid [0:n,0:m] .T.reshape(-1,2)

其中n和m是网格的大小(圆形或棋盘,4x11,7x6等)

相关问题