Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

StereoCalib in python. Error:too many value to unpack

Hi, I am trying the stereo calibration in opencv using python. I am using python version 2.7.1 and openCV version 2.6 When i run the code, I get an error saying too many values to unpack. Below is my code:

objpts=[] objPoints = [] pointCounts = hor*ver R = [8] T = [8] E=[] F=[] R1 = [] R2 = [] P1=[] P2 =[] objectPoints = [] imgPoints1 = [] imgPoints2 = [] imagePoints2 = [] imagePoints1 = []

while ((len(imagePoints1) < horver) and (len(imagePoints2)< horver)): #hor x ver

ret,imgr  = webCamHndlr_r.read(0)
ret,imgl  = webCamHndlr_l.read(1)
grey_imgr = cv2.cvtColor(imgr, cv.CV_BGR2GRAY)
grey_imgl = cv2.cvtColor(imgl, cv.CV_BGR2GRAY)
ret, cornersr =cv2.findChessboardCorners(grey_imgr,dims)
cv2.drawChessboardCorners(grey_imgr,dims,cornersr,0)
ret, cornersl =cv2.findChessboardCorners(grey_imgl,dims)
cv2.drawChessboardCorners(grey_imgl,dims,cornersl,0)
cv2.imshow("chessboard", grey_imgr)
cv2.imshow("chessboard1", grey_imgl)

objPoints = np.zeros((hor*ver,3), np.float32)
objPoints[:,:2] = np.mgrid[0:hor,0:ver].T.reshape(-1,2)

if cv.WaitKey(-1) == 32:

    imagePoints1.append(cornersl)
    imagePoints2.append(cornersr)
    print len(imagePoints1)
    objectPoints.append(objPoints)
    cv2.imwrite("./test_images/img_r"+str(i)+".jpg",imgr)
    cv2.imwrite("./test_images/img_l"+str(i)+".jpg",imgl)
    i = i+1;


    if cv2.waitKey(10) == 27:
        break

objectPoints = [np.asarray(x) for x in objectPoints] imagePoints1 = [np.asarray(x) for x in imagePoints1] imagePoints2 = [np.asarray(x) for x in imagePoints2]

if( len(imagePoints1[0])== len(imagePoints2[0]) == len(objectPoints[0]) == len(objectPoints)== len(imagePoints2) == len(imagePoints1) ) : print len(imagePoints1[0])

cv2.stereoCalibrate(objectPoints[0], imagePoints1[0], imagePoints2[0], (imgr), cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2)

cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240))
print R

cv.StereoRectify(cameraMatrix1, cameraMatrix2, distCoeffs1, distCoeffs2,(imgr.width,imgr.height), R, T, R1, R2, P1, P2, Q, CV_CALIB_ZERO_DISPARITY, -1, (0, 0))
print  Q
np.savetxt('Q_mat.txt',Q)

and the error I get is :

Traceback (most recent call last): File "depth_estimation.py", line 82, in <module> cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240)) ValueError: too many values to unpack

I am giving an array of objectpoints each of which in turn is an array of points.

Any help in this issue will be appreciated. Thanks a lot.

StereoCalib in python. Error:too many value to unpack

Hi, I am trying the stereo calibration in opencv using python. I am using python version 2.7.1 and openCV version 2.6 2.4.2 When i run the code, I get an error saying too many values to unpack. Below is my code:

objpts=[] objPoints = [] pointCounts = hor*ver R = [8] T = [8] E=[] F=[] R1 = [] R2 = [] P1=[] P2 =[] objectPoints = [] imgPoints1 = [] imgPoints2 = [] imagePoints2 = [] imagePoints1 = []

while ((len(imagePoints1) < horver) and (len(imagePoints2)< horver)): #hor x ver

