2014-03-27 320 views
0

我有64bit的ubuntu系统。我在idel中运行代码。 我正面临opencv挂起问题,图像显示,但我必须强制杀死图像窗口。因此,下文称此主题 - Using other keys for the waitKey() function of opencvopencv cv2.destroyAllWindows()不响应

import cv2 
img = cv2.imread('sof.jpg') # load a dummy image 
while(1): 
    cv2.imshow('img',img) 
    k = cv2.waitKey(3000) & 0xff 
    if k==32: # SpaceBar key to stop 
     break 
    elif k==-1: # normally -1 returned,so don't print it 
     continue 
    else: 
     print k # else print its value 

不过它不工作形象挂起,我必须手动关闭它。

+0

您的代码适合我。你可以从命令行shell而不是从空闲中尝试它吗?很久以前,我有空闲和GUI(我认为它是tkinter)的问题。 – KobeJohn

回答

0

尝试:

k = cv2.waitKey(3000) & 0xff 
+0

你能解释一下吗? –

+0

掩盖了'ascii'部分从任何你到达那里(scankeys?),所以你可以检查k == 27或类似的 – berak

+0

它不工作。我不得不再次重启闲置的外壳来杀死镜像 – sunita

0

添加cv2.waitkey(0)和cv2.destroyallwindows(),但如果你已经使用Python的笔记本电脑则是基于Unix系统的一个问题来运行的OpenCV的程序。它会导致系统冻结,因此每次尝试执行代码时都需要重新启动内核。

我有这将防止冻结您的系统

步骤的另一种方法:

  1. - 复制从蟒蛇笔记本电脑的代码,并创造新的filename.py并粘贴
    • 开放terminal
    • cd path/to/file
    • source activate VirtualEnvironment
    • 蟒filename.py

这将直接从终端运行代码。 希望这可以帮助你。 示例链接:https://youtu.be/8O-FW4Wm10s