簡體   English   中英

如何訪問 Python 中的網絡攝像頭?

[英]How do I access my webcam in Python?

我想從 Python 訪問我的網絡攝像頭。

我嘗試使用VideoCapture擴展( tutorial ),但這對我來說效果不是很好,我不得不解決一些問題,例如分辨率 >320x230 時它有點慢,有時它會無緣無故地返回None

有沒有更好的方法從 Python 訪問我的網絡攝像頭?

OpenCV 支持從網絡攝像頭獲取數據,默認情況下帶有 Python 包裝器,您還需要安裝numpy才能使 OpenCV Python 擴展名(稱為cv2 )工作。 截至 2019 年,您可以使用 pip 安裝這兩個庫: pip install numpy pip install opencv-python

有關將 OpenCV 與 Python 結合使用的更多信息

使用 opencv 和 python 從 Displaying webcam feed復制的示例:

import cv2

cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)

if vc.isOpened(): # try to get the first frame
    rval, frame = vc.read()
else:
    rval = False

while rval:
    cv2.imshow("preview", frame)
    rval, frame = vc.read()
    key = cv2.waitKey(20)
    if key == 27: # exit on ESC
        break

vc.release()
cv2.destroyWindow("preview")

我想從 Python 訪問我的網絡攝像頭。

我嘗試使用VideoCapture擴展(教程),但這對我來說效果不佳,我不得不解決一些問題,例如分辨率 >320x230 時有點慢,有時它會無緣無故地返回None

有沒有更好的方法可以從 Python 訪問我的網絡攝像頭?

gstreamer 可以處理網絡攝像頭輸入。 如果我沒記錯的話,有python個綁定!

import cv2 as cv

capture = cv.VideoCapture(0)

while True:
    isTrue,frame = capture.read()
    cv.imshow('Video',frame)
    if cv.waitKey(20) & 0xFF==ord('d'):
        break

capture.release()
cv.destroyAllWindows()

0 <-- 指攝像頭,替換為文件路徑讀取視頻文件

cv.waitKey(20) & 0xFF==ord('d') <-- 按下鍵時銷毀窗口

我唯一使用的是VideoCapture,你已經提到過你不喜歡它(盡管我沒有遇到任何問題;你遇到了什么錯誤?)

我在過去或現在都找不到任何替代方案,所以你可能會被困在使用VideoCapture,或者找到一個不錯的C庫並為它編寫一個Python包裝器(這可能比你願意放入它的工作更多) )。

暫無
暫無

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

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