使用python从通过USB连接的相机获取实时流

时间:2019-08-19 12:30:05

标签: python image computer-vision cv2 industrial

嘿,我正在尝试从通过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中)

谢谢

3 个答案:

答案 0 :(得分:0)

您可能安装了错误版本的不支持视频的OpenCV。卸载所有opencv,然后运行:

pip install opencv-python

(来源:cv2.VideoCapture.open() always returns FALSE

答案 1 :(得分:0)

我在PC上启动了您的代码,它可以正常工作。如果size.widthsize.height出错,请尝试手动设置相机分辨率,如下所示:

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

答案 2 :(得分:0)

尝试通过点子Route::get('/test/abc', 'Groupcontroller@index');安装opencv-contrib-python,或者尝试升级版本:pip install opencv-contrib-python