外部相机未捕获图像,为frame变量返回nonetype

时间:2019-06-03 22:39:48

标签: python opencv

我正在尝试使用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变量。为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

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()