簡體   English   中英

使用python flask顯示opencv圖像

[英]Displaying opencv image using python flask

我正在使用opencv和使用python flask api對圖像進行一些處理。 我想在瀏覽器中顯示圖像。

import cv2
from flask import Flask, request, make_response
import base64
import numpy as np
import urllib

app = Flask(__name__)


@app.route('/endpoint', methods=['GET'])
def process():
    image_url = request.args.get('imageurl')
    requested_url = urllib.urlopen(image_url)
    image_array = np.asarray(bytearray(requested_url.read()), dtype=np.uint8)
    img = cv2.imdecode(image_array, -1)


    # Do some processing, get output_img

    retval, buffer = cv2.imencode('.png', output_img)
    png_as_text = base64.b64encode(buffer)
    response = make_response(png_as_text)
    response.headers['Content-Type'] = 'image/png'
    return response

if __name__ == '__main__':
    app.run(debug=True)

但是,我得到空的,無效的圖像作為輸出。 我究竟做錯了什么?

如評論中所述,您需要返回圖像的字節,而不是base64字符串。

請嘗試以下方法:

retval, buffer = cv2.imencode('.png', output_img)
response = make_response(buffer.tobytes())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM