在Google Colab上通过网络摄像头从视频中实时捕获帧

时间:2019-05-20 10:57:32

标签: frame webcam google-colaboratory

我使用在CIFAR-10数据集上训练过的keras创建了一个非常基本的图像分类模型。我扩展了其基本功能,以预测用户提供的数据。现在,我想转到实时分类。 这要求我将网络摄像头与笔记本集成在一起,并使用抓帧技术对图像进行分类。 我引用了执行此操作的代码。但是代码不断抛出此错误,我不确定应该怎么做

import numpy as np
import cv2
import random
from google.colab.patches import cv2_imshow


cap = cv2.VideoCapture(0)
i=0
while(True):
    ret, frame = cap.read()
    print(frame)
    i+=1
    cv2.imwrite('database/{index}.png'.format(index=i),frame)
    cv2_imshow(frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

错误:

  

AttributeError跟踪(最近的调用)   最后)在()        15        16   ---> 17 cv2_imshow(帧)        18如果cv2.waitKey(1)和0xFF == ord('q'):        19休息

     

/usr/local/lib/python3.6/dist-packages/google/colab/patches/ init .py   在cv2_imshow(a)中        20张图片。        21“”“   ---> 22 a = a.clip(0,255).astype('uint8')        23#cv2将颜色存储为BGR;转换为RGB        24,如果a.ndim == 3:

     

AttributeError:'NoneType'对象没有属性'clip'

1 个答案:

答案 0 :(得分:0)

Google colab在服务器上运行,因此要通过google colab访问网络摄像头,您必须使用JavaScript函数,该函数在文件中给出: https://colab.research.google.com/notebooks/snippets/advanced_outputs.ipynb