首页 > 解决方案 > 外部摄像头未捕获图像,为帧变量返回 nonetype

问题描述

我正在尝试使用 opencv 在目录中实时存储某些帧。但是,我无法让它使用我的外部网络摄像头拍照。我的内置网络摄像头适用于该程序,但我的外置摄像头不能。

我试过用这个cap.open()方法,但是还是不行。


import cv2

cap = cv2.VideoCapture(0)#0 is internal cam : 1 is external webcam

if cap.isOpened() == True:
    print("camera works")
    pass
else:
    cap.open(1)
    print('opened camera')

ret, frame = cap.read()
cv2.imshow("imshow",frame)
cv2.waitKey(1)

我希望frame它是一个可以处理的值,但是当我开始调试时,我发现它是一个None变量。为什么会发生这种情况,我该如何解决?

标签: pythonopencv

解决方案


cap = cv2.VideoCapture(0) 通常意味着打开内部摄像头

cap = cv2.VideoCapture(1) 测量打开第二个加载的摄像头,通常是外部网络摄像头

import numpy as np import cv2

cap = cv2.VideoCapture(1) 
while(1):
    ret, img = cap.read()
    cv2.imshow('img',img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release() 
cv2.destroyAllWindows()

推荐阅读