fjenett's picture
Update app.py
d8fbaf2
raw
history blame
No virus
1.85 kB
import gradio as gr
import cv2
import json
import numpy as np
import glob2 as glob
from pyAAMED import pyAAMED
title = """
<h1>Arc Adjacency Matrix based Fast Ellipse Detection</h1>
<a href="https://github.com/Li-Zhaoxi/AAMED">Gitub</a>
"""
def detect_ellipses(img_path):
imgC = cv2.imread(img_path)
imgG = cv2.cvtColor(imgC, cv2.COLOR_BGR2GRAY)
ammed_size = 1200
iheight, iwidth = imgG.shape
imax = max(iheight, iwidth)
iscale = ammed_size / imax
is_landscape = iwidth >= iheight
if is_landscape:
iw = imax * iscale
ih = iheight * iscale
else:
iw = iwidth * iscale
ih = imax * iscale
imgG = imgG.resize(int(iw), int(ih))
if is_landscape:
ipad = int((imax - iheight) / 2 * iscale)
imgG = cv2.copyMakeBorder(imgG, ipad, ipad, 0, 0, cv2.BORDER_REPLICATE)
else:
ipad = int((imax - iwidth) / 2 * iscale)
imgG = cv2.copyMakeBorder(imgG, 0, 0, ipad, ipad, cv2.BORDER_REPLICATE)
aamed = pyAAMED(ammed_size, ammed_size)
aamed.setParameters(3.1415926/3, 3.4, 0.77)
result = aamed.run_AAMED(imgG)
print(result)
result = result.replace(' ', ', ')
print(result)
result = json.loads(result)
print(result)
return [img_path, json.dumps(result)]
examples = [
["./AAMED/python/002_0038.jpg"]
]
test_files = glob.glob('examples/*.jpg') + glob.glob('examples/*.png')
for f in test_files:
examples = examples + [f]
gr.Interface(
fn=detect_ellipses,
inputs=gr.Image(label="Upload image with ellipses", type="filepath"),
outputs=[
gr.Image(type="filepath", label="Detected ellipses"),
gr.Textbox(label="Detected ellipses")
],
title=title,
examples=examples,
allow_flagging='never'
).launch(
debug=True,
server_name="0.0.0.0",
server_port=7860
)