我正在使用的Python版本是MacOS Sierra上的Python 2.7.13,我也在使用OpenCV 3和Python。
while True:
frame = read_stream()
# some manipulation on `frame`
cv2.imshow("Screen", frame)
这里我正在尝试显示来自套接字流的帧。它第一次工作正常,但无论出于何种原因,下次当我试图运行它时,Dock中的Python火箭飞船图标一直在上下弹跳,窗口就不会打开。
从我正在打印的日志来看,框架正在进入并且形成良好。
这可能是什么原因?我只是想不出一个理由。
答案 0 :(得分:2)
来自文档:
注意:此函数后面应跟随waitKey函数,该函数显示指定毫秒的图像。否则,它将不显示图像。例如,waitKey(0)将无限显示窗口,直到任何按键(适用于图像显示)。 waitKey(25)将显示一个25毫秒的帧,之后显示将自动关闭。 (如果你把它放在循环中来阅读视频,它将逐帧显示视频)
据推测,添加waitKey(20)将为您提供一个漂亮的50Hz流,但您可以根据自己的需要调整该值。
编辑:正如你所说,它第一次运作良好,我可能在这里走错了路。如果是这样的话,我会删除答案,我们将查看图像窗口“屏幕”的定义......