crazyai-kby
v1
8cc8dd0
raw
history blame
1.56 kB
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()