使用Ajax将图像从用户发送到Flask进行分类

时间:2019-07-03 08:49:34

标签: jquery ajax flask deployment

我想通过HTML输入标签从用户那里获取图像作为输入,并希望使用Ajax将图像发送到Flask,以便在经过一些预处理步骤后可以使用保存的Keras模型对该图像进行分类,然后将预测的类返回给Ajax在屏幕上显示它。 但是我面临从Ajax获取Flask中的图像进行进一步处理的问题。

这是我的HTML和Ajax

<form id="main_form">
  <input type="file" name="imgtoupload", id="imgtoupload">
  <button type="submit" name="submit" id="submit">Submit</button>
</form>
<h2>Class Prediction is: <span id="result"></span></h2>
$(document).ready(function(){
    $("#main_form").on('submit', function(event){

        event.preventDefault();

        var send_data = new FormData(this);

        $.ajax({
            type:'POST',
            url: '/predict',
            data: send_data,
            success:function(data){

                $("#result").text(data.name);

            }
        });
    });
});

@app.route('/predict',methods=['POST'])
def predict():

我想将来自Ajax的输入图像用作python中此预测函数的数组,以进行进一步处理。

1 个答案:

答案 0 :(得分:0)

您可以像这样在Flask中导入图像:

if (double distance = std::sqrt(a * a + b * b); distance < 0.5){
    std::cerr << distance << " is too small\n";
}

之后,您可以在flask应用程序中保存并处理文件

这是我的HTML

from flask import Flask, request
@app.route('/predict', methods=['POST'])
def predict(): 
    file = request.files['file']