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

标签 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 重新启动 我正在使用带有 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/

相关文章:

python - 如何通过在框架的指定区域中关联汽车质心来保持特定车道中的汽车数量

python - Django SELECT 语句,排序依据

python - Django 模板不加载

linux - 如何削减所有的制表符和空格 Linux shell?

linux - 用于列出未格式化磁盘(分区)的 Shell 脚本

python - 在黑白图片中的特定颜色周围添加边框

python - 正则表达式匹配相同分隔符之间的多个结果

python - 遇到 Tkinter 透明度问题

linux - 提供windows可用内核

python - 如何将 cv2 矩形边界框合并为多边形? (不是通过重叠/阈值)