簡體   English   中英

從使用 python 通過 usb 連接的攝像機獲取實時 Stream

[英]Get Live Stream from a Camera connected via usb using python

我想從通過 USB 與我的計算機連接的相機中獲取實時圖像。

我正在使用帶有 usb 端口的工業相機。

在設備管理器中,相機會顯示其名稱和 ID,因此我認為它已連接到 PC。

我運行了一個“findcam”程序,但它沒有顯示任何相機的存在

import cv2

cap = cv2.VideoCapture(0)


while True:
    ret, frame = cap.read()
    cv2.imshow('Live Video', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

我嘗試的給定代碼正在我的筆記本電腦上為網絡攝像頭運行,但是當我在帶有外部攝像頭的 PC 上運行相同的代碼時。

它不斷顯示錯誤。

錯誤:

Traceback (most recent call last):
  
File "C:/Users/Admin/PycharmProjects/industrialcamera/ICvideocapture.py", line 11, in <module>

cv2.imshow('Live Video', frame)

cv2.error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

我嘗試更改 Index -1, 0, 1 但錯誤是恆定的

請幫助查找,天氣是我的 PC 問題或相機問題,還是他們的任何其他流式傳輸方式(在 python 中)

謝謝你

我在我的電腦上啟動了你的代碼,它運行良好。 嘗試手動設置相機分辨率,如果size.widthsize.height有錯誤,如下所示:

cap = cv2.VideoCapture(0)
cap.set(3,1280)
cap.set(4,920)

您可能安裝了不支持視頻的錯誤版本的 OpenCV。 卸載 opencv 的所有內容,然后運行:

pip install opencv-python

(來源: cv2.VideoCapture.open() 總是返回 FALSE

嘗試通過 pip 安裝opencv-contrib-pythonpip install opencv-contrib-python或者嘗試升級它的版本: pip install opencv-python --upgrade

您可以通過檢查 ret 值進行調試:

import cv2
cap = cv2.VideoCapture(0)
counter = 0
while True:.       
    ret, frame = cap.read()
    if ret :
        cv2.imshow('Live Video', frame)
        print(f" frame {counter} : ok ")
    if not ret :
        print(f" frame {counter} : ...")
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

暫無
暫無

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

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