我写过简单的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 重新启动 我正在使用带有 python 2.7.9 的 Respberry PI 和 Opencv 2.4.9.1
当我删除 cv2.imshow() 行时,代码可以正常工作。并打印 0 到 9 的所有数字。这意味着 cam 已连接并且 opencv 甚至从相机读取图像,但问题在于显示图像
有没有人以前发现过类似的问题或者有什么解决办法?请分享谢谢
最佳答案
您的问题不是 cv2.imshow()
。你的问题是 cam = cv2.VideoCapture(0).
opencv 在 raspberry 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)
有时它会给你带来错误
关于python - cv2.imshow() 函数重新启动 python shell 而不显示任何错误程序停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109584/