如何使用Python从OpenCV中的字符串表示形式加载视频?

时间:2019-05-21 13:23:57

标签: python rest opencv

我正在编写Rest-API函数,该函数应该从发布请求中获取视频,使用OpenCV处理视频并返回文本响应。我被困在从字符串表示形式读取视频的过程中。

我查看了描述如何在OpenCV中读取视频的文档,所有这些文档都是从路径或从网络摄像头读取的。例如,来自imutils的cv2.VideoCapture或FileVideoStream都使用文件路径加载视频。但是,我想避免多余的IO操作,也不想首先将视频写入文件。

我项目中的相关部分:

    @app.route('/processvideo', methods = ['POST'])
        def process_video():
        # read as string
        fStr = request.files['file'].read() # file is read as string from the request

        npimg = np.fromstring(fStr, np.uint8) # string data is converted to numpy array.

        # image = cv2.imdecode(npimg, cv2.IMREAD_COLOR) # this functions doesn't work, because it only takes image, not video.

        return jsonify( { 'output': 'test' } )

我正在cli中发送请求以进行测试,如下所示:

    curl -F 'file=@demo.mp4' http://localhost:5000/processvideo

我想逐帧处理传入的视频,因此我需要将这些帧作为图像。从现在开始,谢谢您的帮助。

0 个答案:

没有答案