【发布时间】:2016-12-05 15:09:07
【问题描述】:
我正在尝试在 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 对象。
我该如何解决这个问题?
感谢您的帮助!
【问题讨论】:
-
检查
img可以是None -
这与所有 OpenCV 错误一样具有高度描述性,但它基本上意味着它无法通过断言
size.width>0 && size.height>0。即您的图像大小可能为 0x0,或者不存在。 -
@furas - 是的,原来是
None,但为什么呢? -
之前的
img是什么?其实None后面不是img = cv2.imread(fname)吗? -
在
drawChessboardCorners之前检查img也许问题出在这条线之前的某个地方。我发现 CV 在出现问题时不会引发错误,但它会返回None- 即。无法从相机获取图像时返回None。
标签: python opencv camera camera-calibration