2024-11-27 23:22:08 +08:00

96 lines
3.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'''
Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
Date: 2023-03-29 20:22:34
LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
LastEditTime: 2023-04-05 15:46:07
FilePath: /luyuetong-data/yolox-pytorch/flask_on.py
Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://githaub.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
'''
from flask import Flask, make_response, request, jsonify,send_file
from flask_cors import CORS
from werkzeug.utils import secure_filename
from PIL import Image
from yolo import YOLO
from predict import PREDICT
import os
import quanju
import requests
import urllib.request
from io import BytesIO
import base64
import io
app = Flask(__name__)
CORS(app)
@app.route('/uploads', methods=['GET','POST'])
def uploads():
global filename
# 检查是否收到了POST请求
if request.method == 'POST':
# 检查是否收到了文件
if 'file' not in request.files:
return jsonify({'error': 'No file uploaded.'}), 400
file = request.files['file']
filename = file.read() #此时转换出来的是二进制内容
file_path = filename.decode("utf-8")
print(file_path)
print(f"file:{file}")
# 将blob转换为base64编码的字符串
image_data = base64.b64encode(file.read()).decode('utf-8')
# 将base64编码的字符串解码为图片数据
img = Image.open(io.BytesIO(base64.b64decode(image_data)))
Image.open(img)
# 将bytes类型传递给预测函数进行处理
result = PREDICT(img)
#
# print(file)
# filename = secure_filename(file.filename)
# file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# result = PREDICT()
#检查是否选择了文件
if file.filename == '':
return jsonify({'error': 'No file selected.'}), 400
# # 检查文件类型是否合法
# # if file and allowed_file(file.filename):
# filename = secure_filename(file.filename)
#保存文件到本地
# file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
#自定义一个全局变量承接名字(自定义库.变量)
# quanju.mingzi = filename
return "ok"
# 将文件路径传递给模型进行预测
# result = PREDICT(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# return send_file(f'./results/result_{quanju.mingzi}', mimetype='image/jpeg')
# return send_file('results/result_{}'.format(quanju.mingzi), mimetype='image/jpeg')
# return jsonify({'error': 'Invalid file type.'}), 400
def allowed_file(filename):
# 检查文件类型是否合法这里仅接受jpeg、jpg、png类型的图片文件
return '.' in filename and filename.rsplit('.', 1)[1].lower() in {'jpeg', 'jpg', 'png'}
if __name__ == '__main__':
# app.config['UPLOAD_FOLDER'] = './uploads'
app.config['UPLOAD_FOLDER'] = 'yolox-pytorch/uploads'
# app.debug = False
app.run(host='10.21.19.104', port=8000)