2015-10-10 72 views
0

所以我一直試圖使用位於here的代碼來拍攝和錄製一個樹莓派項目的Python視頻。我想使用python,因爲我正在與之交互的所有其他硬件都是用Python編寫的。使用Python錄製視頻

我真的不知道如何停止這個腳本。對於我來說,輸入任何字符組合的數量都不會停止。有什麼建議?

所有建議的更正(當輸入鍵入到屏幕上顯示攝像機圖像作品)之後

最終代碼:

import numpy as np 
import cv2 

cap = cv2.VideoCapture(0) 

while(True): 
    #capture frame-by frame 
    ret,frame = cap.read() 

    #operations on the frame 
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) 

    #display 
    cv2.imshow('frame', gray) 
    key = cv2.waitKey(1000) & 0xFF 
    print key 
    if key == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 

回答

0

試試這個:

key = cv2.waitKey(1000) & 0xFF 

見 「警告」 here

+0

這仍然不適合我。我正在使用2013年末的Macbook專業版之一。所以64位警告適用於我。順便說一下,當我輸入退出鍵時,屏幕上出現「^ [」符號。 –

+0

當圖像是活動窗口時,請嘗試按下按鍵,而不是終端。 – Jason

+0

Ohhhhh ......哇......這就是答案。我的打字全部發生在終端內部,而不是顯示圖片的實際顯示窗口。你在顯示窗口打字的建議是正確的,對我來說更合理。謝謝。 –

0

如果您按下一切,相機不停止捕獲,它只是意味着它從未滿足if聲明中的條件,因此它不會在循環中出現break

你可以做的是分配一個特定的鍵來停止捕獲。如果您查看this問題中的代碼,您可以看到Mike已將ESCAPE鍵(ASCII碼27)指定爲使其離開循環的鍵。

+0

我剛剛嘗試過,它仍然沒有停止。我在Mac上通過終端運行它,這可能與此有關嗎? –

+0

@ K.Shores嗯......如果試圖在分配鍵值後打印鍵值,這應該告訴你鍵盤按鍵是否被檢測到。 –

+0

它不斷打印-1。輸入值後,它不會打印該值。 –