def test_storage_remembers_type(self): from model import TextModel, EquationModel, ImageModel, WrenModel text_model = TextModel('text1') text_model.save() equation_model = EquationModel('equation1') equation_model.save() image_model = ImageModel('image1') image_model.save() self.assertIsInstance(WrenModel.load(text_model.key), TextModel) self.assertIsInstance(WrenModel.load(equation_model.key), EquationModel) self.assertIsInstance(WrenModel.load(image_model.key), ImageModel)
def main(terminal_flag): """Main program.""" # Create PyQt5 application app = QApplication( sys.argv ) # Note: There must be exactly one instance of QApplication active at a time app.setWindowIcon(QIcon('icons/ieviewer.png')) # Set program icon # Create model, view and controller model = ImageModel(terminal_flag) view = View(model) controller = Controller(model, view) # Start main window main_window = controller.get_main_window() main_window.show() sys.exit(app.exec_())
def image_list(self, unused_request): qry = ImageModel.query() my_items = [] for img in qry: my_items.append( ImageMessage( name=img.name, image=img.image, uuid=img.uuid, review_uuid=img.review_uuid, revobj_uuid=img.revobj_uuid, is_main=img.is_main, deleted=img.deleted, ) ) return ImageMessageCollection(items=my_items)
def image_sync_down(self, request): query = ImageModel.query(ImageModel.last_modified > string_to_datetime(request.date)) my_items = [] for img in query: my_items.append( ImageMessage( name=img.name, image=img.image, uuid=img.uuid, review_uuid=img.review_uuid, revobj_uuid=img.revobj_uuid, is_main=img.is_main, last_modified=img.last_modified, deleted=img.deleted, ) ) return ImageMessageCollection(items=my_items)
import base64 import json from io import BytesIO import cv2 import numpy as np from flask import Flask, Response, render_template, request from model import ImageModel app = Flask(__name__) model = ImageModel('sample_model') def predict(data): image_dec = cv2.imdecode(data, 1).astype(np.float32) / 255.0 x = np.expand_dims(image_dec, axis=0) label = model.predict(x) return label @app.route('/predict_from_base64/', methods=['POST']) def predict_from_base64(): data_json = json.loads(request.data) image_bytes = base64.b64decode(data_json['image']) image_np = np.frombuffer(image_bytes, dtype='uint8') label = predict(image_np) return Response(json.dumps({'label': label})) @app.route('/predict_from_image/', methods=['POST'])
from tempfile import NamedTemporaryFile import cv2 import numpy as np import tensorflow as tf from fastapi import FastAPI, File, UploadFile from pydantic import BaseModel from model import ImageModel # create FastAPI instance app = FastAPI() # create model instance # model = ImageModel('model folder path') model = ImageModel('sample_model') class ImageBase64(BaseModel): base64_str: str # get input shape for model from signature input_shape = model.get_input_shape('sample_model/signature.json') @app.post("/predict_from_image/") async def predict(file: UploadFile = File(...)): filepath = save_upload_file_tmp(file) image = tf.keras.preprocessing.image.load_img(filepath, color_mode='rgb',