2014-03-27 76 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