ret,imgr  = webCamHndlr_r.read(0)
ret,imgl  = webCamHndlr_l.read(1)
grey_imgr = cv2.cvtColor(imgr, cv.CV_BGR2GRAY)
grey_imgl = cv2.cvtColor(imgl, cv.CV_BGR2GRAY)
ret, cornersr =cv2.findChessboardCorners(grey_imgr,dims)
cv2.drawChessboardCorners(grey_imgr,dims,cornersr,0)
ret, cornersl =cv2.findChessboardCorners(grey_imgl,dims)
cv2.drawChessboardCorners(grey_imgl,dims,cornersl,0)
cv2.imshow("chessboard", grey_imgr)
cv2.imshow("chessboard1", grey_imgl)

objPoints = np.zeros((hor*ver,3), np.float32)
objPoints[:,:2] = np.mgrid[0:hor,0:ver].T.reshape(-1,2)

if cv.WaitKey(-1) == 32:

    imagePoints1.append(cornersl)
    imagePoints2.append(cornersr)
    print len(imagePoints1)
    objectPoints.append(objPoints)
    cv2.imwrite("./test_images/img_r"+str(i)+".jpg",imgr)
    cv2.imwrite("./test_images/img_l"+str(i)+".jpg",imgl)
    i = i+1;


    if cv2.waitKey(10) == 27:
        break

objectPoints = [np.asarray(x) for x in objectPoints] imagePoints1 = [np.asarray(x) for x in imagePoints1] imagePoints2 = [np.asarray(x) for x in imagePoints2]

if( len(imagePoints1[0])== len(imagePoints2[0]) == len(objectPoints[0]) == len(objectPoints)== len(imagePoints2) == len(imagePoints1) ) : print len(imagePoints1[0])

cv2.stereoCalibrate(objectPoints[0], imagePoints1[0], imagePoints2[0], (imgr), cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2)

cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240))
print R

cv.StereoRectify(cameraMatrix1, cameraMatrix2, distCoeffs1, distCoeffs2,(imgr.width,imgr.height), R, T, R1, R2, P1, P2, Q, CV_CALIB_ZERO_DISPARITY, -1, (0, 0))
print  Q
np.savetxt('Q_mat.txt',Q)

and the error I get is :

Traceback (most recent call last): File "depth_estimation.py", line 82, in <module> cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240)) ValueError: too many values to unpack

I am giving an array of objectpoints each of which in turn is an array of points.

Any help in this issue will be appreciated. Thanks a lot.

StereoCalib in python. camera Calibration in opencv (python stereo camera). Error:too many value to unpack

Hi, I am trying the stereo calibration in opencv using python. I am using python version 2.7.1 and openCV version 2.4.2 When i run the code, I get an error saying too many values to unpack. Below is my code:

objpts=[] objPoints = [] pointCounts = hor*ver R = [8] T = [8] E=[] F=[] R1 = [] R2 = [] P1=[] P2 =[] objectPoints = [] imgPoints1 = [] imgPoints2 = [] imagePoints2 = [] imagePoints1 = []

while ((len(imagePoints1) < horver) and (len(imagePoints2)< horver)): #hor x ver

ret,imgr  = webCamHndlr_r.read(0)
ret,imgl  = webCamHndlr_l.read(1)
grey_imgr = cv2.cvtColor(imgr, cv.CV_BGR2GRAY)
grey_imgl = cv2.cvtColor(imgl, cv.CV_BGR2GRAY)
ret, cornersr =cv2.findChessboardCorners(grey_imgr,dims)
cv2.drawChessboardCorners(grey_imgr,dims,cornersr,0)
ret, cornersl =cv2.findChessboardCorners(grey_imgl,dims)
cv2.drawChessboardCorners(grey_imgl,dims,cornersl,0)
cv2.imshow("chessboard", grey_imgr)
cv2.imshow("chessboard1", grey_imgl)

objPoints = np.zeros((hor*ver,3), np.float32)
objPoints[:,:2] = np.mgrid[0:hor,0:ver].T.reshape(-1,2)

