由于我多次听到因写入SD卡而引起的问题,我想直接使用像对象这样的文件在烧瓶应用程序(在raspberry pi上运行)上提供我的图像。在我的应用程序中,我每隔几秒钟处理一次图像,需要使用烧瓶在Web界面上显示它们。
我实际上正在尝试这样的事情:
@app.route('/image')
def image():
img = cv2.imread('raw.png')
img_str = cv.imencode('.png', img)[1].tostring()
f = io.BytesIO()
f.write(img_str)
f.seek(0)
#return Response(bytes, mimetype='image/jpeg')
return send_file(f, mimetype='image/png')
我的目标是每秒使用ajax从Web界面调用此函数几次,以更新图像。也许还可以使用长期民意调查代替固定频率。现在我想在不将其写入SD卡的情况下提供图像。代码示例返回“图像无法显示,因为它包含错误..”
我是新手,也是opencv,所以任何建议都会有所帮助。另请告诉我是否有一种简单或更好的方法可以使用内置流对象,socketio等来经常更新图像。
由于
答案 0 :(得分:0)
您应该尝试这种方式:
@app.route('/image')
def image():
img = cv2.imread('raw.png')
data = cv.imencode('.png', img)[1].tobytes()
return Response(b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + data + b'\r\n\r\n', mimetype='multipart/x-mixed-replace; boundary=frame'