cv2.imshow()函数重启python shell而不显示任何错误程序停止

时间:2016-05-09 07:02:50

标签: python shell opencv

我编写了简单的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的所有数字。这意味着凸轮已连接并且甚至可以从相机读取图像,但问题在于显示图像

之前是否有人发现类似问题或有任何解决方案?请分享谢谢

1 个答案:

答案 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)       有时它会给你一个错误