gpt4 book ai didi

python - 在 Flask 中处理用户上传的图片

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:47 26 4
gpt4 key购买 nike

我构建了一个模型,可以接收图像,在像素级别读取图像,然后确定图像中包含猫还是狗。出于教育目的,我现在正尝试将其放入 Flask 应用程序(以前从未使用过 Flask)。到目前为止我的工作:用户上传图像,图像由 Flask 保存到磁盘,图像被处理并发送到模型,模型预测,我从模板生成输出页面。现在我想显示用户上传的图片,但我遇到了问题。适用的代码在这里:

import flask
from flask import request, render_template
import numpy as np
import pandas as pd
from copy import deepcopy
from werkzeug import secure_filename
from PIL import Image
import catdog

# Initialize the app
app = flask.Flask(__name__)

@app.route("/")
def viz_page():
with open("frontend.html", 'r') as viz_file:
return viz_file.read()

@app.route("/uploader", methods=["GET","POST"])
def get_image():
if request.method == 'POST':
f = request.files['file']
sfname = 'images/'+str(secure_filename(f.filename))
f.save(sfname)

clf = catdog.classifier()
#clf.save_image(f.filename)

return render_template('result.html', pred = clf.predict(sfname), imgpath = sfname)


#--------- RUN WEB APP SERVER ------------#

# Start the app server on port 80
# (The default website port)
app.run(host='0.0.0.0', port=5000, debug=True)

和模板:

  <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dog vs Cat</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
</head>
<body>
<h3> Prediction: {{ pred }} </h3>
<br><br>
<img src={{imgpath}}>
<script>

</script>

</body>
</html>

我要退出的是“预测:yada yada”部分,它运行良好。但是,图像总是返回空白。当我查看它时,它在 http://localhost:5000/images/cat.4.jpg 中查找,我知道这意味着它没有在正确的位置查找,但我不确定如何动态地查找抓取我想要的图像。我在这里找到了这个指南:How to pass uploaded image to template.html in Flask我觉得这应该足以帮助我,但我只是没有得到试图让我看到的答案。将不胜感激。

额外的问题:是否有可能永远不保存图像而只是不断地将其保存在 Flask 的内存中?理想情况下,我永远不会保存图像,我只是处理它,然后在做出预测后扔掉它。

最佳答案

图片应该保存在/static文件夹,所以把保存路径改为static/images即可

sfname = 'static/images/'+str(secure_filename(f.filename))

这样 HTML 模板就准备好了,它看起来像这样

<img src="/static/images/your_image_here.jpg">

关于python - 在 Flask 中处理用户上传的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com