andywu-kby's picture
Update app.py
c034bc3 verified
raw
history blame
2.89 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].tobytes()
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']
door_json = image_request.json()['doors']
wall_json = image_request.json()['walls']
room_json = image_request.json()['rooms']
area = image_request.json()['area']
perimeter = image_request.json()['perimeter']
out_json = {
'doors': door_json,
'walls': wall_json,
'rooms': room_json,
'area': area,
'perimeter': perimeter
}
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(
"""
# Floor Plan Recognition
by [Rasterscan](https://rasterscan.com/)
## About Us
RasterScan stands at the forefront of innovation in the realm of architectural and interior design, revolutionizing the way professionals and enthusiasts alike visualize and create spaces. Specializing in floor plan recognition and design, RasterScan harnesses the power of cutting-edge technology to transform blueprints, hand-sketches, and existing floor plans into immersive, three-dimensional models.
</br>Please ❤️ this space
## Contact:
Please contact us if you want to run our on-premise solution on your server to speedup the pipeline
</br> Email: [email protected]
</br> WhatsApp: +1 938 202 5720
"""
)
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)
gr.HTML('<a href="https://visitorbadge.io/status?path=https%3A%2F%2Fhuggingface.co%2Fspaces%2FRasterScan%2FAutomated-Floor-Plan-Digitalization"><img src="https://api.visitorbadge.io/api/combined?path=https%3A%2F%2Fhuggingface.co%2Fspaces%2FRasterScan%2FAutomated-Floor-Plan-Digitalization&label=Visitors&countColor=%2337d67a" /></a>')
demo.launch()