OpenCV网络摄像头未显示

时间:2019-11-10 15:41:51

标签: python opencv

我想制作一个使用OpenCV演示实时网络摄像头的程序,每当我按下SPACE都会拍照。

我正在使用python 3.6.4和OpenCV 4.1.1。对于一个程序来说,它是在tensorflow的帮助下拍照,并识别数据库中是否有人。这是我当前的代码:

cam = cv2.VideoCapture(0)
img_counter = 0

while True:
    ret, frame = cam.read()
    if not cam.isOpened():
        raise IOError("Cannot use webcam")
    elif cam.isOpened():
        cv2.imshow('frame', frame)
    if not ret:
        break
    if cv2.waitKey(1) == 27:
        #ESC pressed
        break
    elif cv2.waitKey(1) == 32:
        #SPACE pressed
        img_name = 'students_{}.png'.format(img_counter)
        cv2.imwrite(img_name, frame)
        print(img_name + 'was captured')
        img_counter += 1
cam.release()
cv2.destroyAllWindows()

当我运行它时,会引发此错误:

cv2。错误:OpenCV(4.1.1)C:\ projects \ opencv-python \ opencv \ modules \ highgui \ src \ window.cpp:352:错误:(-215:断言失败)size.width> 0 && size.height> 0在函数'cv :: imshow'

我现在的目标是使其显示网络摄像头,拍摄照片并将其保存在项目的文件夹中。

有人知道出什么问题了吗? 还是tensorflow是否具有不需要使用openCV的功能? 加油,加比

1 个答案:

答案 0 :(得分:0)

找到了答案:我通过USB使用外部摄像机,因此不得不将cv2.VideoCapture(0)更改为cv2.VideoCapture(1) 我不确定是否有办法直接通过张量流来做到这一点,但我正在设法弄清楚。

相关问题