如何使用OpenCV在Google Colab上播放视频?

时间:2019-10-18 08:49:36

标签: python opencv computer-vision google-colaboratory

我正在使用Google Colab上的Mask RCNN进行与对象检测有关的项目。我有一个视频上传到我的合作实验室。我想在运行时使用openCV将其显示为视频。我想做cv2.VideoCapture('FILE_NAME')在本地计算机上的操作。有什么办法吗?

4 个答案:

答案 0 :(得分:0)

这是google colab上的命令:   ret, frame = input_video.read() 希望你能帮到你

答案 1 :(得分:0)

您可以尝试:

from google.colab.patches import cv2_imshow
cv2_imshow(img)

答案 2 :(得分:0)

找到了我的方法。但这很慢。

from IPython.display import clear_output, Image
import base64

def arrayShow (imageArray):
    ret, png = cv2.imencode('.png', imageArray)
    encoded = base64.b64encode(png)
    return Image(data=encoded.decode('ascii'))

video_capture = cv2.VideoCapture(VIDEO_SOURCE)
while video_capture.isOpened():
    success, frame = video_capture.read()

    clear_output(wait=True)
    img = arrayShow(frame)
    display(img)

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

该代码无法正确播放视频。它只是显示新帧,并从输出中删除旧帧。

答案 3 :(得分:0)

我最近遇到了同样的问题。尽管我不相信有一种方法可以像在本地一样显示“实时”视频,但您可以做的是一次渲染一帧并将其显示在笔记本的输出中。

与OP的answer不同,它不会对图像进行编码,也不会从控制台清除前一帧。

from google.colab.patches import cv2_imshow
import cv2

# Download sample video
!curl -o sample.mp4 https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4

cap = cv2.VideoCapture('sample.mp4')
while cap.isOpened():
    ret, image = cap.read()

    if not ret:
      break

    cv2_imshow(image) # Note cv2_imshow, not cv2.imshow

    cv2.waitKey(1) & 0xff

cv2.destroyAllWindows()
cap.release()

notebook可能会有所帮助,或者the code above as a notebook