if cv.WaitKey(-1) == 32:

    imagePoints1.append(cornersl)
    imagePoints2.append(cornersr)
    print len(imagePoints1)
    objectPoints.append(objPoints)
    cv2.imwrite("./test_images/img_r"+str(i)+".jpg",imgr)
    cv2.imwrite("./test_images/img_l"+str(i)+".jpg",imgl)
    i = i+1;


    if cv2.waitKey(10) == 27:
        break

objectPoints = [np.asarray(x) for x in objectPoints] imagePoints1 = [np.asarray(x) for x in imagePoints1] imagePoints2 = [np.asarray(x) for x in imagePoints2]

if( len(imagePoints1[0])== len(imagePoints2[0]) == len(objectPoints[0]) == len(objectPoints)== len(imagePoints2) == len(imagePoints1) ) : print len(imagePoints1[0])

cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240))
print R

cv.StereoRectify(cameraMatrix1, cameraMatrix2, distCoeffs1, distCoeffs2,(imgr.width,imgr.height), R, T, R1, R2, P1, P2, Q, CV_CALIB_ZERO_DISPARITY, -1, (0, 0))
print  Q
np.savetxt('Q_mat.txt',Q)

and the error I get is :

Traceback (most recent call last): File "depth_estimation.py", line 82, in <module> cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240)) ValueError: too many values to unpack

I am giving an array of objectpoints each of which in turn is an array of points.

Any help in this issue will be appreciated. Thanks a lot.

camera Calibration in opencv (python stereo camera). Error:too many value to unpack

Hi, I am trying the stereo calibration in opencv using python. I am using python version 2.7.1 and openCV version 2.4.2 When i run the code, I get an error saying too many values to unpack. Below is my code:

objpts=[]
objPoints = []
pointCounts = hor*ver
R = [8]
T = [8]
E=[]
E=[]  
F=[]
R1 = []
R2 = []
P1=[]
P2 =[]
objectPoints = []
imgPoints1 = []
imgPoints2 = []
imagePoints2 = []
imagePoints1 = []

[] while ((len(imagePoints1) < horver) hor*ver) and (len(imagePoints2)< horver)): hor*ver)): #hor x ver

ver

ret,imgr  = webCamHndlr_r.read(0)
ret,imgl  = webCamHndlr_l.read(1)
grey_imgr = cv2.cvtColor(imgr, cv.CV_BGR2GRAY)
grey_imgl = cv2.cvtColor(imgl, cv.CV_BGR2GRAY)
ret, cornersr =cv2.findChessboardCorners(grey_imgr,dims)
cv2.drawChessboardCorners(grey_imgr,dims,cornersr,0)
ret, cornersl =cv2.findChessboardCorners(grey_imgl,dims)
cv2.drawChessboardCorners(grey_imgl,dims,cornersl,0)
cv2.imshow("chessboard", grey_imgr)
cv2.imshow("chessboard1", grey_imgl)

objPoints = np.zeros((hor*ver,3), np.float32)
objPoints[:,:2] = np.mgrid[0:hor,0:ver].T.reshape(-1,2)

if cv.WaitKey(-1) == 32:

    imagePoints1.append(cornersl)
    imagePoints2.append(cornersr)
    print len(imagePoints1)
    objectPoints.append(objPoints)
    cv2.imwrite("./test_images/img_r"+str(i)+".jpg",imgr)
    cv2.imwrite("./test_images/img_l"+str(i)+".jpg",imgl)
    i = i+1;


    if cv2.waitKey(10) == 27:
        break

objectPoints = [np.asarray(x) for x in objectPoints] imagePoints1 = [np.asarray(x) for x in imagePoints1] imagePoints2 = [np.asarray(x) for x in imagePoints2]

imagePoints2] if( len(imagePoints1[0])== len(imagePoints2[0]) == len(objectPoints[0]) == len(objectPoints)== len(imagePoints2) == len(imagePoints1) ) : print len(imagePoints1[0])

