我的 python 程序末尾有这两条语句:
cv2.waitKey(0)
cv2.destroyAllWindows()
不知何故,cv2.waitKey(0) 不起作用,对键盘输入 0 没有响应,要结束我的程序,我必须关闭 Mac 终端窗口。
我尝试了以下方法来解决该问题
if cv2.waitKey(0) & 0xFF == ord('q'):
break
然后我收到了这条消息: 语法错误:“中断”外部循环
不知道出了什么问题。我使用的是 Macbook Air,Mac OS X 10.11.6 请帮忙。
谢谢
最佳答案
需要明确的是,waitKey(0) 并不意味着键盘输入“0”将终止程序。这意味着您的程序将无限期地等待您按下某个键,然后再执行下一行代码。
waitKey(30) 表示程序将等待 30 毫秒,让您按下某个键,然后继续执行。
至于'break'外部循环
错误,从根本上来说,您在'for'或'while'循环内部使用'break'关键字只是为了停止循环。因此,如果代码中涉及循环,您需要确保调用“break”,如下所示:
while True:
#do your thing
if cv2.waitKey(0) & 0xFF == ord('q'):
break #this loop will break if you press 'q', else it'll wait
假设您的程序中没有循环,然后将“break”语句替换为“return”语句
关于macos - cv2.waitKey(0) 不起作用,OpenCV 3.1.0,Mac OS X 10.11.6,Python 2.7.12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40251980/