2017-06-30 117 views
0

我跟着一个教程,并试图使程序退出,当我按q,但这并不奏效,无论我按哪个键,这是代码:openCV waitKey()无法得到正确的键盘输入

twi = cv2.imread('large.png') 
cv2.namedWindow('image', cv2.WINDOW_NORMAL) 
cv2.imshow('image', twi) 
key = cv2.waitKey(0) 
if key == ord('q'): 
    cv2.destroyAllWindows() 

而且我试图添加&0xFF

key = cv2.waitKey(0)&0xFF 

仍然没有工作,有什么错呢?我可以修复它吗?

=============更新============

我添加print(key)到的是,按压q时,可变key113,和ord('q')也是113要么无法理解为什么它不起作用...

=============解决=============

(似乎我忘了if是如何工作的......)

+2

“它退出不管按什么键,我按下”我们展示的代码的其余部分,它从那之后,退出显示的行?然后清楚它为什么退出,因为代码输入了if语句,看到“哦,不是'q',所以继续”,然后到达代码的结尾并退出。 – Micka

+2

@Micka Gosh此刻我一定很蠢......现在我明白了......谢谢! –

回答

4

不断呼吁cv2.waitKey(0)当它不为q键返回键的值可能工作:

while cv2.waitKey(0) != ord('q'): 
    pass 
cv2.destroyAllWindows()