我正在尝试在Anaconda的Python 2.7中使用OpenCV 2.4.11校准SJ4000摄像机。
但是,我无法运行此处提供的脚本:http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_calib3d/py_calibration/py_calibration.html#setup
我什至用samples/cpp/
中提供的示例图像(图像left01.jpg to left14.jpg
中)进行测试。它能够检测图像中的棋盘,但是一旦碰到这条线:
cv2.imshow('img',img)
它抛出一个错误:
error: ..\..\..\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow
编辑1:在进一步调试后,我发现
img = cv2.drawChessboardCorners(img, (7,6), corners2,ret)
导致None对象。我该如何解决?
谢谢你的帮助!
最佳答案
万岁!经过进一步调试,所有问题都解决了。我怀疑这是版本问题。
我变了
corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
imgpoints.append(corners2)
# Draw and display the corners
img1 = cv2.drawChessboardCorners(img, (7,6), corners2,ret)
至
cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
# Draw and display the corners
cv2.drawChessboardCorners(img, (7,6), corners,ret)
一切正常!
关于python - Python OpenCV相机校准cv::imshow错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40977325/