4

我想从通过 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 中)

谢谢你

4

4 回答 4

1

我在我的电脑上启动了你的代码,它工作正常。尝试手动设置相机分辨率,如果你有一个错误size.widthsize.height像这样:

cap = cv2.VideoCapture(0)
cap.set(3,1280)
cap.set(4,920)
于 2019-08-20T10:21:20.893 回答
0

尝试opencv-contrib-python通过 pip 安装:pip install opencv-contrib-python或者尝试升级它的版本:pip install opencv-python --upgrade

于 2020-06-30T13:10:53.087 回答
0

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

pip install opencv-python

(来源:cv2.VideoCapture.open() 总是返回 FALSE

于 2019-08-19T13:31:12.260 回答
0

您可以通过检查 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()
于 2022-02-08T17:15:20.743 回答