cv2_imshow()无法在Google Colab中呈现视频文件

时间:2019-11-19 00:28:38

标签: python opencv opencv3.0 google-colaboratory

我正在尝试将一些OpenCV图像分析(使用Python3)从本地Jupyter笔记本迁移到Google Colab。

我原来的Jupyter Notebook代码可以正常工作,并且视频可以正常渲染(在其自己的Window中)(请参阅下面的代码子集)。此代码使用cv2.imshow()渲染视频。在Colab中使用相同的“ cv2.imshow()”代码时,视频无法渲染。

基于this suggestion-我在Colab中切换为使用cv2_imshow()。但是,这种更改导致垂直序列为470张图像(每帧1张),而不是正在播放的视频。

这里是link to the colab file

有人可以概述如何在Colab中渲染由OpenCV处理的视频吗?

import React, { Component } from 'react';

class ValidationComponent extends Component
{
    render() 
    {
        return <p>{this.props.wordlength>=5?'Text long enough':'Text too short'}</p>
    }
}

export default ValidationComponent;

1 个答案:

答案 0 :(得分:1)

方法cv2.imshow()显示图像。因此,您要做的基本上是逐帧读取整个视频并显示该帧。要观看整个视频,您需要将这些帧写回到VideoWriter对象中。

因此,请在VideoWriter循环之前创建一个while对象:

res=(360,240) #resulotion
fourcc = cv2.VideoWriter_fourcc(*'MP4V') #codec
out = cv2.VideoWriter('video.mp4', fourcc, 20.0, res)

使用write()方法处理后写帧

out.write(frame)

最后,以与VideoCapture

相同的方式释放对象
out.release()

现在,将以您的名字 video.mp4

录制视频。