我编写了简单的python代码
import cv2
cam = cv2.VideoCapture(0)
try:
for i in range(10):
print i
_,f=cam.read()
cv2.imshow('f',f)
k=cv2.waitKey(1)
catch:
print 'error'
此代码仅显示0并退出进一步的python shell重新启动 我正在使用Respberry PI和python 2.7.9 和Opencv 2.4.9.1
当我删除cv2.imshow()行时,代码工作正常。它会打印0到9的所有数字。这意味着凸轮已连接并且甚至可以从相机读取图像,但问题在于显示图像
之前是否有人发现类似问题或有任何解决方案?请分享谢谢
答案 0 :(得分:1)
您的问题不是cv2.imshow()
。你的问题是cam = cv2.VideoCapture(0).
opencv在覆盆子pi中找到相机有问题!
imshow()
确实有效,而且很少会给你带来问题。说实话,我很惊讶你的try / catch工作,这不是你在python中编写try / catch的方式,正确的方法是:
try:
peace of the code that might throw an exception
except Exception, e:
print e
注意:在我更改try / catch之前,您的代码对我不起作用!
现在回到问题,因为图像无法显示它会告诉你你的图像长度/宽度是0。 解决这个问题有点长,但有人已经为here
创建了一个工作代码注意:您需要使用picamera
来使用raspbery pi相机!
opencv不会自豪地对着相机进行操作,其他包装也是如此。
注意:在rasbery pi中你需要在打印之前添加(),例如print (i)
有时它会给你一个错误