返回

python-将OpenCV视频捕获流传输到flask服务器

发布时间:2022-06-08 17:41:24 202
# node.js

问候,我在一个无人机项目中工作,我想从我的无人机中提取流,在我的笔记本电脑上处理它,并基于处理发出命令,我使用的是同样的flask框架。

目前,作为第一步,我想从drone获取流并将其放到flask服务器上,然后在flask网站上查看,而不是现在进行处理部分。

我将视频压缩成jpg并使用base 64对其进行编码,然后最终使用json.dumps()然后requests.put()

在flask服务器程序的服务器端,我使用request.json使用json.loads(),但我不清楚下一步该怎么办。

我对flask、web开发和有限的经验和知识制作程序没有足够的经验,但它会回来error 405在烧瓶程序上。

以下是程序

烧瓶服务器

import base64

import json

from flask import Flask, make_response, render_template, request

app = Flask(__name__)

def getFrames(img):

    pass

@app.route('/video', methods=['POST', 'GET'])

def video():

    if request.method == 'PUT':

        load = json.loads(request.json)

        imdata = base64.b64decode(load['image'])

        respose = make_response(imdata.tobytes())

        return respose

@app.route('/')

def index():

    return render_template('index.html')

@app.route('/cmd')

def cmd():

    pass

if __name__ == "__main__":

    app.run(debug=True)

索引.html

<!DOCTYPE html>

<html>

<head>

    <title>Video Stream</title>

</head>

<body>

    <h1>

        Live Stream

    </h1>

    <div>

        <img src="{{ url_for('video') }}" width="50%">

    </div>

</body>

</html>

无人机计划

import base64

import json

import requests

import cv2

cap = cv2.VideoCapture(1)

ip = ''                   #url returned by the flask program

while True:

    success, img = cap.read()

    cv2.imshow("OUTPUT", img)

    _, imdata = cv2.imencode('.JPG', img)

    jStr = json.dumps({"image": base64.b64encode(imdata).decode('ascii')})

    requests.put(url=(ip + '/video'), data=jStr)

    if cv2.waitKey(1) == 27:

        break

任何帮助都非常感谢!!!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
下一篇
程序集-是否在MIPS中写入? 2022-06-08 15:56:27