crazyai-kby
Fix
daf8b84
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
<a target="_blank" href="mailto:contact@rasterscan.com"><img src="https://img.shields.io/badge/email-contact@rasterscan.com-blue.svg?logo=gmail " alt="rasterscan.com"></a>&emsp;
"""
)
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()