len(imagePoints1[0])

 cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F =  cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240))
 print R

 cv.StereoRectify(cameraMatrix1, cameraMatrix2, distCoeffs1, distCoeffs2,(imgr.width,imgr.height), R, T, R1, R2, P1, P2, Q, CV_CALIB_ZERO_DISPARITY, -1, (0, 0))
 print  Q
 np.savetxt('Q_mat.txt',Q)

and the error I get is :

Traceback (most recent call last): File "depth_estimation.py", line 82, in <module> cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240)) ValueError: too many values to unpack

I am giving an array of objectpoints each of which in turn is an array of points.

Any help in this issue will be appreciated. Thanks a lot.

click to hide/show revision 5
retagged

updated 2013-11-01 10:57:38 -0600

berak gravatar image

camera Calibration in opencv (python stereo camera). Error:too many value to unpack

Hi, I am trying the stereo calibration in opencv using python. I am using python version 2.7.1 and openCV version 2.4.2 When i run the code, I get an error saying too many values to unpack. Below is my code:

objpts=[]
objPoints = []
pointCounts = hor*ver
R = [8]
T = [8]
E=[]  
F=[]
R1 = []
R2 = []
P1=[]
P2 =[]
objectPoints = []
imgPoints1 = []
imgPoints2 = []
imagePoints2 = []
imagePoints1 = []

while ((len(imagePoints1) < hor*ver) and (len(imagePoints2)< hor*ver)): #hor x ver

ret,imgr  = webCamHndlr_r.read(0)
ret,imgl  = webCamHndlr_l.read(1)
grey_imgr = cv2.cvtColor(imgr, cv.CV_BGR2GRAY)
grey_imgl = cv2.cvtColor(imgl, cv.CV_BGR2GRAY)
ret, cornersr =cv2.findChessboardCorners(grey_imgr,dims)
cv2.drawChessboardCorners(grey_imgr,dims,cornersr,0)
ret, cornersl =cv2.findChessboardCorners(grey_imgl,dims)
cv2.drawChessboardCorners(grey_imgl,dims,cornersl,0)
cv2.imshow("chessboard", grey_imgr)
cv2.imshow("chessboard1", grey_imgl)

objPoints = np.zeros((hor*ver,3), np.float32)
objPoints[:,:2] = np.mgrid[0:hor,0:ver].T.reshape(-1,2)

if cv.WaitKey(-1) == 32:

    imagePoints1.append(cornersl)
    imagePoints2.append(cornersr)
    print len(imagePoints1)
    objectPoints.append(objPoints)
    cv2.imwrite("./test_images/img_r"+str(i)+".jpg",imgr)
    cv2.imwrite("./test_images/img_l"+str(i)+".jpg",imgl)
    i = i+1;


    if cv2.waitKey(10) == 27:
        break

objectPoints = [np.asarray(x)
                   for x in objectPoints]
imagePoints1 = [np.asarray(x)
                for x in imagePoints1]
imagePoints2 = [np.asarray(x)
              for x in imagePoints2]


if( len(imagePoints1[0])== len(imagePoints2[0]) == len(objectPoints[0]) == len(objectPoints)==      len(imagePoints2) == len(imagePoints1) ) :
 print len(imagePoints1[0])

 cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F =          cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240))
  print R

  cv.StereoRectify(cameraMatrix1, cameraMatrix2, distCoeffs1, distCoeffs2,(imgr.width,imgr.height), R, T, R1, R2, P1, P2, Q, CV_CALIB_ZERO_DISPARITY, -1, (0, 0))
 print  Q
 np.savetxt('Q_mat.txt',Q)

and the error I get is :

Traceback (most recent call last): File "depth_estimation.py", line 82, in <module> cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, (320,240)) ValueError: too many values to unpack

I am giving an array of objectpoints each of which in turn is an array of points.

Any help in this issue will be appreciated. Thanks a lot.