diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-12-15 16:40:34 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-12-15 16:40:34 +0100 |
| commit | 485cf0e4665c660d4e5e1fba00a95bc8036809c6 (patch) | |
| tree | 80c9d7c9aace32c5c05e4441b5d2ca10ae2dd438 /megapixels | |
| parent | 2ee8cd6a77c3efed77e58d706f4ee76418770e54 (diff) | |
db stuff
Diffstat (limited to 'megapixels')
| -rw-r--r-- | megapixels/app/server/api.py | 89 |
1 files changed, 32 insertions, 57 deletions
diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py index 428c53b1..c5e27dd2 100644 --- a/megapixels/app/server/api.py +++ b/megapixels/app/server/api.py @@ -1,30 +1,13 @@ -from flask import Blueprint, jsonify +import os +import re +import time +from flask import Blueprint, request, jsonify +from PIL import Image # todo: try to remove PIL dependency from app.models.sql_factory import list_datasets, get_dataset, get_table -# from jinja2 import TemplateNotFound - -# import os -# import sys -# import json -# import time -# import argparse -# import cv2 as cv -# import numpy as np -# from datetime import datetime -# from flask import Flask, request, render_template, jsonify -# from PIL import Image # todo: try to remove PIL dependency -# import re - -# sanitize_re = re.compile('[\W]+') -# valid_exts = ['.gif', '.jpg', '.jpeg', '.png'] - -# from dotenv import load_dotenv -# load_dotenv() - -# from feature_extractor import FeatureExtractor - -# DEFAULT_LIMIT = 50 +sanitize_re = re.compile('[\W]+') +valid_exts = ['.gif', '.jpg', '.jpeg', '.png'] api = Blueprint('api', __name__) @@ -40,40 +23,32 @@ def show(name): else: return jsonify({ 'status': 404 }) -@api.route('/dataset/<name>/test', methods=['POST']) -def test(name): - print('hiiiiii') - return jsonify({ 'test': 'OK', 'dataset': name }) - -# @router.route('/<dataset>/face', methods=['POST']) -# def upload(name): -# file = request.files['query_img'] -# fn = file.filename -# if fn.endswith('blob'): -# fn = 'filename.jpg' +@api.route('/dataset/<dataset>/face', methods=['POST']) +def upload(name): + file = request.files['query_img'] + fn = file.filename + if fn.endswith('blob'): + fn = 'filename.jpg' -# basename, ext = os.path.splitext(fn) -# print("got {}, type {}".format(basename, ext)) -# if ext.lower() not in valid_exts: -# return jsonify({ 'error': 'not an image' }) + basename, ext = os.path.splitext(fn) + print("got {}, type {}".format(basename, ext)) + if ext.lower() not in valid_exts: + return jsonify({ 'error': 'not an image' }) -# uploaded_fn = datetime.now().isoformat() + "_" + basename -# uploaded_fn = sanitize_re.sub('', uploaded_fn) -# uploaded_img_path = "static/uploaded/" + uploaded_fn + ext -# uploaded_img_path = uploaded_img_path.lower() -# print('query: {}'.format(uploaded_img_path)) + img = Image.open(file.stream).convert('RGB') + + # vec = db.load_feature_vector_from_file(uploaded_img_path) + # vec = fe.extract(img) + # print(vec.shape) + # results = db.search(vec, limit=limit) -# img = Image.open(file.stream).convert('RGB') -# # img.save(uploaded_img_path) -# # vec = db.load_feature_vector_from_file(uploaded_img_path) -# vec = fe.extract(img) -# # print(vec.shape) + query = { + 'timing': time.time() - start, + } + results = [] -# results = db.search(vec, limit=limit) -# query = { -# 'timing': time.time() - start, -# } -# print(results) -# return jsonify({ -# 'results': results, -# }) + print(results) + return jsonify({ + 'query': query, + 'results': results, + }) |
