如何使用带python的OpenCV访问USB摄像头?

2024-05-06 13:11:26 发布

您现在位置:Python中文网/ 问答频道 /正文

使用带有python的OpenCV访问USB摄像头时遇到问题

我收到以下错误消息,我理解这意味着没有捕获帧

error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\highgui\src\window.cpp:356: error: (-215) size.width>0 && size.height>0 in function cv::imshow

我的相机如下:https://www.gophotonics.com/products/scientific-industrial-cameras/point-grey-research-inc/45-571-cm3-u3-50s5m-cs

简单代码如下。有什么想法吗?一些帮助我会很感激的

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
while(True):
    ret, frame = cap.read()

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

cap.release()
cv2.destroyAllWindows()

Tags: import消息size错误errorcv2frameopencv
1条回答
网友
1楼 · 发布于 2024-05-06 13:11:26

大多数情况下camera index对于配备集成摄像头的计算机来说是默认的0,但是如果您正在插入USB摄像头,它的camera index可能是12,您可以同时尝试这两种

但是,如果您想获得所有可用的camera index,可以使用以下简单脚本来查找:

import cv2
import numpy as np

all_camera_idx_available = []

for camera_idx in range(10):
    cap = cv2.VideoCapture(camera_idx)
    if cap.isOpened():
        print(f'Camera index available: {camera_idx}')
        all_camera_idx_available.append(camera_idx)
        cap.release()

结果将是一个类似list的:[0,1,2,...],所有摄影机索引都可用

但是,如果您使用的是USB摄像头,您必须记住某些OpenCV函数无法工作,请查看this

相关问题 更多 >