python - Python OpenCV相机校准cv::imshow错误

标签 python opencv camera camera-calibration

我正在尝试在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/

相关文章:

Python:沿着边界从图像中裁剪出区域

python - 数据框中两列的 Pandas diff() 功能

opencv - 在OpenCV中-如何将CvPoint转换为CvSeq?

python - 为不同视频的视频帧创建新目录时出错

java - 从 arm linux 上的 CMOS 相机读取流并将其转换为视频/照片

python - 无法在 sklearn 中找到 Birch 模块

python : Match a dictionary value with another dictionary key

c++ - 为什么用Visual Studio 2017编译openCV3.2会出错?

c# - 相机行为

java - Android 相机捕获产生绿色和 block 状视频