File size: 1,562 Bytes
93a5bb0 0e2fa7c 8cc8dd0 0e2fa7c a2e72c5 0e2fa7c 8cc8dd0 0e2fa7c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import os
import sys
import cv2
import base64
import gradio as gr
import requests
import numpy as np
import configparser
def run(file):
in_image = cv2.imread(file)
encode_img = cv2.imencode('.jpg', in_image)[1].tostring()
encode_img = base64.encodebytes(encode_img)
base64_img = str(encode_img, 'utf-8')
backend_url = os.getenv('BACKEND_URL')
url = f'{backend_url}/raster-to-vector-base64'
payload = {'image': base64_img}
image_request = requests.post(url, json=payload)
out_img = image_request.json()['image']
out_json = image_request.json()['graph']
decode_img = base64.b64decode(out_img.split(',')[1])
decode_img = np.frombuffer(decode_img, dtype=np.uint8)
out_img = cv2.imdecode(decode_img, flags=cv2.IMREAD_COLOR)
return out_img, out_json
with gr.Blocks() as demo:
gr.Markdown(
"""
# Raster-To-Vector on Floor Plan images
Please give me star if you like it and reach out to me to get on-premise solutions. (Email: andywu@kby-ai.com)
"""
)
with gr.TabItem("Floor Plan Recognition"):
with gr.Row():
with gr.Column():
app_input = gr.Image(type='filepath')
gr.Examples(['images/1.jpg', 'images/2.png', 'images/3.png', 'images/4.png'],
inputs=app_input)
start_button = gr.Button("Run")
with gr.Column():
app_output = [gr.Image(type="numpy"), gr.JSON()]
start_button.click(run, inputs=app_input, outputs=app_output)
demo.launch()
|