簡體   English   中英

OpenCV網絡攝像頭捕獲

[英]OpenCV webcam capture

恐怕我碰到的東西超出了我的新手能力范圍。 問題的快速摘要:我正在嘗試使用OpenCV python模塊從網絡攝像頭捕獲實驗視頻(使用OpenSesame)期間的實時視頻流。 我可以使其正常工作,但是我的問題是該代碼會彈出一個新窗口,以顯示正在錄制的實時流。 我如何更改此代碼以不顯示實時窗口,但仍然可以按“ q”關閉實時流?

import numpy as np
import cv2

subject = str(self.get('subject_nr'))
cap = cv2.VideoCapture(0)
w=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH ))
h=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT ))

#Define the codec and create VideoWriter object
#fourcc = cv2.VideoWriter_fourcc(*'DIVX')
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('path\to\output'+ subject + '.avi', -1, 20.0, (w,h))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:

        out.write(frame)

        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

#Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

cv2.waitKey()從highgui窗口捕獲擊鍵。 如果您從不顯示窗口,則無法使用waitKey捕獲擊鍵。 您將需要一些可以捕獲來自終端的擊鍵的東西。

對於linux,您可以使用termiosfcntl模塊來實現。 這是Python文檔中的示例。 https://docs.python.org/2/faq/library.html#how-do-i-get-a-single-keypress-at-a-time

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM