def getAreaImage(self, image, row, size_input, size_cropped, size_output, pose=None, border_color=None): action = Action() action.fromPandas(row) border_color = border_color if border_color else self.border_color area_image = helper.getAreaOfInterest(image, action, size_cropped, border_color=border_color) return cv2.resize(area_image, size_output)
def api_image(id): def send_image(image): _, image_encoded = cv2.imencode('.jpg', image) return flask.send_file(io.BytesIO(image_encoded), mimetype='image/jpeg') database = os.path.expanduser(flask.request.args.get('database')) suffix = flask.request.args.get('suffix', default='v') image = cv2.imread( os.path.dirname(database) + '/measurement/image-{}-{}.png'.format(id, suffix)) if image is None: empty = np.zeros((480, 752, 1)) cv2.putText(empty, '?', (310, 300), cv2.FONT_HERSHEY_SIMPLEX, 6, 100, thickness=6) return send_image(empty) with sqlite3.connect(database) as conn: action = Action() data = pandas.read_sql_query('select * from measurement where id = ?;', conn, params=[id]) if not data.empty: try: action.fromPandas(data.iloc[0]) helper.drawPose(image, action) except: pass elif flask.request.args.get('pose'): action.fromJson(flask.request.args.get('pose')) helper.drawPose(image, action) if int(flask.request.args.get('bin', default=0)): helper.drawAroundBin(image, draw_lines=True) return send_image(image)