58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
from flask import Flask, render_template, request
|
|
from werkzeug.utils import secure_filename
|
|
import numpy as np
|
|
from ratio_pyrometry import ratio_pyrometry_pipeline
|
|
import base64
|
|
import random
|
|
import cv2 as cv
|
|
|
|
app = Flask(
|
|
__name__,
|
|
static_folder='./static',
|
|
static_url_path='/s/'
|
|
)
|
|
|
|
app.config['STATIC_FOLDER'] = './static'
|
|
app.config['STATIC_URL_PATH'] = '/s'
|
|
|
|
@app.route('/', methods=['GET'])
|
|
def index():
|
|
return render_template('index.jinja2')
|
|
|
|
@app.route('/ratio_pyro', methods=['POST'])
|
|
def ratio_pyro():
|
|
f = request.files['file']
|
|
f_name = f.filename.split('.')[0]
|
|
f_ext = f.filename.split('.')[1]
|
|
f_bytes = np.fromstring(f.read(), np.uint8)
|
|
img_orig, img_res, key = ratio_pyrometry_pipeline(
|
|
f_bytes,
|
|
ISO=float(request.form['iso']),
|
|
I_Darkcurrent=float(request.form['i_darkcurrent']),
|
|
exposure_time=float(request.form['exposure_time']),
|
|
f_stop=float(request.form['f_stop']),
|
|
MAX_TEMP=float(request.form['max_temp']),
|
|
MIN_TEMP=float(request.form['min_temp'])
|
|
)
|
|
|
|
# img_orig_b64 = base64.b64encode(img_orig).decode()
|
|
# img_res_b64 = base64.b64encode(img_res).decode()
|
|
|
|
img_orig_fname = secure_filename(f'{f_name}.{f_ext}')
|
|
img_res_fname = secure_filename(f'{f_name}-{hex(int(random.random() * 10000000000000000000))}.{f_ext}')
|
|
|
|
cv.imwrite(f'{app.config["STATIC_FOLDER"]}/{img_orig_fname}', img_orig)
|
|
cv.imwrite(f'{app.config["STATIC_FOLDER"]}/{img_res_fname}', img_res)
|
|
|
|
img_orig_path = f'{app.config["STATIC_URL_PATH"]}/{img_orig_fname}'
|
|
img_res_path = f'{app.config["STATIC_URL_PATH"]}/{img_res_fname}'
|
|
|
|
return render_template(
|
|
'results.jinja2',
|
|
img_orig_path=img_orig_path,
|
|
img_res_path=img_res_path,
|
|
# img_orig_b64=img_orig_b64,
|
|
# img_res_b64=img_res_b64,
|
|
legend=key
|
|
)
|